Travis CI is one of the most popular CI servers for open source software. At Ortus Solutions, we use it for all of our open source software due to its strength of pull request runners and multi-matrix runners. They have both free and commercial versions, so you can leverage it for private projects as well.
FREE for Open Source Projects
Runs distributed VM’s and Container Support
Triggers Build Script via git repository commits (.travis.yml
)
Multiple language support
Many integrations and extensions
Many notification types
No ability to schedule/manual builds
Great for open source projects!
In order to work with Travis you must create a .travis.yml
file in the root of your project. Once there are commits in your repository, Travis will process this file as your build file. Please refer to the Travis Documentation for further study.
This build file is based on the java
language and an Ubuntu Trusty image. We start off by executing the before_install
step which installs all the OS dependencies we might need. In our case we add the CommandBox repository server keys and install CommandBox as our dependency. We then move to our install
step which makes sure we have all the required software dependencies to execute our tests, again this looks at our box.json
for TestBox and required project dependencies. After issuing the box install
we move to starting up the CFML engine using box server start
and we are ready to test.
The testing occurs in the script
block:
In our script we basically install our dependencies for our project using CommandBox and startup a CFML server. We then go ahead and execute our tests via box testbox run
.
In order for the box testbox run
to execute correctly, our box.json
(See https://commandbox.ortusbooks.com/content/packages/boxjson/boxjson.html) in our project must be able to connect to our server and know which tests to execute. Below are all the possiblities for the testbox
integration object in CommandBox's box.json
. (See https://commandbox.ortusbooks.com/content/testbox-integration.html)
You can look at our cbVue
sample application online: https://travis-ci.org/coldbox-samples/cbvue which contains all CI server integrations.