I read the feature description of all kinds of CI servers, but they don't tell me how good the support is in practice. What is your experience?
Here's a matrix of CI server features, including GIT support (scroll down).
EDIT: wrt. experience, I've found Hudson easier to configure and maintain than CruiseControl. I've found in the past that:
- CruiseControl has suffered from a non-intuitive configuration that requires some repetition of the same XML for different builds
- in particular the integration and reporting of JUnit results can consume a lot of memory (and fail) when you have a lot of tests (this is because the JUnit XML reports are translated to HTML via XSLT).
- Occasionally it has trashed its state files, or spits its dummy out if it can't write to a results directory (if it isn't there), and comes to a halt without useful error messages. Consequently I've spent more time than I care diagnosing and fixing troublesome CruiseControl installs.
Obviously other people will have different experiences, but I've seen the above at different client sites.
My shop's had a great deal of success with Hudson once we got the configuration worked out (which did take some doing). Is there some specific area that you're interested in hearing about?
I've used TeamCity for a few months, and git for over a year. TeamCity was a breeze to set up, and recently added built-in support for git (before that the plugin worked pretty well for me too). Their git module works pretty well, but it gets confused if you switch the git server you're pointing to after creating the VCS Root. Not much that I can find in terms of logging to figure out what's going wrong either.
But it works 95% of the time, and I'm happy with it overall since configuration is so easy.
We're using BuildBot with git. In general, it works!
Our build system has hooks for starting a build whenever a commit is made (actually, a push to the origin). Buildbot's website shows the blame-list for the build etc. In general it works good!
Also, seeing some of the features that are to-be-merged into git didn't have great git support, the developers were VERY responsive and helpful in adding that support. Really, a great system simply because it's pretty easy to affect things.