Comparison of CI Servers?

.NetComparisonContinuous Integration

.Net Problem Overview


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):

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

.Net Solutions


Solution 1 - .Net

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.

Solution 2 - .Net

Solution 3 - .Net

TeamCity has a wonderful feature of allowing the developer to perform a personal build before committing. Very useful!

CruiseControl.NET is the granddaddy of the bunch and is hence a little dated visually etc. As it has been around for a while, Google knows how to fix many issues you will come up against.

For these reasons (amongst others), I use CruiseControl.NET at work and TeamCity at home and in my open source life :)

Solution 4 - .Net

I'm a CruiseControl.NET user all the way. My teams uses it at work and I use it at home for personal projects.

In particular, CruiseControl.NET allows me to run through the whole CI process: builds, version update, unit and integration tests, archival of source or release candidate, code coverage, even deployment to our test system at work. It's highly customizable, works well with MSBuild and NAnt, and even had an extensible plug-in architecture.

It pretty much does everything I need.

The biggest disadvantage: configuration is sometimes a pain, and can take time. But once it's done, it's done, and as another poster said, I love seeing the "successful build" signal because I know that not only did the build itself work, but that also that my unit and integration tests all ran successfully.

Solution 5 - .Net

Team Foundation Build is an option as well as it interacts very well with Team Foundation Server. It's free as long as long you've licensed TFS.

Solution 6 - .Net

CruiseControl.NET - it can be a bit of a pain to set up (as can most CI systems), but it is worth perservering with. I currently have it set up to run unit tests on completion of builds, and to produce Wix installers on-demand. As Dan said, it looks a bit dated, but that doesn't matter, as it provides you with plenty of information that's easy to get at and easy to read.

One thing - make sure all your developers have CC Tray installed, running and pointing to their builds. It's a great feeling to get "Another successful build" in your notification tray.

Solution 7 - .Net

We use Hudson at work. The main reason is, that it is very easy to setup. You can directly execute the war (it's a executable jar) or deploy it at any servlet-container. And you're ready to start. Also Hudson supports many tools and is extensible through it's plugin-system.

Solution 8 - .Net

We switched from CruiseControl.NET to TeamCity primarily because of ease of configuration. TeamCity also has more features, but the main reason was that a nice Web UI is simpler to use than XML configuration files.

EDIT: Most tasks TeamCity will do out of the box; when necessary we use NAnt.

Solution 9 - .Net

I'm fairly new to the CI-scene and I've been concentrating my efforts on CruiseControl.NET, using NAnt and Ivy to build my .NET projects.

I've found that CruiseControl.NET is very adaptable to lots of other tools, such as NCover/NUnit/etc. They all plug into this and integrate the results for a combined build process.

I'll be looking into TeamCity in the near future for my own interest, but I think that CruiseControl does a good job, but only as good as your build-scripts! If these are pants, then your builds can only be expected to be that good.

But in summary, CruiseControl.NET is a good solution, but I'm yet to find out how good the competition is in comparison.

Solution 10 - .Net

We're using ccnet at work, which is fine for most of our needs (we have about 50 automated builds), but it needs one person for full time tweaking and fixing.

If you're starting from scratch, please take a look at Bamboo. We have looked into it and it looks really promising, but it doesn't completely match our needs and we have invested way too much time in ccnet to switch to Bamboo now.

Regards,

Sebastiaan

Solution 11 - .Net

I inherited a luntbuild server. Not a good option for a .NET project. If you find that you're constantly falling back to using the build server to run generic command line tasks, then something is wrong. A good build server had a good understanding of unit tests output and msbuild tasks as more than opaque commands to be run when the source control system changes.

I'm enjoying migrating to Team City.

Solution 12 - .Net

We're happy with Hudson. I don't have anything to compare it to, but it was simple to configure and get running. Right now it only builds Win32 C++ projects and an installer, but we're porting to Linux and it should work with that as well.

Gets Subversion repositories without any problems and mails out alerts, etc. We like it so far. Again, we have limited experience with comparisons.

Solution 13 - .Net

I've been working with CruiseControl.NET, TFS 2012 and TeamCity 7.x for several years and i believe TeamCity is the BEST due to it's ease of use, comfortable and informative UI and other cool features like build dependencies and many more. It just works, I love it.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionJohannes RudolphView Question on Stackoverflow
Solution 1 - .NetJeffrey FredrickView Answer on Stackoverflow
Solution 2 - .NetPascal ThiventView Answer on Stackoverflow
Solution 3 - .NetDaniel ElliottView Answer on Stackoverflow
Solution 4 - .NetScott MarloweView Answer on Stackoverflow
Solution 5 - .NetThe MattView Answer on Stackoverflow
Solution 6 - .NetPete OHanlonView Answer on Stackoverflow
Solution 7 - .NetMnementhView Answer on Stackoverflow
Solution 8 - .NetTrueWillView Answer on Stackoverflow
Solution 9 - .NetBrett RigbyView Answer on Stackoverflow
Solution 10 - .NetSebastiaan MView Answer on Stackoverflow
Solution 11 - .NetMatthewMartinView Answer on Stackoverflow
Solution 12 - .NetTimView Answer on Stackoverflow
Solution 13 - .NetAlon AmsalemView Answer on Stackoverflow