Skip to content

Continuous Integration

Jason Turner edited this page Mar 19, 2015 · 5 revisions

Setup

Continuous Integration is facilitated through the use of the decent_ci system.

The files .decent_ci.yaml, .decent_ci-Linux.yaml, .decent_ci-Windows.yaml and .decent_ci-MacOS.yaml in the root folder configure the build system.

For building EnergyPlus, you need to set up the requirements for decent_ci, and follow its instructions here:

https://github.com/lefticus/decent_ci/wiki/Decent-CI-Cheat-Sheet

Additionally, EnergyPlus requires that the boto python package be installed to run regresion tests

pip install boto

Packaging

Windows Note

pip may not be installed if you are running Python 2.7. An upgrade to python 3.4 is acceptable from the standpoint of EnergyPlus.

TODO

Prepare For Test Deployment

  • correct use of multiple compilers for non-VisualStudio
  • Refactor configuration into input yaml file
  • Pass location of yaml file (repository / local) to ci.rb
  • Create script (update_ci.rb) for grabbing ci.rb and current configuration from github so that the process it automatically and continuously updating. (https://gist.github.com/lefticus/10914850 script runs in a loop, grabbing latest ci.rb and executing it against passed params)
  • Add timeout settings for ruby calls to external processes
  • Ensure that ctest timeout is set to something reasonable
  • Add code comments (also split up code some, this could use work)
  • Add config options
  • enable / disable clean up of build folders
  • logging verbosity
  • enable / disable posting to github
  • set build type per compiler
  • autofind cmake on windows, assume running from git bash on windows

Perform test deployment

  • Get new github repo created: NREL/energyplus-build-results (or use a personal one, lefticus/energyplus-build-results, if necessary for now) Using personal for now http://github.com/lefticus/energyplus_build_results
  • Set up windows / mac / linux systems running the update_ci.rb
  • Verify they are running
  • Enable posting to github

Get integrations working

  • Execute all example idfs
  • save data
  • sanity check on simple pass/fail of execution of simulation

Get regressions working

  • After execution of integration test, run numerical comparison vs baseline (master is baseline for develop, develop is baseline for everything else)
  • Out of spec comparisons are considered failures note: with multiple build machines, it might be hard or impossible to do these at test time, due to not knowing if the baseline data is done yet
Clone this wiki locally