Skip to content

Debug Windows CI

Debug Windows CI #1230

Workflow file for this run

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: Download software
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"
- name: Extract software
shell: pwsh
run: |
tar -vxzf Windows.tar.gz
- name: Run 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 --hourly ALL --add-component-loads
# 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 "github-action@users.noreply.github.com"
# 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