openstudio-ee 0.12.3 → 0.12.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.coverage +0 -0
- data/.github/workflows/test-with-openstudio.yml +109 -74
- data/.gitignore +21 -0
- data/.rubocop.yml +15 -2
- data/CHANGELOG.md +3 -0
- data/Gemfile +7 -8
- data/README.md +1 -0
- data/WORKFLOW_CHANGES.md +74 -0
- data/lib/measures/AddDaylightSensors/measure.rb +79 -79
- data/lib/measures/AddDaylightSensors/measure.xml +4 -4
- data/lib/measures/AddOverhangsByProjectionFactor/measure.rb +38 -41
- data/lib/measures/AddOverhangsByProjectionFactor/measure.xml +4 -4
- data/lib/measures/EnableDemandControlledVentilation/measure.rb +37 -40
- data/lib/measures/EnableDemandControlledVentilation/measure.xml +4 -4
- data/lib/measures/EnableEconomizerControl/measure.rb +36 -37
- data/lib/measures/EnableEconomizerControl/measure.xml +4 -4
- data/lib/measures/GLHEProExportLoadsforGroundHeatExchangerSizing/measure.rb +27 -41
- data/lib/measures/GLHEProExportLoadsforGroundHeatExchangerSizing/measure.xml +4 -4
- data/lib/measures/GLHEProGFunctionImport/measure.rb +11 -15
- data/lib/measures/GLHEProGFunctionImport/measure.xml +4 -4
- data/lib/measures/GLHEProSetupExportLoadsforGroundHeatExchangerSizing/measure.rb +5 -9
- data/lib/measures/GLHEProSetupExportLoadsforGroundHeatExchangerSizing/measure.xml +3 -3
- data/lib/measures/ImproveFanBeltEfficiency/measure.rb +78 -95
- data/lib/measures/ImproveFanBeltEfficiency/measure.xml +6 -6
- data/lib/measures/ImproveMotorEfficiency/measure.rb +75 -100
- data/lib/measures/ImproveMotorEfficiency/measure.xml +6 -6
- data/lib/measures/IncreaseInsulationRValueForExteriorWalls/measure.rb +137 -130
- data/lib/measures/IncreaseInsulationRValueForExteriorWalls/measure.xml +4 -4
- data/lib/measures/IncreaseInsulationRValueForExteriorWallsByPercentage/measure.rb +114 -115
- data/lib/measures/IncreaseInsulationRValueForExteriorWallsByPercentage/measure.xml +3 -3
- data/lib/measures/IncreaseInsulationRValueForRoofs/measure.rb +137 -130
- data/lib/measures/IncreaseInsulationRValueForRoofs/measure.xml +4 -4
- data/lib/measures/IncreaseInsulationRValueForRoofsByPercentage/measure.rb +114 -115
- data/lib/measures/IncreaseInsulationRValueForRoofsByPercentage/measure.xml +3 -3
- data/lib/measures/ReduceElectricEquipmentLoadsByPercentage/measure.rb +69 -63
- data/lib/measures/ReduceElectricEquipmentLoadsByPercentage/measure.xml +6 -6
- data/lib/measures/ReduceLightingLoadsByPercentage/measure.rb +77 -66
- data/lib/measures/ReduceLightingLoadsByPercentage/measure.xml +6 -6
- data/lib/measures/ReduceNightTimeElectricEquipmentLoads/measure.rb +45 -43
- data/lib/measures/ReduceNightTimeElectricEquipmentLoads/measure.xml +4 -4
- data/lib/measures/ReduceNightTimeLightingLoads/measure.rb +45 -43
- data/lib/measures/ReduceNightTimeLightingLoads/measure.xml +4 -4
- data/lib/measures/ReduceSpaceInfiltrationByPercentage/measure.rb +58 -52
- data/lib/measures/ReduceSpaceInfiltrationByPercentage/measure.xml +6 -6
- data/lib/measures/ReduceVentilationByPercentage/measure.rb +49 -46
- data/lib/measures/ReduceVentilationByPercentage/measure.xml +6 -6
- data/lib/measures/add_variable_speed_rtu_control_logic/measure.rb +31 -23
- data/lib/measures/add_variable_speed_rtu_control_logic/measure.xml +4 -4
- data/lib/measures/create_variable_speed_rtu/measure.rb +166 -174
- data/lib/measures/create_variable_speed_rtu/measure.xml +6 -6
- data/lib/measures/fan_assist_night_ventilation/measure.rb +33 -32
- data/lib/measures/fan_assist_night_ventilation/measure.xml +4 -4
- data/lib/measures/nze_hvac/measure.rb +72 -62
- data/lib/measures/nze_hvac/measure.xml +4 -4
- data/lib/measures/replace_water_heater_mixed_with_thermal_storage_chilled_water/measure.rb +16 -19
- data/lib/measures/replace_water_heater_mixed_with_thermal_storage_chilled_water/measure.xml +4 -4
- data/lib/measures/window_enhancement/LICENSE.md +14 -0
- data/lib/measures/window_enhancement/README.md +112 -0
- data/lib/measures/window_enhancement/docs/.gitkeep +0 -0
- data/lib/measures/window_enhancement/measure.py +386 -0
- data/lib/measures/window_enhancement/measure.xml +128 -0
- data/lib/measures/window_enhancement/resources/EC3_lookup.py +321 -0
- data/lib/measures/window_enhancement/resources/Test_API.py +32 -0
- data/lib/measures/window_enhancement/resources/__pycache__/EC3_lookup.cpython-39.pyc +0 -0
- data/lib/measures/window_enhancement/resources/__pycache__/Original_EC3_lookup.py +322 -0
- data/lib/measures/window_enhancement/resources/__pycache__/Test_API.cpython-39.pyc +0 -0
- data/lib/measures/window_enhancement/resources/calculate_perimeter.py +39 -0
- data/lib/measures/window_enhancement/test_output.log +39 -0
- data/lib/openstudio/ee_measures/version.rb +1 -1
- data/openstudio-ee.gemspec +10 -8
- data/test-workflow-locally.sh +152 -0
- metadata +64 -35
- data/Jenkinsfile +0 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2e611eb3abfa758253b2637c0fbe2a6417af81f616aef789b080d3c59e21a921
|
4
|
+
data.tar.gz: 738fa87404869c4db7cfa5d3c7d6053b49b5a12e8b8228b1686b4d970367e851
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b6f8cb5ccf030061a8033acc9f86ea09c3abd6372ef1747fda427f73041a74995d4df2d1c72ebb2f38e8891a9c05c59a2937977244902d976897de77308e115f
|
7
|
+
data.tar.gz: d497de4e70389ddfff91ba6a64e448b3e39aba2c123479889a2f5e63341ef03679a6bea1644037f80137a4c63d416bf116a0f72697257af7f9d417f5c980683b
|
data/.coverage
ADDED
Binary file
|
@@ -11,98 +11,133 @@ jobs:
|
|
11
11
|
DEPLOY_PATH: ${{ github.repository }}/${{ github.ref_name }}/${{ github.run_number }} # Path for S3 deployment
|
12
12
|
S3_BUCKET: ext-gem-dashboard
|
13
13
|
|
14
|
-
container: # Define the Docker container for the job. All subsequent steps run inside it.
|
15
|
-
image: nrel/openstudio:3.10.0
|
16
|
-
options: -u root -e "LANG=en_US.UTF-8" # These options are passed to the 'docker run' command internally
|
17
|
-
|
18
14
|
steps:
|
19
|
-
- name:
|
20
|
-
#
|
21
|
-
uses:
|
15
|
+
- name: Login to Docker Hub
|
16
|
+
# Authenticate with Docker Hub using repository secrets to access nrel/openstudio:develop
|
17
|
+
uses: docker/login-action@v3
|
22
18
|
with:
|
23
|
-
|
24
|
-
|
25
|
-
- name: Install Node.js and AWS CLI
|
26
|
-
# Install required dependencies for AWS actions to work in the OpenStudio container
|
27
|
-
shell: bash
|
28
|
-
run: |
|
29
|
-
echo "Installing Node.js and AWS CLI..."
|
30
|
-
|
31
|
-
# Update package list
|
32
|
-
apt-get update
|
33
|
-
|
34
|
-
# Install curl and other dependencies
|
35
|
-
apt-get install -y curl unzip
|
36
|
-
|
37
|
-
# Install Node.js (using NodeSource repository for latest LTS)
|
38
|
-
curl -fsSL https://deb.nodesource.com/setup_lts.x | bash -
|
39
|
-
apt-get install -y nodejs
|
19
|
+
username: ${{ secrets.DOCKERHUB_USERNAME }} # Ensure this secret exists in your repository or organization settings
|
20
|
+
password: ${{ secrets.DOCKERHUB_TOKEN }} # Ensure this secret exists in your repository or organization settings
|
40
21
|
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
# Verify installations
|
47
|
-
echo "Node.js version: $(node --version)"
|
48
|
-
echo "npm version: $(npm --version)"
|
49
|
-
echo "AWS CLI version: $(aws --version)"
|
22
|
+
- name: Checkout Repository
|
23
|
+
# Checkout the repository to the runner's workspace
|
24
|
+
uses: actions/checkout@v4
|
25
|
+
with:
|
26
|
+
submodules: true
|
50
27
|
|
51
|
-
|
52
|
-
|
28
|
+
- name: Cache Bundle Dependencies
|
29
|
+
# Cache gem dependencies to speed up builds and improve reliability
|
30
|
+
uses: actions/cache@v4
|
31
|
+
with:
|
32
|
+
path: vendor/bundle
|
33
|
+
key: ${{ runner.os }}-gems-${{ hashFiles('**/Gemfile.lock') }}
|
34
|
+
restore-keys: |
|
35
|
+
${{ runner.os }}-gems-
|
53
36
|
|
54
|
-
- name:
|
55
|
-
#
|
56
|
-
shell: bash # Specify the shell if needed, though bash is default for Ubuntu runners
|
37
|
+
- name: Run Tests in OpenStudio Container
|
38
|
+
# Run all tests inside the OpenStudio develop container with proper authentication
|
57
39
|
run: |
|
58
|
-
#
|
59
|
-
|
40
|
+
# Pull the develop image now that we're authenticated
|
41
|
+
docker pull nrel/openstudio:develop
|
60
42
|
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
43
|
+
# Run the container with all our test commands
|
44
|
+
docker run --rm \
|
45
|
+
-u root \
|
46
|
+
-e "LANG=en_US.UTF-8" \
|
47
|
+
-v "${{ github.workspace }}:/workspace" \
|
48
|
+
-w /workspace \
|
49
|
+
nrel/openstudio:develop \
|
50
|
+
bash -c '
|
51
|
+
set -e
|
52
|
+
|
53
|
+
echo "Starting OpenStudio EE Gem tests..."
|
54
|
+
echo "Ruby: $(ruby -v)"
|
55
|
+
echo "OpenStudio: $(openstudio openstudio_version)"
|
56
|
+
|
57
|
+
# Fix git ownership issue in container
|
58
|
+
git config --global --add safe.directory "*"
|
59
|
+
|
60
|
+
# Install system dependencies
|
61
|
+
apt-get update -qq
|
62
|
+
apt-get install -y -qq curl unzip ca-certificates
|
63
|
+
|
64
|
+
# Install Node.js and AWS CLI (required for some tests)
|
65
|
+
curl -fsSL https://deb.nodesource.com/setup_20.x | DEBIAN_FRONTEND=noninteractive bash -
|
66
|
+
DEBIAN_FRONTEND=noninteractive apt-get install -y -qq nodejs
|
67
|
+
|
68
|
+
curl -fsSL "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o /tmp/awscliv2.zip
|
69
|
+
unzip -q /tmp/awscliv2.zip -d /tmp/
|
70
|
+
/tmp/aws/install
|
71
|
+
rm -rf /tmp/aws /tmp/awscliv2.zip
|
72
|
+
|
73
|
+
# Install gem dependencies
|
74
|
+
echo "Installing gem dependencies..."
|
75
|
+
|
76
|
+
# Clean up bundler environment
|
77
|
+
unset BUNDLE_GEMFILE BUNDLE_PATH BUNDLE_BIN_PATH
|
78
|
+
|
79
|
+
# Install bundler and configure
|
80
|
+
gem install bundler -v 2.4.10 --no-document
|
81
|
+
bundle config set --local path vendor/bundle
|
82
|
+
bundle config set --local force_ruby_platform true
|
83
|
+
|
84
|
+
# Install gems
|
85
|
+
bundle install --retry 3 --jobs 4
|
86
|
+
|
87
|
+
# Run test suite
|
88
|
+
echo "Running tests..."
|
89
|
+
bundle exec rake
|
90
|
+
bundle exec rake openstudio:list_measures
|
91
|
+
bundle exec rake openstudio:update_measures
|
92
|
+
bundle exec rake openstudio:test_with_openstudio
|
93
|
+
|
94
|
+
# Archive test results
|
95
|
+
if [ -d "test" ]; then
|
96
|
+
mv test test_with_cli_bundler
|
97
|
+
fi
|
98
|
+
|
99
|
+
dir_name=$(find . -type d -name "test_results" | head -1)
|
100
|
+
if [ -n "$dir_name" ]; then
|
101
|
+
mv "$dir_name" test_results_dashboard_cli_bundler
|
102
|
+
fi
|
103
|
+
|
104
|
+
echo "Tests completed successfully!"
|
105
|
+
'
|
80
106
|
|
81
107
|
- name: Configure AWS Credentials
|
82
|
-
#
|
83
|
-
uses: aws-actions/configure-aws-credentials@v4
|
108
|
+
# Configure AWS credentials for S3 deployment
|
109
|
+
uses: aws-actions/configure-aws-credentials@v4
|
84
110
|
with:
|
85
111
|
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
86
|
-
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
87
|
-
aws-region: ${{ secrets.AWS_DEFAULT_REGION }}
|
112
|
+
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
113
|
+
aws-region: ${{ secrets.AWS_DEFAULT_REGION }}
|
88
114
|
|
89
115
|
- name: Sync files to S3 with branch and build in path
|
90
116
|
shell: bash
|
91
117
|
run: |
|
92
118
|
echo "Deploying to s3://${{ env.S3_BUCKET }}/${{ env.DEPLOY_PATH }}/"
|
93
|
-
#
|
94
|
-
dir_name
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
119
|
+
# Use the renamed test_results directory
|
120
|
+
dir_name="test_results_dashboard_cli_bundler"
|
121
|
+
if [ -d "$dir_name" ]; then
|
122
|
+
echo "TEST_RESULTS_DIR=$dir_name" >> $GITHUB_ENV
|
123
|
+
if ! aws s3 sync $dir_name s3://${{ env.S3_BUCKET }}/${{ env.DEPLOY_PATH }}/ \
|
124
|
+
--delete \
|
125
|
+
--acl public-read \
|
126
|
+
--cache-control "max-age=0, no-cache, no-store, must-revalidate"; then
|
127
|
+
echo "::error::Failed to sync results to S3"
|
128
|
+
exit 1
|
129
|
+
fi
|
130
|
+
echo "✅ S3 sync complete."
|
131
|
+
echo "🌐 Dashboard URL: https://${{ env.S3_BUCKET }}.s3.amazonaws.com/${{ env.DEPLOY_PATH }}/dashboard/index.html"
|
132
|
+
else
|
133
|
+
echo "::error::Test results directory $dir_name not found"
|
134
|
+
echo "::error::Available directories:"
|
135
|
+
ls -la
|
136
|
+
exit 1
|
137
|
+
fi
|
103
138
|
|
104
139
|
- name: Archive static site as artifact
|
105
140
|
uses: actions/upload-artifact@v4
|
106
141
|
with:
|
107
142
|
name: static-html-artifact
|
108
|
-
path:
|
143
|
+
path: test_results_dashboard_cli_bundler
|
data/.gitignore
CHANGED
@@ -10,8 +10,11 @@
|
|
10
10
|
/spec/reports/
|
11
11
|
/tmp/
|
12
12
|
/test/
|
13
|
+
/test_results_dashboard_cli_bundler/
|
14
|
+
/test_with_cli_bundler/
|
13
15
|
/lib/measures/test_results
|
14
16
|
/lib/measures/*/tests/output
|
17
|
+
/vendor/bundle/
|
15
18
|
|
16
19
|
.rubocop*s3*
|
17
20
|
|
@@ -30,3 +33,21 @@ lib/test/*
|
|
30
33
|
|
31
34
|
# Ignore measure tester gem local test results
|
32
35
|
test_results/
|
36
|
+
|
37
|
+
lib/measures/window_enhancement/__pycache__
|
38
|
+
lib/measures/window_enhancement/tests/__pycache__
|
39
|
+
lib/measures/window_enhancement/resources/__pycache__
|
40
|
+
lib/measures/window_enhancement/tests/.pytest_cache
|
41
|
+
lib/measures/window_enhancement/tests/example_model/run
|
42
|
+
**/__pycache__/
|
43
|
+
config.ini
|
44
|
+
|
45
|
+
# Environment variables (contains secrets)
|
46
|
+
.env
|
47
|
+
|
48
|
+
# Act secrets file
|
49
|
+
.secrets
|
50
|
+
|
51
|
+
# Act configuration file
|
52
|
+
.actrc
|
53
|
+
node_modules
|
data/.rubocop.yml
CHANGED
@@ -1,7 +1,20 @@
|
|
1
|
+
inherit_mode:
|
2
|
+
merge:
|
3
|
+
- Exclude
|
4
|
+
|
1
5
|
AllCops:
|
6
|
+
NewCops: enable
|
2
7
|
Exclude:
|
3
8
|
- 'spec/test_measures/**/*'
|
9
|
+
- 'vendor/**/*' # Standard exclusion for all vendor code
|
10
|
+
- '.bundle/**/*' # Bundler cache directory
|
11
|
+
- 'tmp/**/*' # Temporary files
|
12
|
+
- 'node_modules/**/*' # Node.js dependencies (if applicable)
|
13
|
+
# Standard RuboCop behavior - these settings are actually defaults
|
14
|
+
DisabledByDefault: false
|
4
15
|
|
5
|
-
require:
|
16
|
+
require:
|
17
|
+
- rubocop-performance
|
18
|
+
- rubocop-rake
|
6
19
|
inherit_from:
|
7
|
-
- http://s3.amazonaws.com/openstudio-resources/styles/
|
20
|
+
- http://s3.amazonaws.com/openstudio-resources/styles/rubocop_v6.yml
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,8 @@
|
|
1
1
|
# OpenStudio(R) EE Gem
|
2
2
|
|
3
|
+
## Version 0.12.4
|
4
|
+
* Adding first version of window enhancement measure. This is python measure that has extra dependencies, and also requires an EC3 API key. It looks up content on EC3, stores embodied carbon data in the OpenStudio model and updates the window performance. You can not use it to only update window performance without using the EC3 database.
|
5
|
+
|
3
6
|
## Version 0.12.3
|
4
7
|
* Update dependency for extension gem from 0.9.2 to 0.9.3
|
5
8
|
|
data/Gemfile
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
source '
|
3
|
+
source 'https://rubygems.org'
|
4
4
|
|
5
5
|
gemspec
|
6
6
|
|
@@ -10,15 +10,14 @@ gemspec
|
|
10
10
|
# Windows: set FAVOR_LOCAL_GEMS=1
|
11
11
|
# Note that if allow_local is true, but the gem is not found locally, then it will
|
12
12
|
# checkout the latest version (develop) from github.
|
13
|
-
allow_local = ENV
|
13
|
+
allow_local = ENV.fetch('FAVOR_LOCAL_GEMS', nil)
|
14
14
|
|
15
15
|
# Delete when these branchesa are merged and released
|
16
|
-
#gem 'openstudio-extension', github: 'NREL/OpenStudio-extension-gem', branch: 'wenyi-fix-build-temp', ref: "34a39a24aee2259de"
|
17
|
-
#gem 'openstudio-standards', github: 'NREL/openstudio-standards', tag: 'v0.6.0.rc2', ref: "1c42110"
|
18
|
-
#gem 'openstudio_measure_tester', :git => 'https://github.com/NREL/OpenStudio-measure-tester-gem.git', :branch => 'wenyi-dependencies-update'
|
19
|
-
#gem 'openstudio-workflow', :git => 'https://github.com/NREL/OpenStudio-workflow-gem.git', :branch => 'develop', ref: "32126e9b9f6"
|
20
|
-
#gem 'bcl', :git => 'https://github.com/wenyikuang/bcl-gem.git', :branch => 'develop'
|
21
|
-
|
16
|
+
# gem 'openstudio-extension', github: 'NREL/OpenStudio-extension-gem', branch: 'wenyi-fix-build-temp', ref: "34a39a24aee2259de"
|
17
|
+
# gem 'openstudio-standards', github: 'NREL/openstudio-standards', tag: 'v0.6.0.rc2', ref: "1c42110"
|
18
|
+
# gem 'openstudio_measure_tester', :git => 'https://github.com/NREL/OpenStudio-measure-tester-gem.git', :branch => 'wenyi-dependencies-update'
|
19
|
+
# gem 'openstudio-workflow', :git => 'https://github.com/NREL/OpenStudio-workflow-gem.git', :branch => 'develop', ref: "32126e9b9f6"
|
20
|
+
# gem 'bcl', :git => 'https://github.com/wenyikuang/bcl-gem.git', :branch => 'develop'
|
22
21
|
|
23
22
|
# uncomment when you want CI to use develop branch of extension gem
|
24
23
|
# gem 'openstudio-extension', github: 'NREL/OpenStudio-extension-gem', branch: 'develop'
|
data/README.md
CHANGED
data/WORKFLOW_CHANGES.md
ADDED
@@ -0,0 +1,74 @@
|
|
1
|
+
# GitHub Actions Workflow Improvements
|
2
|
+
|
3
|
+
## Overview
|
4
|
+
This document describes the improvements made to the `.github/workflows/test-with-openstudio.yml` workflow file to enhance reliability, maintainability, and debugging capabilities.
|
5
|
+
|
6
|
+
## Changes Made
|
7
|
+
|
8
|
+
### 1. Docker Image Update
|
9
|
+
- **Changed**: `nrel/openstudio:3.10.0` → `nrel/openstudio:develop`
|
10
|
+
- **Rationale**: Access to latest features and improvements
|
11
|
+
- **Risk**: Potential instability from using development image
|
12
|
+
- **Mitigation**: Local testing script provided for validation
|
13
|
+
|
14
|
+
### 2. Locale Configuration Fix
|
15
|
+
- **Added**: `locales` package installation and `locale-gen en_US.UTF-8`
|
16
|
+
- **Problem Solved**: Container was configured with `LANG=en_US.UTF-8` but locale wasn't generated
|
17
|
+
- **Impact**: Prevents encoding issues and locale-related errors
|
18
|
+
|
19
|
+
### 3. Git Configuration Correction
|
20
|
+
- **Changed**: Fixed hardcoded repository path from `openstudio-load-flexibility-measures-gem`
|
21
|
+
- **New**: Uses `git config --global --add safe.directory "*"` for broader compatibility
|
22
|
+
- **Problem Solved**: Git ownership issues in Docker container
|
23
|
+
|
24
|
+
### 4. Enhanced Environment Diagnostics
|
25
|
+
- **Added**: Bundle version information and environment details
|
26
|
+
- **Changed**: `openstudio --version` → `openstudio openstudio_version` for more specific output
|
27
|
+
- **Benefit**: Better debugging information in workflow logs
|
28
|
+
|
29
|
+
### 5. Simplified Test Execution
|
30
|
+
- **Removed**: Redundant double-run approach with error suppression
|
31
|
+
- **Added**: Proper error handling with GitHub Actions error annotations
|
32
|
+
- **Improved**: Clear success indicators with ✅ emojis
|
33
|
+
- **Benefit**: Faster execution, clearer failure points, better debugging
|
34
|
+
|
35
|
+
### 6. Robust Error Handling
|
36
|
+
- **Added**: `::error::` annotations for GitHub Actions integration
|
37
|
+
- **Added**: Immediate exit on critical failures
|
38
|
+
- **Added**: Success confirmations for each step
|
39
|
+
- **Benefit**: Clear failure identification and faster debugging
|
40
|
+
|
41
|
+
### 7. Improved S3 Sync Logic
|
42
|
+
- **Added**: Explicit error handling for S3 sync failures
|
43
|
+
- **Added**: Directory existence validation with detailed error messages
|
44
|
+
- **Fixed**: Environment variable handling for artifact upload
|
45
|
+
- **Benefit**: More reliable deployment and better failure diagnostics
|
46
|
+
|
47
|
+
## Testing Strategy
|
48
|
+
|
49
|
+
### Local Testing
|
50
|
+
1. Use the provided `test-workflow-locally.sh` script
|
51
|
+
2. Validates Docker image availability and basic functionality
|
52
|
+
3. Tests bundle install and basic rake tasks
|
53
|
+
|
54
|
+
### Integration Testing
|
55
|
+
1. Push changes to a test branch
|
56
|
+
2. Monitor GitHub Actions execution
|
57
|
+
3. Validate S3 deployment and artifact creation
|
58
|
+
|
59
|
+
## Rollback Plan
|
60
|
+
If issues arise with the `:develop` image:
|
61
|
+
1. Revert to `nrel/openstudio:3.10.0`
|
62
|
+
2. Keep all other improvements (locale, error handling, etc.)
|
63
|
+
|
64
|
+
## Monitoring
|
65
|
+
- Watch for new error patterns in GitHub Actions logs
|
66
|
+
- Monitor S3 deployment success rates
|
67
|
+
- Check artifact upload reliability
|
68
|
+
|
69
|
+
## Benefits
|
70
|
+
1. **Reliability**: Better error handling and clearer failure points
|
71
|
+
2. **Debuggability**: Enhanced logging and error messages
|
72
|
+
3. **Maintainability**: Simplified logic without redundant operations
|
73
|
+
4. **Robustness**: Proper locale setup and git configuration
|
74
|
+
5. **Visibility**: GitHub Actions error annotations and success indicators
|