views:

3255

answers:

31

My company is considering changing continuous integration servers (I won't say which one we have now, so I won't skew your responses in anyway :) ) I wondering if anybody has any recommendations? Best user experience, level of difficulty to maintain, etc...

Our code is all in java, and we use ANT as a build tool.

+17  A: 

I've heard lots of good things about Hudson.

Michael Myers
+3  A: 

We use Cruise Control. It's got all the features we want and was pretty easy to set up. Integration w/ ANT and SVN is fine.

Con: every once in a while we have to restart the process or the machine as it stops sending out messages for the nightly build. Not sure what that's about but it's just annoying.

Matt
yes, i've experienced that sort of thing with Cruise Control too. I switched to Hudson. So far so good.
Chinnery
I have also seen this kind of instability with CC. That is one of the reasons my company switched to Luntbuild.
pkaeding
I've found with both CC and Hudson if you mark (select) text in the cmd window then the tools can get blocked writing their output and appear to stop.
Greg Domjan
+7  A: 

Jetbrains TeamCity looked really good when we looked at it. It is java based so should be easy for your teamn to extend, and can do distributed builds etc... There's a freebie version you can evaluate.

craigb
Clarification - Jetbrains TeamCity Professional is free for up to 20 build configurations. No time limit, it's not an evaluation edition.
Bevan
+75  A: 

I recently implemented a Hudson server. Having previously used Cruise Control, I am very satisfied with Hudson and very impressed with its ease of setup and use. Adding new projects is infinitely easier than it was with Cruise Control.

