Temporary setpoint test #1300
This file contains 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: | |
jobs: | |
# run-ruleset-tests: | |
# runs-on: ubuntu-latest | |
# container: | |
# image: docker://nrel/openstudio:3.8.0 | |
# steps: | |
# - uses: actions/checkout@v4 | |
# with: | |
# ref: ${{ github.head_ref }} | |
# - name: Install software | |
# run: | | |
# rm -f Gemfile.lock && bundle install | |
# export DEBIAN_FRONTEND=noninteractive | |
# sudo apt update | |
# sudo -E apt-get install -y wget unzip python3-sphinx-rtd-theme | |
# - name: Check HPXMLs | |
# shell: bash | |
# run: | | |
# echo "Regenerating HPXML files..." | |
# openstudio tasks.rb update_measures | |
# echo "Checking for HPXML differences..." | |
# git config --global --add safe.directory $(realpath .) | |
# git diff --exit-code --ignore-cr-at-eol workflow/*.xml | |
# - name: Run ruleset tests | |
# run: | | |
# bundle exec rake test_rulesets | |
# - name: Store code coverage | |
# uses: actions/upload-artifact@v4 | |
# with: | |
# path: coverage | |
# name: coverage | |
# - 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@v4 | |
# with: | |
# name: documentation | |
# path: docs/_build/html/ | |
run-sample-files1-tests: | |
runs-on: ubuntu-latest | |
container: | |
image: docker://nrel/openstudio:3.8.0 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.head_ref }} | |
- name: Install software | |
run: | | |
rm -f Gemfile.lock && bundle install | |
- name: Run Sample Files 1 tests | |
run: | | |
bundle exec rake test_sample_files1 | |
- name: Store results | |
uses: actions/upload-artifact@v4 | |
with: | |
path: workflow/tests/test_results | |
name: test_results_sample_files1 | |
run-sample-files2-tests: | |
runs-on: ubuntu-latest | |
container: | |
image: docker://nrel/openstudio:3.8.0 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.head_ref }} | |
- name: Install software | |
run: | | |
rm -f Gemfile.lock && bundle install | |
- name: Run Sample Files 2 tests | |
run: | | |
bundle exec rake test_sample_files2 | |
- name: Store results | |
uses: actions/upload-artifact@v4 | |
with: | |
path: workflow/tests/test_results | |
name: test_results_sample_files2 | |
run-real-home-tests: | |
runs-on: ubuntu-latest | |
container: | |
image: docker://nrel/openstudio:3.8.0 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.head_ref }} | |
- name: Install software | |
run: | | |
rm -f Gemfile.lock && bundle install | |
- name: Run Real Home tests | |
run: | | |
bundle exec rake test_real_homes | |
- name: Store results | |
uses: actions/upload-artifact@v4 | |
with: | |
path: workflow/tests/test_results | |
name: test_results_real_homes | |
run-other-tests: | |
runs-on: ubuntu-latest | |
container: | |
image: docker://nrel/openstudio:3.8.0 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.head_ref }} | |
- name: Install software | |
run: | | |
rm -f Gemfile.lock && bundle install | |
- name: Run Other tests | |
run: | | |
bundle exec rake test_other | |
- name: Store results | |
uses: actions/upload-artifact@v4 | |
with: | |
path: workflow/tests/test_results | |
name: test_results_other | |
run-windows-tests: | |
runs-on: windows-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.head_ref }} | |
- name: Install software and run test | |
shell: pwsh | |
run: | | |
$env:OS_VERSION="3.8.0" | |
$env:OS_SHA="f953b6fcaf" | |
Invoke-WebRequest -OutFile Windows.tar.gz -URI "https://github.com/NREL/OpenStudio/releases/download/v${env:OS_VERSION}/OpenStudio-${env:OS_VERSION}+${env:OS_SHA}-Windows.tar.gz" | |
tar -xzf Windows.tar.gz | |
& .\OpenStudio-${env:OS_VERSION}+${env:OS_SHA}-Windows\bin\openstudio.exe workflow\energy_rating_index.rb -x workflow\sample_files\base.xml --daily ALL --add-component-loads --diagnostic-output | |
merge-results: | |
runs-on: ubuntu-latest | |
needs: [run-sample-files1-tests, run-sample-files2-tests, run-real-home-tests, run-other-tests] | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.head_ref }} | |
- name: Download all results | |
uses: actions/download-artifact@v4 | |
with: | |
path: test_results | |
pattern: test_results_* | |
merge-multiple: true | |
- name: Delete artifacts | |
uses: geekyeggo/delete-artifact@v5 | |
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@v4 | |
with: | |
path: workflow/tests/test_results | |
name: test_results | |
compare-results: | |
if: github.event_name == 'pull_request' | |
runs-on: ubuntu-latest | |
needs: merge-results | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.event.pull_request.base.sha }} | |
- name: Store base results | |
uses: actions/upload-artifact@v4 | |
with: | |
path: workflow/tests/base_results | |
name: base_results | |
- uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.event.pull_request.head.sha }} | |
- name: Download base results | |
uses: actions/download-artifact@v4 | |
with: | |
path: base_results | |
name: base_results | |
- name: Download feature results | |
uses: actions/download-artifact@v4 | |
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@v4 | |
with: | |
path: workflow/tests/comparisons | |
name: comparisons | |
update-results: | |
runs-on: ubuntu-latest | |
needs: merge-results | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.head_ref }} | |
- name: Download feature results | |
uses: actions/download-artifact@v4 | |
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 "[email protected]" | |
git config --global user.name "GitHub Action" | |
git commit -m "Latest results." | |
echo "Pushing to branch: $branch_name" | |
git push -u origin $branch_name | |
fi |