We are a Java shop looking for a CI tool to use. Both Hudson and Teamcity seem to be free but Teamcity seems slicker and with more support.
I was wondering why one would still use Hudson and if anyone could provide any argument for/against either?
I had never heard of Teamcity before -- the website looks slicker for sure. I've been quite satisfied with Hudson, but we're not really pushing it to its limits. It is up and running in a couple of minutes just like Teamcity.
The one big plus for Hudson for me is it being open-source. I see Teamcity supports plugins, so you can probably make it do whatever you want but this might be the only issue that you really cannot add-on later.
+1 for Hudson.
Hudson is a very active project, has a wide community of users and an active users mailing list, is really easy to start with, is easy to use, has been used on huge, very huge, projects (JBoss, JAX-WS, etc) and thus has proven records of success, offers very nice advanced features (e.g. build matrix, build clustering, etc), is open source, has a lot of plugins...
And if support is really an important thing, you can get commercial support from Sun. But FWIW, I never faced any blocking problem with Hudson.
Update: As you may know, Kohsuke Kawaguchi (the creator of Hudson) has left Sun/Oracle and started his own company to take Hudson to the next stage. In other words, this is not a threat for Hudson. And if you are looking for support, you can get a certified version of Hudson CI Server as part of a subscription plan (this certified version bundles a high quality release of Hudson with a predefined set of plugins plus some commercial one).
Update: To illustrate the size of their respective user base, here is a comparison of job trends for several CI tools on Indeed (live query):
This is of course not a technical indicator.
Team City is by far and away the best CI server out there. Its killer feature for me is the tight integration with IDEs (IntelliJ, Eclipse and VisualStudio). It can show you, for example, when a file you're editing in the IDE becomes out of date, who changed it and what they changed. You can commit from the IDE to the CI server, run the comile and tests on the build grid, and then the CI server will commit if the build is successful. You can click on build reports in the CI web app and it will open the appropriate files in the IDE.
There are plugins available (I wrote one: http://team-piazza.googlecode.com), but not many.
I really liked Teamcity but in the environment I am working it, the time it would take to get a Purchase Order for Teamcity through the layers of management would likely have exceeded the time it took to migrate everything over to Hudson.
TeamCity is great because it allows each developer to have their own build profile and hook into it from their IDE. That a lone is 'butt-kickin'. There is also support for GIT etc. Seriously take a look at it. The professional version is free.
I'm just starting to get used to hudson ready to experiment and see how it will fit into our current environment. I have absolutely zero experience with Teamcity so can't comment on that but I am enjoying working with hudson thus far.
There are lots of plugins for hudson plus the hudson site gives you plenty of advice for writing your own (http://wiki.hudson-ci.org/display/HUDSON/Extend+Hudson).
We started out with Hudson for a couple of Flex projects, then we migrated to TeamCity, when the .NET developers joined our CI efforts. Now we have replaced the TeamCity server again, back to Hudson. The main reasons are: - The vibrant Hudson community, better than support. - The huge amount of plugins for every kind of tasks. - The open source. - Hudson is for free, TeamCity is only free for 10 projects.
The biggest argument against Hudson is that every release introduces new bugs.
Releases are very frequent, so you have to upgrade frequently so you don't fall behind. That means that you need to devote a lot of time to diagnosing issues and rolling back to previous Hudson releases. (Sometimes a rollback isn't even possible!)
We are introducing Continuous Deployment in our shop (when you check in code, it gets deployed on the live site!) and having to wrestle with Hudson is costing us too much.
We are actively looking at migrating to TeamCity purely because of the cost of Hudson's bugs.
I've been recommending to clients that they consider Bamboo. The reason being that (ok, from reading the spec sheets!) it has a very similar feature set to TeamCity. However the main benefit is very tight integration with JIRA which is quite popular as a feature/bug tracking system. The complete suite being JIRA, Greenhopper, Bamboo and Eclipse. Quite a few clients also have HP Quality centre and there are plugins which joins that to JIRA as well. I also like the fact that JIRA, Bamboo and GreenHopper all come from Atlassian.