I am searching for a comparison of different
continuous integration (CI) Servers (esp. focusing
on .NET) and couldn’t find any.
Therefore I’d like to know what you think about the
different solutions available, what are the pros and cons,
what are the hosting requirements and why CI Server XY is
the Server of your choice.
I am interested in your thoughts on (feel free to comment on
others to):
- Hudson
- CruiseControl
- CruiseControl.NET
- Teamcity
- CIFactory (uses CruiseControl.NET)
Points of Interest are:
- Configuration (easy, flexible)
- Integration with SCM (esp. DSVC like git or hg)
- Integration with build sytems (MSBuild, NAnt, Rake)
- Integration with Testing Frameworks
- Integration with Source Anaylsis (Simian, NDepend, FxCop, NCover etc.)
- WebInterface/Dashboards
- Infrastructure requirements
No question like this is complete without a link to the big CI Feature Matrix(Web Archive) which lists just about every CI option out there.
But I think it is important to look ahead to the scope of what you want to include in your CI system. Is it going to be just builds or are you going to be bringing in other elements like static analysis, cross-project dependencies, deployments, functional tests, etc. To help with that planning I created this wallchart on the Elements of Enterprise CI (PDF; no registration required). Please don’t let the “E-word” put you off; I just mean stuff beyond the basic fast feedback CI build. 🙂
It isn’t tool specific but lists a variety of practices you might consider while you’re in the planning/evaluation stages.