Continuous integration is an integral part of an agile setup. Sprint after sprint teams strive to “not break the build” while delivering incremental features. But, while developers focus completely on adding features, it happens sometimes that code errors creep in and render the software unusable. To stop such errors from being integrated to the SCM, a CI server is the gatekeeper that helps keep a tab on code quality. Even if the code is integrated to SCM, a CI server can very quickly tell you what went wrong. In this post, lets look at five open source CI server tools, that you can use in your agile setup.
Photo by Siyan RenJenkins
The best known among the CI servers, Jenkins branched from Hudson. It is developed in Java and can be easily installed using “java -jar jenkins.war”. You can also deploy it in servlet containers. Jenkins supports an array of SCM tools - Git, Mercurial, Subversion, Clearcase and many more. You can build Apache Ant, Apache Maven based projects and other shell scripts or windows batch files for pre/post build activities.
Product page
License
Creative commons attribution 4.0
Source code
Buildbot
Developed in Python, it is based on Twisted framework. It started as an alternative to the Tinderbox project, and is now used at projects like Mozilla, Webkit, Chromium etc. Buildbot installation has one or more masters and a collection of slaves. The masters monitor source-code repositories for changes, coordinate the activities of the slaves, and report results to users and developers. Slaves run on a variety of operating systems. You can configure Buildbot by providing a Python configuration script to the master. This script can be very simple, configuring built-in components, but full python power is available.
Product page
License
GNU GPL V2
Source code
Travis CI
Travis CI is probably one of the most easiest CI servers to get started with. Apart from being open source and free to host on your own infrastructure, Travis CI offers a SaaS version that allows free testing for open source projects. Set up is as easy as linking your GitHub account, giving the relevant permissions and updating the .travis.yaml file with your project specific requirements. A new Travis CI build is triggered after a file is committed to GitHub. Read more here.
*Fun fact: we, at Taiga, use Travis CI.
Product page
License
MIT License
Source code
GoCD
As with other advanced CI servers, GoCD lets you distribute your builds across different systems and monitor them at one place. Activities that you regularly perform can be added as pipelines in GoCD and then instances of these activities are called as jobs. GoCD comes with an easy to use GUI and a detailed documentation. GoCD was created and then open sourced by ThoughtWorks.
Product page
License
Apache license V2
Source code
Integrity
Built on Ruby, integrity is available under MIT license. Preconditions to install Integrity are Ruby (>= 1.8.7), RubyGems (>= 1.3.5) and git (>= 1.6). Once you install Integrity, you need to configure it using “init.rb” file. A sample for this file is available in the Integrity product page. Note that Integrity currently works with git only.
Product page
http://integrity.github.io/
License
MIT License (From Wikipedia)
Source code