Merge branch 'master' of https://github.com/NREL/OpenStudio-ERI #975
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-unit-tests: | |
runs-on: ubuntu-latest | |
container: | |
image: docker://nrel/openstudio:3.6.1 | |
steps: | |
- uses: actions/checkout@v3 | |
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 measure unit tests | |
run: | | |
bundle exec rake test_measures | |
- name: Store code coverage | |
uses: actions/upload-artifact@v3 | |
with: | |
path: coverage | |
name: coverage | |
- name: Build documentation | |
run: | | |
cd docs | |
make html SPHINXOPTS="-W --keep-going -n" | |
- name: Save Docs | |
uses: actions/upload-artifact@v3 | |
with: | |
name: documentation | |
path: docs/_build/html/ | |
run-eri-tests: | |
runs-on: ubuntu-latest | |
container: | |
image: docker://nrel/openstudio:3.6.1 | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
ref: ${{ github.head_ref }} | |
- name: Install software | |
run: | | |
rm -f Gemfile.lock && bundle install | |
- name: Run ERI tests | |
run: | | |
bundle exec rake test_eri | |
- name: Store results | |
uses: actions/upload-artifact@v3 | |
with: | |
path: workflow/tests/test_results | |
name: test_results_eri | |
run-real-home-tests: | |
runs-on: ubuntu-latest | |
container: | |
image: docker://nrel/openstudio:3.6.1 | |
steps: | |
- uses: actions/checkout@v3 | |
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@v3 | |
with: | |
path: workflow/tests/test_results | |
name: test_results_real_homes | |
run-resnet-tests: | |
runs-on: ubuntu-latest | |
container: | |
image: docker://nrel/openstudio:3.6.1 | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
ref: ${{ github.head_ref }} | |
- name: Install software | |
run: | | |
rm -f Gemfile.lock && bundle install | |
- name: Run RESNET tests | |
run: | | |
bundle exec rake test_resnet | |
- name: Store results | |
uses: actions/upload-artifact@v3 | |
with: | |
path: workflow/tests/test_results | |
name: test_results_resnet | |
run-es-zerh-tests: | |
runs-on: ubuntu-latest | |
container: | |
image: docker://nrel/openstudio:3.6.1 | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
ref: ${{ github.head_ref }} | |
- name: Install software | |
run: | | |
rm -f Gemfile.lock && bundle install | |
- name: Run ES & ZERH tests | |
run: | | |
bundle exec rake test_es_zerh | |
- name: Store results | |
uses: actions/upload-artifact@v3 | |
with: | |
path: workflow/tests/test_results | |
name: test_results_es_zerh | |
run-windows-tests: | |
runs-on: windows-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
ref: ${{ github.head_ref }} | |
- name: Install software and run test | |
shell: pwsh | |
run: | | |
$env:OS_VERSION="3.6.1" | |
$env:OS_SHA="bb9481519e" | |
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 --hourly ALL --add-component-loads | |
compare-results: | |
if: github.event_name == 'pull_request' | |
runs-on: ubuntu-latest | |
needs: [run-eri-tests, run-real-home-tests, run-resnet-tests, run-es-zerh-tests] | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
ref: ${{ github.event.pull_request.base.sha }} | |
- name: Store base results | |
uses: actions/upload-artifact@v3 | |
with: | |
path: workflow/tests/base_results | |
name: base_results | |
- uses: actions/checkout@v3 | |
with: | |
ref: ${{ github.event.pull_request.head.sha }} | |
- name: Download base results | |
uses: actions/download-artifact@v3 | |
with: | |
path: | | |
base_results | |
name: base_results | |
- name: Download ERI feature results | |
uses: actions/download-artifact@v3 | |
with: | |
path: | | |
results | |
name: test_results_eri | |
- name: Download Real Home feature results | |
uses: actions/download-artifact@v3 | |
with: | |
path: | | |
results | |
name: test_results_real_homes | |
- name: Download RESNET feature results | |
uses: actions/download-artifact@v3 | |
with: | |
path: | | |
results | |
name: test_results_resnet | |
- name: Download ES & ZERH feature results | |
uses: actions/download-artifact@v3 | |
with: | |
path: | | |
results | |
name: test_results_es_zerh | |
- name: Compare results | |
run: | | |
cp -r base_results/*.csv workflow/tests/base_results | |
mkdir workflow/tests/results | |
cp -r results/*.csv workflow/tests/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@v3 | |
with: | |
path: workflow/tests/comparisons | |
name: comparisons | |
update-results: | |
runs-on: ubuntu-latest | |
needs: [run-eri-tests, run-real-home-tests, run-resnet-tests, run-es-zerh-tests] | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
ref: ${{ github.head_ref }} | |
- name: Download ERI feature results | |
uses: actions/download-artifact@v3 | |
with: | |
path: | | |
results | |
name: test_results_eri | |
- name: Download Real Home feature results | |
uses: actions/download-artifact@v3 | |
with: | |
path: | | |
results | |
name: test_results_real_homes | |
- name: Download RESNET feature results | |
uses: actions/download-artifact@v3 | |
with: | |
path: | | |
results | |
name: test_results_resnet | |
- name: Download ES & ZERH feature results | |
uses: actions/download-artifact@v3 | |
with: | |
path: | | |
results | |
name: test_results_es_zerh | |
- name: Commit latest results | |
shell: bash | |
run: | | |
branch_name="${{ github.head_ref }}" | |
git pull origin $branch_name | |
cp -r 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 |