Joe Skora
Agree with this.
toolkit
I've worked at places that used Cruise Control and others that use Hudson and I would never want to go back to Cruise Control. It also has a nice NetBeans plugin and the testing integration was great.
18Rabbit
Completely agree. I set up both a CruiseControl server and more recently a Hudson server at work, and CruiseControl required far more maintenance. Hudson is a real pleasure to work with, plus there are lots of good plugins for it (e.g. for Cobertura, Emma, FindBugs, CPD, etc).
Tom De Leu
The plugins were a very pleasant surprise when I set Hudson up!
Joe Skora
Another vote for Hudson.
Jack Leow
+Hudson. Cruisecontrol is a pain, Hudson is friendly.
mfx
Hudson is extremely easy to install, setup and maintain. We use it for ant and maven builds.
jon077
Hudson is sick. I just installed it today and it keeps blowing my mind - you can install plugins thru the web interface, and hudson (which is just a WAR) knows how to download and install them itself? So nuts.
matt b
Now, if only Hudson's emails about broken builds were as informative as those sent by CruiseControl. That's about the only thing I miss about CC.While at it, here's a good introduction to Hudson: http://blog.uncommons.org/2008/05/09/why-are-you-still-not-using-hudson/
Jonik
One thing I miss from a Hudson (or maybe I just can't configure it right?) is to report every failure, but only first success (so I know when the build is fixed).
Ivan Dubrov
+1  A: 

We've used Cruise Control with decent results. We have since started using Maven for the build tool in all our projects. With that came the move to Hudson for CI which is very nice. If you think a move to Maven might be in your future, I'd recommend it. I think Hudson can even be used to call Ant tasks though a Maven wrapper might be in order.

https://hudson.dev.java.net/

+1  A: 

Thoughtworks Cruise is the commercial offspring of the CruiseControl open source project. Looks very nice, lots of features, distributed builds etc. I don't know what it's extendability is.

craigb
+7  A: 

Atlassian's Bamboo looks nice but I don't have any experience with it. Looks to be similar in features to Cruise or TeamCity.

craigb
Bamboo not too bad (though I suppose anything is "not too bad" if your first CI tool was CruiseControl...). It's only barely capable of handling large numbers of projects (say, over 200), but it's getting better at it.
romkyns
+4  A: 

Bamboo works great; if you have cash I'd recommend that. Cruise Control is worth its price; I've never been able to get it to reliably discover that source changes were made and build, nor have I have been able to get it to build manually. The interface and configuration are horribly complex.

davetron5000
+17  A: 

Edit: We use Hudson now.

A while ago I looked into a bunch of these with the following requirements:

  • Java code
  • Ant builds
  • Groovy builds
  • Distributed builds
  • SCM trigger integration
  • http reports
  • smtp reports

The Continuous Integration Feature Matrix is a great place to start.

I ended up selecting AnthillPro and am using it successfully, just scratching at the surface of what we can and hope to use it for.

Instantsoup
DISCLOSURE: That matrix was written by Cruise Control folks.
Pablo Fernandez
Thanks for posting the CI matrix link - excellent resource, even though it is by the cruise/cruise control folks.
Julie
Actually it wasn't: http://stackoverflow.com/questions/140453/continuous-integration-servers/275728#275728
Jeffrey Fredrick
+1 for link to matrix. I use it every time I have to revisit this issue.
Jared
We used Hudson and then switched to AHP because of it's support for deployments. It's definitely more complicated than Hudson but also a lot more flexible and customizable.
spilth
A: 

I use Continuum for my continuous integration server. No reason other than I was going to hire a development manager who had used at his last assignment so it seemed to make sense to pick something at least one of us was experienced with.

Prior to picking Continuum I had a junior developer spend two weeks trying to get CruiseControl going. However, we got Continuum 1.0 to run first go.

bmatthews68
+1  A: 

An org I run (openqa.org) has, at one time or another, used just about all of them. In terms of easy setup, go with TeamCity or Bamboo. But in terms of overall reliability, you might want to look at Hudson. I really like JetBrains, but we found TeamCity to get in to weird states after a while, causing our builds to be very unreliable. Too bad, since I love IDEA!

I've had no strangeness with TeamCity since version 3. But perhaps my builds are too small.
Steve McLeod
+3  A: 
anjanb
A: 

We've been using Automated Build Studio and have been pretty happy with it. It's a windows app, so you're stuck on a windows build server, but on the plus side it's super easy to set up, maintain and use. You build your process from components via point and click, and can use scripting if none of the components meet your needs.

Joeri Sebrechts
A: 

Here is a nice video on how to setup SVN + CruiseControl.NET with Delphi application

Charles Faiga
A: 

We are using Zutubi Pulse and it works great for us. It's very easy to use ant has many advanced features.

Pini Reznik
+9  A: 

I have been looking into this too and although I initially was looking at CruiseControl, I heard good things about Hudson and decided to give it a try. I am completely blown away by how easy it was to get started (just download and run) and the configuration is done through the GUI so there's no fiddling around with XML config files.

Within minutes I had performed my first Ant build. I now have it running as a Windows service on a server which is available 24/7 both in the office and via VPN. Upgrading is as simple as downloading the new war file and restarting.

Support for junit reports is out of the box. Installing additional plugins is also very easy and I have added plugins for Trac, Cobertura, FindBugs and PMD. Code and test quality is increasing as it's very satisfying to see the trend graphs rising!

I now use it to manage all of my builds for test and production environments. Since I manage several web applications this gives me more time to spend on actual programming. I honestly can't remember how I managed without it.

Caroline Orr
+5  A: 

Like some other people here, I really love Hudson.

It is extremly easy to install (it's just a war file to deploy), to configure and to use. In addition, it offers a lot of functionalities that are not always available on others systems (build matrix, master and slaves, security on server or project level...)

The number of existing plugins is quite important now, and creating its own plugin is not that hard...

To finish, this application evolves really fast: we are currently on the 257th release and they made more than 100 releases since one year!

For french people, I wrote a quite complete guide to use Hudson here.

romaintaz
+4  A: 

If you are using Atlassian staff software (e.g. Jira, Clover etc.) Bamboo is your way.

We use it for couple months and I can recommend it. It worth its money.

FoxyBOA
Bamboo certainly works for us in our Atlassian shop. However, should you ever go the Maven route, note that Hudson has some magic built in that Bamboo still doesn't (http://jira.atlassian.com/browse/BAM-230).
Brian Laframboise
We are on ant yet. So it's not our case. Other issue we met with bamboo:it still isn't 100% compatible with SVN 1.5 (can't work with SASL encryption).
FoxyBOA
A: 

We use StarTeam and between Hudson and CruiseControl.NET,CC.NET has some bugs when integrating with StarTeam. It does not seem to recognize the workspace that we define in the config files.

Dan
+2  A: 

Just a word on the Continuous Integration Feature Matrix: it wasn't collected by the CruiseControl people, it was started on CodeHaus by the DamageControl project and moved to the CruiseControl wiki when DamageControl went into hibernation. The information is largely maintained by the project/product owners or by their fans.

Jeffrey Fredrick
A: 

Last year on the a conference in the USA i first heard about Cruise Control .net on a 1 hour presentation, on my way home in the plain i decided to implement a small POC for our company and succcesfuly done it in less than 5 hours (including all the learning i could have done).

I am using it since than and i must say that i am very pleased with the results, and ease of operation, There are some drawback (E.g. lack of distribution of task across servers scale although you can monitor several servers) i found a a bug in one of the implementation and because it is an open source i could have fixed it very quickly (big advantage) - i created a little [project][1] in codeplex to contain my fixes before i contribute them to the community as a check in. I highly encourage you to look at this platform, also it would be nice if you can say what you actually need.

[1]: http://www.codeplex.com/DavidovitzCCE project

+1  A: 

I guess I will be the first to mention Luntbuild. Aside from the less-than-catchy name, it's a great CI server.

  • Super easy to setup.
  • Web UI for creating/managing your projects and users
  • Support for LOTS of version control systems (I've used it with CVS, SVN, and StarTeam)
  • Pretty slick remote API
  • Relatively high granularity for access control (so you can give clients access to only their builds, and not toher clients' builds)
  • and much much more.

Check out the Live demo. account/password demo/demo

Note: The live demo is a few releases back.

Liggy
I heard the downside to is lack of unit testing support.See here:http://stackoverflow.com/questions/672/which-build-configuration-management-tool/115308#115308I wonder if you run into the same issue?
ShaChris23
I've not run into the same issue. For example, ANT is capable of executing unit tests, and there are many unit test parsers available that have ANT tasks. Lunt can then invoke any of these ANT targets within a Lunt project. I agree, though, that the OGNL expressions for results parsing can be complex. Personally, I've rarely found a need for that.
Liggy
+1  A: 

I am happy with bamboo. I looked at a number of free solutions before settling on it.

TofuBeer
A: 

Of the few that I've used, Buildbot stands out as the most powerful and flexible. It's not the prettiest, though, if that matters to you.

Ken
+1  A: 

I've administered both Bamboo and Hudson, and I would recommend Hudson.

They are both great, but Hudson has better report support, for instance publishing your coverage reports etc. is so much easier inside Hudson.

This is likely to change in the near future, but despite Bamboo's integration w/ JIRA etc. and it's statistics, Hudson, for ease of use and third-party support, is better regardless of dollar amount (it is free, Bamboo is not).

bowsie
+5  A: 

If you are not completely sold on Hudson a one click test drive should change your mind.

Click below:

https://hudson.dev.java.net/hudson.jnlp

This will launch Hudson through Java Web Start for a test drive. Once it launches, visit http://localhost:8080/ to get to the dashboard. Any configuration that you do with this Hudson will be stored in ~/.hudson, so your data will survive through Hudson process restart.

If you are using fairly standard tools such as svn and ant/maven - you should have a build up and running in 5 minutes. Different tools and it might take 20 minutes!

See an introduction here:

http://wiki.hudson-ci.org/display/HUDSON/Meet+Hudson

Pablojim
+1  A: 

We use Hudson too and if it wasn't the recession, we would probably use Bamboo and most of the Atlassian products(Bamboo, Crucible, Confluence) together with JIRA.

So you consider Bamboo better than Hudson - can you elaborate why? (Not everyone agrees: http://stackoverflow.com/questions/140453/continuous-integration-servers/585442#585442)
Jonik
A: 

CruiseControl.NET is much more effective on Windows boxes, especially when dedicated build server is not available yet.

Oleg Zhylin
Much more effective than what?
EFraim
A: 

Check out our Parabuild. Compared to free tools, it is very easy to set up and its maintenance overhead is close to zero. it's not free but you get what you pay for.

Slava Imeshev
A: 

Why don't you use a hosted CI service then you don't have to worry about maintenance, costs etc.

MikeCI is a hosted CI service which hosts your builds in the Amazon EC2 and for just $10 per month is a hell of a lot cheaper than maintaining your own CI server.

Give it a go.

Mike Jessop
A: 

Consider a free hosted CI service at fazend.com. It supports ant.

Vincenzo