6 excellent continuous integration tools

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 6 open source CI server tools, that you can use in your agile setup.

Noria by Siyan Ren Photo by Siyan Ren

Jenkins

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.

JenkinsCI

Product page
http://jenkins-ci.org/
License
Creative commons attribution 4.0
Source code
https://github.com/jenkinsci

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.

Buildbot

Product page
http://buildbot.net/
License
GNU GPL V2
Source code
https://github.com/buildbot/buildbot

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.

Travis CI

Product page
https://travis-ci.org/
License
MIT License
Source code
https://github.com/travis-ci

Strider-cd

Strider is written in Node.JS / JavaScript and uses MongoDB as a backing store. MongoDB and Node.js are prerequisites for installing Strider. Finally you can install it using “npm install”. Though, extremely customizable through plugins, Strider may need you to put your hands in code - not a bad thing to do, but if you would like a more quick setup without much programming effort, you should probably look at other options.

Strider-cd

Product page
http://stridercd.com/
License
BSD License
Source code
https://github.com/Strider-CD/strider

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.

GoCD

Product page
http://www.go.cd/
License
Apache license V2
Source code
https://github.com/gocd/gocd/

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
https://github.com/integrity/integrity
blog comments powered by Disqus