Skip to content

Add ResStock Technical Reference Guide #5117

Add ResStock Technical Reference Guide

Add ResStock Technical Reference Guide #5117

Workflow file for this run

name: ci
on:
push:
branches: [ main, develop ]
pull_request:
types: [ synchronize, opened ]
workflow_dispatch:
env:
OPENSTUDIO_VER: 3.9.0
OPENSTUDIO_SHA: c77fbb9569
OPENSTUDIO_PLATFORM: Ubuntu-22.04-x86_64
OPENSTUDIO_EXT: deb
OPENSTUDIO_URL: https://github.com/NREL/OpenStudio/releases/download/v3.9.0
jobs:
# format-files:
# runs-on: ubuntu-22.04
# steps:
# - uses: actions/checkout@v4
# with:
# ref: ${{ github.head_ref }}
# - name: Format Files
# shell: bash
# run: |
# sed -i -e 's/[[:space:]]*$//' resources/options_lookup.tsv # Remove whitespace
# (sed -u 1q ; sort -k1 -k2) < resources/options_lookup.tsv > sorted_options_lookup.tsv
# mv sorted_options_lookup.tsv resources/options_lookup.tsv # Sort on first two columns
# - name: Upload formatted options_lookup
# uses: actions/upload-artifact@v4
# with:
# path: resources/options_lookup.tsv
# name: options_lookup
# unit-tests:
# runs-on: ubuntu-22.04
# needs: [format-files]
# container:
# image: docker://nrel/openstudio:3.9.0
# steps:
# - uses: actions/checkout@v4
# with:
# ref: ${{ github.head_ref }}
# - name: Install gems
# run: |
# rm -f Gemfile.lock && bundle install
# - name: Download formatted options_lookup
# uses: actions/download-artifact@v4
# with:
# path: resources
# name: options_lookup
# - name: Run integrity checks for all projects
# run: |
# bundle exec rake unit_tests:project_integrity_checks
# - name: Run all integrity check unit tests
# run: |
# bundle exec rake unit_tests:integrity_check_tests
# - name: Run all measure tests
# run: |
# bundle exec rake unit_tests:measure_tests
# - name: Upload feature samples
# uses: actions/upload-artifact@v4
# with:
# path: resources/buildstock.csv
# name: feature_samples
# - name: Store code coverage
# uses: actions/upload-artifact@v4
# with:
# path: coverage
# name: coverage
# analysis-tests:
# runs-on: ubuntu-22.04
# needs: [unit-tests]
# container:
# image: docker://nrel/openstudio:3.9.0
# steps:
# - uses: actions/checkout@v4
# with:
# ref: ${{ github.head_ref }}
# - name: Install gems
# run: |
# rm -f Gemfile.lock && bundle install
# - name: Install python
# shell: bash
# run: |
# export DEBIAN_FRONTEND=noninteractive
# sudo apt update
# sudo -E apt-get install -y python3-pip
# - name: Install python dependencies
# run : |
# python3 -m pip install --progress-bar off --upgrade pip
# pip3 install --progress-bar off pandas pyyaml
# - name: Download formatted options_lookup
# uses: actions/download-artifact@v4
# with:
# path: resources
# name: options_lookup
# - name: Generate precomputed buildstocks
# run: |
# python3 test/update_yml_precomputed_files.py
# - name: Run run_analysis.rb
# run: |
# bundle exec rake workflow:analysis_tests
# - name: Upload precomputed buildstocks
# uses: actions/upload-artifact@v4
# with:
# path: test/tests_yml_files/yml_precomputed*/buildstock*.csv
# name: precomputed_buildstocks
# - name: Upload run_analysis.rb results
# uses: actions/upload-artifact@v4
# with:
# path: |
# project_national/results-Baseline.csv
# project_testing/results-Baseline.csv
# project_national/results-PackageUpgrade.csv
# project_testing/results-PackageUpgrade.csv
# name: run_analysis_results_csvs
# integration-tests:
# runs-on: ubuntu-22.04
# needs: [unit-tests]
# steps:
# - uses: actions/checkout@v4
# with:
# ref: ${{ github.head_ref }}
# - uses: actions/setup-python@v5
# with:
# python-version: '3.11'
# - name: Download and Install OpenStudio
# run: |
# export OS_DEBFILE="OpenStudio-$OPENSTUDIO_VER+$OPENSTUDIO_SHA-$OPENSTUDIO_PLATFORM.$OPENSTUDIO_EXT"
# wget -q $OPENSTUDIO_URL/$OS_DEBFILE
# sudo apt install -y ./$OS_DEBFILE
# openstudio openstudio_version
# which openstudio
# - name: Download formatted options_lookup
# uses: actions/download-artifact@v4
# with:
# path: resources
# name: options_lookup
# - name: Run buildstockbatch
# run: |
# pip install git+https://github.com/NREL/buildstockbatch.git@develop
# buildstock_local project_national/national_baseline.yml
# buildstock_local project_testing/testing_baseline.yml
# buildstock_local project_national/national_upgrades.yml
# buildstock_local project_testing/testing_upgrades.yml
# - name: Unzip results
# run: |
# gunzip -v project_national/national_baseline/results_csvs/*.csv.gz
# gunzip -v project_testing/testing_baseline/results_csvs/*.csv.gz
# gunzip -v project_national/national_upgrades/results_csvs/*.csv.gz
# gunzip -v project_testing/testing_upgrades/results_csvs/*.csv.gz
# tar -xvf project_national/national_baseline/simulation_output/*.tar.gz -C project_national/national_baseline/simulation_output --wildcards '*results_timeseries.csv' --wildcards '*.xml' --wildcards '*data_point_out.json' --wildcards '*.osw'
# tar -xvf project_testing/testing_baseline/simulation_output/*.tar.gz -C project_testing/testing_baseline/simulation_output --wildcards '*results_timeseries.csv' --wildcards '*.xml' --wildcards '*data_point_out.json' --wildcards '*.osw' --wildcards '*in.osm' --wildcards '*in.idf'
# tar -xvf project_national/national_upgrades/simulation_output/*.tar.gz -C project_national/national_upgrades/simulation_output --wildcards '*results_timeseries.csv' --wildcards '*.xml' --wildcards '*data_point_out.json' --wildcards '*.osw'
# tar -xvf project_testing/testing_upgrades/simulation_output/*.tar.gz -C project_testing/testing_upgrades/simulation_output --wildcards '*results_timeseries.csv' --wildcards '*.xml' --wildcards '*data_point_out.json' --wildcards '*.osw' --wildcards '*in.osm' --wildcards '*in.idf'
# - name: Process results
# run: |
# pip install plotly
# python test/process_bsb_analysis.py
# - name: Upload integration results
# uses: actions/upload-artifact@v4
# with:
# path: |
# baseline
# upgrades
# name: feature_results
# - name: Upload buildstockbatch results
# uses: actions/upload-artifact@v4
# with:
# path: |
# project_national/national_baseline/results_csvs/results_up00.csv
# project_testing/testing_baseline/results_csvs/results_up00.csv
# project_national/national_upgrades/results_csvs/results_up17.csv
# project_testing/testing_upgrades/results_csvs/results_up17.csv
# name: buildstockbatch_results_csvs
# - name: Run tests
# run: |
# sudo gem install minitest-reporters
# sudo gem install simplecov
# sudo gem install simplecov-html
# ruby test/test_bsb_analysis.rb
# compare-tools:
# runs-on: ubuntu-22.04
# needs: [analysis-tests, integration-tests]
# steps:
# - uses: actions/checkout@v4
# with:
# ref: ${{ github.head_ref }}
# - name: Download buildstockbatch results
# uses: actions/download-artifact@v4
# with:
# path: buildstockbatch
# name: buildstockbatch_results_csvs
# - name: Download run_analysis results
# uses: actions/download-artifact@v4
# with:
# path: run_analysis
# name: run_analysis_results_csvs
# - name: Run tests
# run: |
# sudo gem install minitest-reporters
# sudo gem install simplecov
# sudo gem install simplecov-html
# ruby test/test_analysis_tools.rb
# compare-results:
# if: github.event_name == 'pull_request'
# runs-on: ubuntu-22.04
# needs: [integration-tests]
# steps:
# - uses: actions/checkout@v4
# with:
# ref: ${{ github.event.pull_request.base.sha }}
# - name: Upload base results
# uses: actions/upload-artifact@v4
# with:
# path: test/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 samples
# uses: actions/download-artifact@v4
# with:
# path: samples
# name: feature_samples
# - name: Download feature results
# uses: actions/download-artifact@v4
# with:
# path: results
# name: feature_results
# - name: Compare samples and results
# run: |
# pip install numpy
# pip install pandas
# pip install plotly
# pip install kaleido
# # baseline annual
# mkdir -p test/base_results/comparisons/baseline/annual
# python test/compare.py -a samples -b base_results/baseline/annual -f samples -e test/base_results/comparisons/baseline/annual # base_samples.csv, feature_samples.csv
# python test/compare.py -a results -b base_results/baseline/annual -f results/baseline/annual -e test/base_results/comparisons/baseline/annual # results_characteristics.csv, results_output.csv
# python test/compare.py -a results -af sum -ac build_existing_model.geometry_building_type_recs -x results_output_building_type_sum.csv -b base_results/baseline/annual -f results/baseline/annual -e test/base_results/comparisons/baseline/annual # results_output_building_type_sum.csv
# python test/compare.py -a visualize -dc build_existing_model.geometry_building_type_recs -x results_output_building_type.html -b base_results/baseline/annual -f results/baseline/annual -e test/base_results/comparisons/baseline/annual # *.html
# # baseline timeseries
# mkdir test/base_results/comparisons/baseline/timeseries
# python test/compare.py -a timeseries -b base_results/baseline/timeseries -f results/baseline/timeseries -e test/base_results/comparisons/baseline/timeseries # cvrmse_nmbe_*.csv
# # upgrades annual
# mkdir -p test/base_results/comparisons/upgrades/annual
# python test/compare.py -a results -b base_results/upgrades/annual -f results/upgrades/annual -e test/base_results/comparisons/upgrades/annual # results_output.csv
# python test/compare.py -a visualize -x results_output.html -b base_results/upgrades/annual -f results/upgrades/annual -e test/base_results/comparisons/upgrades/annual # *.html
# # upgrades timeseries
# mkdir test/base_results/comparisons/upgrades/timeseries
# python test/compare.py -a timeseries -b base_results/upgrades/timeseries -f results/upgrades/timeseries -e test/base_results/comparisons/upgrades/timeseries # cvrmse_nmbe_*.csv
# - name: Upload comparisons
# uses: actions/upload-artifact@v4
# with:
# path: test/base_results/comparisons
# name: comparisons
update-results:
runs-on: ubuntu-22.04
# needs: [analysis-tests, integration-tests]
steps:
- uses: actions/checkout@v4
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: Download feature samples
uses: actions/download-artifact@v4
with:
path: samples
name: feature_samples
- name: Download feature results
uses: actions/download-artifact@v4
with:
path: results
name: feature_results
- name: Download formatted options_lookup
uses: actions/download-artifact@v4
with:
path: resources
name: options_lookup
- name: Download precomputed buildstocks
uses: actions/download-artifact@v4
with:
path: test/tests_yml_files
name: precomputed_buildstocks
- name: Build Read The Docs Documentation
run: |
sudo gem install oga
ruby docs/read_the_docs/source/workflow_inputs/create_characteristics_rst.rb
ruby docs/read_the_docs/source/workflow_outputs/csv_tables.rb
cd docs/read_the_docs
pip install changelog
make html SPHINXOPTS="-W --keep-going -n"
- name: Save Read The Docs
uses: actions/upload-artifact@v4
with:
name: documentation
path: docs/read_the_docs/_build/html/
- name: Build ResStock Technical Reference Guide
uses: dante-ev/latex-action@latest
with:
working_directory: docs/technical_reference_guide
root_file: 0_main.tex
- name: Save Technical Reference Guide
uses: actions/upload-artifact@v4
with:
name: technical_reference_guide
path: 0_main.pdf
- name: Commit latest results
shell: bash
run: |
branch_name="${{ github.head_ref }}"
git pull origin $branch_name
cp -r samples/buildstock*.csv test/base_results/baseline/annual
cp -r results/baseline/annual/results*.csv test/base_results/baseline/annual
cp -r results/baseline/timeseries/*.csv test/base_results/baseline/timeseries
cp -r results/upgrades/annual/results*.csv test/base_results/upgrades/annual
cp -r results/upgrades/timeseries/*.csv test/base_results/upgrades/timeseries
git add test/base_results
git add docs
git add resources/options_lookup.tsv
git add test/tests_yml_files
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