Imagine a bacon-wrapped Ferrari. Still not better than our free technical reports.
See all our reports

DevProd Report Revisited: Continuous Integration Servers in 2013

If you’re looking for an exercise in anguish, let’s all take a moment to remember what life was like before Continuous Integrations tools existed. Those awful handwritten build scripts, unmanageable XML files with thousands of lines of Ant tasks, source control for your build process?! Yuck.

Luckily we now live in a world where this problem has been greatly simplified. We reported in our Developer Productivity Report in 2012 that Jenkins/Hudson was the de facto standard for CI servers, and that hasn’t changed, and we don’t really expect it to either.

Due to the nature of build and testing tools, we are less likely to see revolutionary changes and much more likely to see evolutionary improvements. Jenkins/Hudson for example has become so easy to use that 85% of users feel they’re using the tool at an “expert” level. New tools like Travis are the likely evolutionary direction of the CI tool-space, hosted and distributed with hooks into modern source control providers. If you’re using GitHub, definitely take a look at Travis.

FYI – For a more detailed overview of Continuous Integration, you should check out our recent RebelLabs report titled Why Devs <3 CI: A Guide to Loving Continuous Integration.

Jenkins / Hudson

http://jenkins-ci.org/ / http://hudson-ci.org/
Latest version: 1.500 / 3.0.0

Jenkins/Hudson is still the big dog in the CI world. They account for about half of all CI users in our survey and for good reason. There is significant support through the community and commercial support is also available for businesses.

But it is lopsided in favor of Jenkins. Given the split in 2011 between Jenkins and Hudson, we’ve seen the community follow the technology’s founder, Kohsuke Kawaguchi, to the Jenkins side for the most part. There’s been a survey about the evolution of Jenkins’ usage in 2012, take a look at it for a nice infographics and some information about Jenkins’ and its community growth.

Bamboo

http://www.atlassian.com/software/bamboo/overview
Latest version: 4.4

Bamboo is a popular CI developed by Atlassian, it has several great features and can tie in with the rest of the Atlassian suite, including Jira. Featuring easy migration of jobs from Jenkins, it can be a better alternative if your organization is deeply tied to the Atlassian stack. Bamboo is available for download and on-demand.

TeamCity

http://www.jetbrains.com/teamcity/
Latest version: 7.1

TeamCity is a commercial CI server developed by JetBrains, the makers of IntelliJ IDEA. Released late in 2012, TeamCity 7.1 included featuring branches for Git and Mercurial, better integrations and extensibility with Xcode, Visual Studio and Amazon EC2 and improved changelog support. If you are a big fan of IntelliJ IDEA and want to see more goods from the JetBrains family, then TeamCity might be a good bet for you, and they already have 50 plugins to help it fit into your stack.

CruiseControl

http://cruisecontrol.sourceforge.net/
Latest version: 2.8.4

CruiseControl is one of the older CI servers available, it has a strong community of stalwarts, and rightfully so. It’s a powerful CI server, and when it comes to your build toolchain, why change things if they’re working? According to their download page, there hasn’t been an updated release since September 2010, so it appears to keep to the old adage, “If it ain’t broke, don’t fix it”. Let us know if you’re a Cruise Control user, or if you recently switched from CruiseControl and what you moved to!

Bonus Coverage: Travis CI

https://travis-ci.org/
Latest version: hosted

Travis CI is a hosted continuous integration service for the open source community. It rose from offering Ruby support to supporting all kind of languages and platforms. The main idea is that it integrates effortlessly with your github repo, so you can add a single file and a post-push webhook will trigger a build in the hosted virtual machine. Travis still is quite young, but you can get a feel of what’s going on with it from their summary blogpost for 2012. Next time you push your pet-project on github, think about throwing some CI in there.

Conclusion

In fact, whatever CI server you use, you’re doing good for your project. If you looking forward to enabling continuous integration for a project you can pick the tool you know the best or look and compare the featureset and pick the most advanced solution. Anyway, tell us what has happened to your CI environment in the past year?

Prepared by Adam Kobletz, Oleg Shelajev, and Oliver White

  • http://twitter.com/paulbiggar Paul Biggar

    I want to put another service on your radar: CircleCi (https://circleci.com). CircleCi is a hosted platform that you can set up in minutes. It’s incredibly fast, runs tests on all branches, and is designed specifically for web apps (so if you have a Rails, Node, PHP, Python, Java, etc, app you can probably get set up in one click).

  • http://twitter.com/shelajev Oleg Šelajev

    hi Paul, good to hear that innovation didn’t stop there on jenkins :)

    from what I picked during a very quick glance on its docs, it is something like Travis, but supercharged for web-apps? More like for integration testing setup with database and app being deployed to actual servers kind of testing?

    Sounds really interesting, I’ll keep a mental note to check it out sometime.

  • http://twitter.com/paulbiggar Paul Biggar

    Sort-of: its full CI (unit tests, functional, integration tests, etc) and continuous deployment, but completely hosted (we host all the machines, and your tests run on our machines, each of which has local DBs, etc). I wouldn’t say the apps “deployed”, but rather that we provide a clean sandbox on which to checkout code and run tests.