Awesome
Intro
Serge got things started using Lukas' builder, with travis-ci, so I'm aiming to team up Metacello and builder to make the setup and maintenance of CI test scripts for GLASS, Pharo and Squeak as painless as possible ...
Using builderCI
- Read Travis CI docs.
- Create a Baseline for your project.
- Create your own .travis.yml file by copying the template travis.yml into the home directory of your git project.
- Decide which platforms you want tested (Squeak-4.4, Pharo-1.4, GemStone-3.1.0.2, etc.) and edit the .travis.yml file to create your build matrix. See the builderCI .travis.yml for the current list of supported platforms. If you are using Metacello with your project you shouldn't have to make any other edits. Metacello and FileTree are pre-installed in the image.
- Create a tests/travisCI.st that contains the code to load your project, its tests and launch the test harness.
- If you have questions or comments open an issue or join and comment on the Metacello Mailing list.
- Enjoy.
Dealing with Failure
Here's sample output for a build that failed because of unit test failures. Scroll to the bottom of the console and you'll see a test summary that looks like the following:
***********************************************
Results for builderCI Test Suite
3 run, 1 passes, 0 expected failures, 1 failures, 1 errors, 0 unexpected passes
***********************************************
*** FAILURES *******************
SampleTest debug: #testFailure.
*** ERRORS *******************
SampleTest debug: #testError.
***********************************************
Tests that fail or produce error are listed. You should be able to copy the the expressions and evaluate them in a workspace:
SampleTest debug: #testError.
Debugging Travis CI scripts
At the beginning of the run, everything written to the Transcript is routed to to the TravisTranscript.txt file. You can list the contents of the file by including the following line in your .travis.yml
file:
- cat TravisTranscript.txt
or conditionally dump the TravisTranscript.txt file upon an error or test failure:
- $BUILDER_CI_HOME/buildImageErrorCheck.sh
- $BUILDER_CI_HOME/buildTravisStatusCheck.sh