Choosing a Continuous Integration Server
I’ve been tasked with setting up a continuous integration server for a team Java project. Options are:
- Anthill
- Continuum
- Cruise Control
- Something else?
We don’t have a strong opinion about any of these. Anyone care to comment on which one we should use and why?
June 2nd, 2007 at 8:45 AM
I like Hudson
https://hudson.dev.java.net/
It’s easy to setup, has a nice plugin architecture and features are constantly being added.
You can even give it a try by clicking on a JNLP link, it’s that easy to setup. One of the features it has that I want to try out is distributed builds, which is also a great feature for multi-platform builds.
June 2nd, 2007 at 9:05 AM
Hi, I would add:
Hudson (https://hudson.dev.java.net/) Open Source, nice Web GUI (compared to Cruise Control)
Bamboo, commercial from Atlassian (the JIRA guys) – nice GUI, stable, best reports
Olli
June 2nd, 2007 at 10:00 AM
Hudson – https://hudson.dev.java.net/
June 2nd, 2007 at 11:37 AM
I’ve not used this one yet, but i do know that atlassian just came out not too long ago with their Bamboo continuous integration server. I’m a longtime jira and confluence user and have been impressed with the quality of their software. it might be worth putting on your list.
June 2nd, 2007 at 12:50 PM
Cruise Control is the only one I have experience with, and it was satisfactory for the purpose; take that for what it’s worth.
June 2nd, 2007 at 3:06 PM
Are you considering commercial options or just open source?
June 2nd, 2007 at 4:15 PM
I’d second a vote for Cruise Control. We’re using it at the moment. Satisfactory is a good description. The only issue we’ve found was trying to run 2 separate builds (one for code, one for preparing 3 databases). Seemed like the only way would be to run separate instances.
I note Continuum is “tightly integrated” with Maven. I would say that’s a negative for Continuum, but that might bring down a world of hurt from the Maven fan-kids… ;-)
June 2nd, 2007 at 7:22 PM
I’ve had negative experiences with the robustness of Continuum, and Cruise Control configuration hurts my head. If you’re looking for something open source but easier to configure, have a look at Hudson. If you’re not limited to open source, then TeamCity and Bamboo are both good options.
June 2nd, 2007 at 11:05 PM
Hudson is easy to get started with. The project lead is incredibly responsive to the lists and the issue tracker. If you find that it doesn’t meet your needs, file an issue.
June 3rd, 2007 at 12:43 AM
There is also Finalbuilder Server (http://www.finalbuilder.com). Finalbuilder is like Nant on steroids. Now they’ve come out with the server which is amazingly easy to administer and supports all the actions that the FB script has. It’s a commercial product, but it’s amazing how much time it saves in the long run
(Btw I’m not affiliated with the company, I’m just a long time user and self-proclaimed evangelist)
June 3rd, 2007 at 5:36 AM
For the moment we’re only considering open source solutions, mostly because they pass the “Download it, install it on a spare PC, and start using it without waiting for upper management to sign off on a multi-thousand purchase” test. :-)
June 3rd, 2007 at 8:24 AM
I have used Cruise Control, Anthill, Continuum, and Hudson. Hudson is the winner hands down for its ease of setup and configuration and its easily accessible power. For a company with 3 different projects it took 15 minutes to install and set up Hudson. It has run for 5 months with no problems. Figuring out how to do things like publishing test results and such has been trivial.
We are now looking at doing remote integration tests from Hudson and starting them automatically after successful builds. It has all been easy.
And we haven’t even really explored the plugins …
June 3rd, 2007 at 6:10 PM
Also take a look at Luntbuild (http://luntbuild.javaforge.com/). We started with Cruise control and migrated to Luntbuild, as it has a web interface which allows you to easily setup all of your builds (Cruise may have this now). Only thing that we missed from Cruise was the ability to customise the email templates to include things like a summary of the test results.
June 3rd, 2007 at 7:37 PM
Cruise promises to see some enhancements soon via the CruiseControl Enterprise effort, so it may pay off; it’s a simple starting point. Hudson and Luntbuild have good reputations. Bamboo looks really nice, if lacking in some advanced features. Any of these is probably a good starting point, but it’s certainly worth trying a few to see what works well for you.
June 4th, 2007 at 1:56 AM
We’ve been using Luntbuild for a while now. It is adequate, but the interface is hard to navigate. For a new project I will look at alternatives.
June 4th, 2007 at 9:31 AM
Hudson (http://hudson.dev.java.net) is definitely a robust choice; I have been using it for six months without a glitch, and it’s ease of use is up to and often beats current standards for web applications.
June 4th, 2007 at 10:17 AM
Luntbuild +1
June 4th, 2007 at 1:10 PM
Bamboo is very sophisticated. It has a growing collection of plugins that allow it to integrate nicely with Clover, PMD, Cobertura etc. All setup is done through the administration GUI, which is refreshing after dealing with CruiseControl configuration files for a few years.
Costs money, but comes with support. It is an Atlassian product. I don’t have any connection with them apart from using it.
June 4th, 2007 at 3:46 PM
I have used Anthill in the past and have to say that it is an awful piece of software, even/especially the pro version. Combine highly unreliable (whoops it just deleted all our configurations again) with difficult to setup and maintain and awful support (please zip up your whole installation and send it to them type awful support). I would steer as far clear from that as I could.
June 4th, 2007 at 4:11 PM
We also began with Cruise Control but then migrated to Luntbuild.
June 5th, 2007 at 9:30 AM
I think the obvious question that nobody has asked is, “What are your needs? What do you want to get out of a CI tool?” There are a ton of tools out there and they have different strengths. Are you managing 2 projects or 20? Are dependencies between projects an issue? Are you thinking single server, or multiple? Is it all Maven? all Ant? Is there native code running around? Are you getting into deployments? How much do you like editing xml?
For Doug, I’m an Anthiller, and feel a need to give you an update and clarify. It should be noted that the AnthillPro 3.x line has replaced the persistence mechanism present in 2.x and the problems you describe are no longer an issue. The backend is now a proper database with transactional support, easy back-ups etc.
On the support side, the alternative to sending us your configuration data (not the whole install) would have been us sending you instructions for how to spend a few hours digging around in configuration files. For most people that’s not a lot of fun, so our support team took on that task for you to save you the trouble. That approach was used relatively rarely, but when it made sense it made sense. Cheers.
June 17th, 2007 at 6:38 PM
Hudson is my choice too. we are using it for a long time. the easiest one to install and configure so far.
June 29th, 2007 at 5:19 PM
About 2-3 months ago we commissioned a huge evaluation of build tools which I undertook. What you need to draw up is a list of criteria that you require and work from there. What we found is that few tools are actually of any use for anything more than a simple project. Remember some of these tools have a killer feature missing; real time log and progress with an ability to cancel running builds! This can become infuriating. Oh and so can no permissions, we had developers ‘accidently’ click build on import projects that took 40 minutes to build and it causes chaos.
Hudson: Looking good, but immature. No dependancy management, no agent based system (so no deployment options), no lifecycle (so how do you know what state something is in?). Its future looks bright, expect it to be the open-source zen in another 6 months.
Cruise: For all but the simplist projects, a disaster. Used it in many companies, many configs. Its unstable, troublesome to configure and the UI is useless. All you can do is click ‘build’ – now you tell me how you do workflows and job progress?
Luntbuild: I haven’t got our review at hand, but it wasn’t worth the cost.
Pulse: If you have some money (its cheap), this eats up bamboo. Mark my words: its rocking. Gets no press and I don’t know why. Truly impressive for the SME on a budget wanting something that you can grow into.
Bamboo: Ok – so the love is there for Atlassian, we have JIRA/Confluence. But lets be honest – who deploys a 3 month old product into a corporate environment? Good future, good team, but needs another year to bed down.
Anthill Pro: For medium to large corporates its the only route. Expensive, but you get distributed agents, workflow, build lifecycle, dependancy management enterprise wide (this rocks) a clean UI, Active Directory integration that works really well.
Rational Buildforge: Waste of time. We had their sales team in and its just useless. Honestly, tens of thousands of dollars for what?
We’ve got AHP. For a company with tens of projects each with huge build processes including database config loading (AHP agents rock for this) its the best bet. Pulse was a very close second. Ignore the negative press for AHP 2. Its old; AHP 3 is very impressive.
But we’re not pitching a system for small teams, so in the majority of cases AHP is overkill; for example Cisco use it on hundreds of projects.
October 22nd, 2007 at 11:54 PM
As Eric quoted,It really depends on your needs.I tried out CC,Luntbuild and Hudson and found Hudson to be very impressive.Confguration doesnt take much time.The only thing it lacks is the Role based Permissions.As of now anybody who has access to it can start a build and can even delete the whole project.Hope they add it soon.The future looks bright for Hudson.
September 5th, 2008 at 1:44 AM
My vot is for HUDSON. No other thought required. If you want to go for still more robustness, more features with professional support go for AHP3(Anthill Professional 3).
April 9th, 2009 at 5:44 AM
[…] Choosing a Continuous Integration Server […]