Latest OS-HPXML #1709
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: ci | |
| on: | |
| push: | |
| branches: [ master ] | |
| pull_request: | |
| types: [ synchronize, opened ] | |
| workflow_dispatch: | |
| # Cancel in-progress jobs when a new commit is pushed to the PR | |
| # This avoids CI jobs "stacking up" for the same PR | |
| # This won't stop existing job if new commit is pushed with [ci skip]. | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
| cancel-in-progress: true | |
| env: | |
| OS_VERSION: "3.11.0" | |
| OS_SHA: 241b8abb4d | |
| OS_URL: https://github.com/NatLabRockies/OpenStudio/releases/download | |
| jobs: | |
| run-ruleset-tests: | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| ref: ${{ github.head_ref }} | |
| - name: Install software | |
| run: | | |
| export DEBIAN_FRONTEND=noninteractive | |
| sudo apt update | |
| sudo -E apt-get install -y wget unzip python3-sphinx-rtd-theme | |
| - name: Install OpenStudio | |
| run: | | |
| wget -q -O OpenStudio.deb ${OS_URL}/v${OS_VERSION}/OpenStudio-${OS_VERSION}+${OS_SHA}-Ubuntu-24.04-x86_64.deb | |
| sudo dpkg -i OpenStudio.deb | |
| rm OpenStudio.deb | |
| - name: Check HPXMLs | |
| shell: bash | |
| run: | | |
| echo "Regenerating HPXML files..." | |
| openstudio tasks.rb update_hpxmls | |
| git config --global --add safe.directory $(realpath .) | |
| echo "Checking for HPXML differences..." | |
| echo "If differences are found below, then HPXMLs need to be regenerated using: openstudio tasks.rb update_hpxmls" | |
| git diff --exit-code --ignore-cr-at-eol workflow/*.xml | |
| - name: Run ruleset tests | |
| run: | | |
| openstudio tasks.rb ruleset_tests | |
| - name: Build documentation | |
| run: | | |
| cd docs | |
| make html SPHINXOPTS="-W --keep-going -n" | |
| - name: Check documentation | |
| run: | | |
| echo "Checking for misaligned documentation footnotes..." | |
| for RST_FILE in docs/source/*.rst; do NUM_REFS=$(grep -F -o "[#]_" $RST_FILE | wc -l); NUM_FOOTNOTES=$(grep -F -o ".. [#]" $RST_FILE | wc -l); if [ $NUM_REFS != $NUM_FOOTNOTES ]; then echo "ERROR: Number of footnote references doesn't match number of footnotes in $RST_FILE." && exit 1; fi done | |
| - name: Save Docs | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: documentation | |
| path: docs/_build/html/ | |
| run-sample-files1-tests: | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| ref: ${{ github.head_ref }} | |
| - name: Install OpenStudio | |
| run: | | |
| wget -q -O OpenStudio.deb ${OS_URL}/v${OS_VERSION}/OpenStudio-${OS_VERSION}+${OS_SHA}-Ubuntu-24.04-x86_64.deb | |
| sudo dpkg -i OpenStudio.deb | |
| rm OpenStudio.deb | |
| - name: Run Sample Files 1 tests | |
| run: | | |
| openstudio tasks.rb sample_files_tests1 | |
| - name: Store results | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| path: workflow/tests/test_results | |
| name: test_results_sample_files1 | |
| run-sample-files2-tests: | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| ref: ${{ github.head_ref }} | |
| - name: Install OpenStudio | |
| run: | | |
| wget -q -O OpenStudio.deb ${OS_URL}/v${OS_VERSION}/OpenStudio-${OS_VERSION}+${OS_SHA}-Ubuntu-24.04-x86_64.deb | |
| sudo dpkg -i OpenStudio.deb | |
| rm OpenStudio.deb | |
| - name: Run Sample Files 2 tests | |
| run: | | |
| openstudio tasks.rb sample_files_tests2 | |
| - name: Store results | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| path: workflow/tests/test_results | |
| name: test_results_sample_files2 | |
| run-real-home-tests: | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| ref: ${{ github.head_ref }} | |
| - name: Install OpenStudio | |
| run: | | |
| wget -q -O OpenStudio.deb ${OS_URL}/v${OS_VERSION}/OpenStudio-${OS_VERSION}+${OS_SHA}-Ubuntu-24.04-x86_64.deb | |
| sudo dpkg -i OpenStudio.deb | |
| rm OpenStudio.deb | |
| - name: Run Real Home tests | |
| run: | | |
| openstudio tasks.rb real_home_tests | |
| - name: Store results | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| path: workflow/tests/test_results | |
| name: test_results_real_homes | |
| run-other-tests: | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| ref: ${{ github.head_ref }} | |
| - name: Install OpenStudio | |
| run: | | |
| wget -q -O OpenStudio.deb ${OS_URL}/v${OS_VERSION}/OpenStudio-${OS_VERSION}+${OS_SHA}-Ubuntu-24.04-x86_64.deb | |
| sudo dpkg -i OpenStudio.deb | |
| rm OpenStudio.deb | |
| - name: Run Other tests | |
| run: | | |
| openstudio tasks.rb other_tests | |
| - name: Store results | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| path: workflow/tests/test_results | |
| name: test_results_other | |
| - name: Store release package | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| path: OpenStudio-ERI-*.zip | |
| archive: false | |
| run-windows-tests: | |
| runs-on: windows-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| ref: ${{ github.head_ref }} | |
| - name: Install software | |
| shell: pwsh | |
| run: | | |
| Invoke-WebRequest -OutFile Windows.tar.gz -URI "${env:OS_URL}/v${env:OS_VERSION}/OpenStudio-${env:OS_VERSION}+${env:OS_SHA}-Windows.tar.gz" | |
| tar -xzf Windows.tar.gz | |
| - name: Run simulation test | |
| shell: pwsh | |
| run: | | |
| & .\OpenStudio-${env:OS_VERSION}+${env:OS_SHA}-Windows\bin\openstudio.exe workflow\energy_rating_index.rb -x workflow\sample_files\base.xml --diagnostic-output | |
| - name: Run simulation test2 | |
| shell: pwsh | |
| run: | | |
| & .\OpenStudio-${env:OS_VERSION}+${env:OS_SHA}-Windows\bin\openstudio.exe workflow\energy_rating_index.rb -x workflow\sample_files\base-versions-multiple-sf.xml --daily ALL --add-component-loads | |
| merge-results: | |
| runs-on: ubuntu-24.04 | |
| needs: [run-sample-files1-tests, run-sample-files2-tests, run-real-home-tests, run-other-tests] | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| ref: ${{ github.head_ref }} | |
| - name: Download all results | |
| uses: actions/download-artifact@v8 | |
| with: | |
| path: test_results | |
| pattern: test_results_* | |
| merge-multiple: true | |
| - name: Delete artifacts | |
| uses: geekyeggo/delete-artifact@v6 | |
| with: | |
| name: test_results_* | |
| - name: Merge results | |
| run: | | |
| mkdir workflow/tests/test_results | |
| cp -r test_results/*.csv workflow/tests/test_results | |
| cd workflow/tests | |
| pip install pandas | |
| python ../../hpxml-measures/workflow/tests/merge.py test_results/sample_files1.csv test_results/sample_files2.csv test_results/sample_files.csv | |
| rm test_results/sample_files1.csv | |
| rm test_results/sample_files2.csv | |
| - name: Store results | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| path: workflow/tests/test_results | |
| name: test_results | |
| compare-results: | |
| if: github.event_name == 'pull_request' | |
| runs-on: ubuntu-24.04 | |
| needs: merge-results | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| ref: ${{ github.event.pull_request.base.sha }} | |
| - name: Store base results | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| path: workflow/tests/base_results | |
| name: base_results | |
| - uses: actions/checkout@v6 | |
| with: | |
| ref: ${{ github.event.pull_request.head.sha }} | |
| - name: Download base results | |
| uses: actions/download-artifact@v8 | |
| with: | |
| path: base_results | |
| name: base_results | |
| - name: Download feature results | |
| uses: actions/download-artifact@v8 | |
| with: | |
| path: test_results | |
| name: test_results | |
| - name: Compare results | |
| run: | | |
| cp -r base_results/*.csv workflow/tests/base_results | |
| mkdir workflow/tests/test_results | |
| cp -r test_results/*.csv workflow/tests/test_results | |
| pip install numpy | |
| pip install pandas | |
| pip install plotly | |
| pip install kaleido | |
| python hpxml-measures/workflow/tests/compare.py -a results | |
| python hpxml-measures/workflow/tests/compare.py -a visualize | |
| - name: Store comparisons | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| path: workflow/tests/comparisons | |
| name: comparisons | |
| update-results: | |
| runs-on: ubuntu-24.04 | |
| needs: merge-results | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| ref: ${{ github.head_ref }} | |
| - name: Download feature results | |
| uses: actions/download-artifact@v8 | |
| with: | |
| path: test_results | |
| name: test_results | |
| - name: Commit latest results | |
| shell: bash | |
| run: | | |
| branch_name="${{ github.head_ref }}" | |
| git pull origin $branch_name | |
| cp -r test_results/*.csv workflow/tests/base_results | |
| git add workflow/tests/base_results | |
| git status | |
| if [[ $(git diff --cached --exit-code) ]]; then | |
| git config --global user.email "github-action@users.noreply.github.com" | |
| git config --global user.name "GitHub Action" | |
| git commit -m "Latest results. [skip ci]" | |
| echo "Pushing to branch: $branch_name" | |
| git push -u origin $branch_name | |
| fi |