CruiseControl [.Net] vs TeamCity for continuous integration?

I would like to ask you which automated build environment you consider better, based on practical experience. I'm planning to do some .Net and some Java development, so I would like to have a tool that supports both these platforms.

I've been reading around and found out about CruiseControl.NET, used on stackoverflow development, and TeamCity with its support for build agents on different OS-platforms and based on different programming languages. So, if you have some practical experience on both of those, which one do you prefer and why?

Currently, I'm mostly interested in the ease of use and management of the tool, much less in the fact that CC is open source, and TC is a subject to licensing at some point when you have much projects to run (because, I need it for a small amount of projects).

Also, if there is some other tool that meets the above-mentioned and you believe it's worth a recommendation - feel free to include it in the discussion.


I have worked on and with Continuous Integration tools since the one that spawned Cruise Control (java version). I've tried almost all of them at some point. I've never been happier than I am with TeamCity. It is very simple to set up and still provides a great deal of power. The build statistics page that shows build times, unit test count, pass rate etc. is very nice. TeamCity's project home page is also very valuable. For simple .NET projects you can just tell TeamCity where the solution is and what assemblies have tests and that is all it needs (other than source control location). We have also used some complicated MSBuild scripts with it and done build chaining. I have also gone through two TeamCity upgrades and they were painless.

CruiseControl.NET also works well. It is trickier to set up but it has a longer history so it is easy to find solutions on the web. Since CruiseControl.NET is open source you also have the option of adding or changing whatever you like. I had used CruiseControl.NET since its release and wrote some of the early code for cc.tray (thankfully re-written by someone who knew better).

Cruise, from ThoughtWorks, also looks quite good but I don't see a compelling reason for me to switch. If I were starting a new project I might give it a try, but TeamCity has done a great job of making the simple things simple while making the complex quite painless.

Edit: We just upgraded to TeamCity 5.0 a few weeks ago and it was another painless upgrade. It let us take advantage of the improved code coverage capabilities and GIT support. We are also now using the personal build and pre-tested commit features that have been in for a while. I just thought I should update the answer to indicate that TeamCity keeps improving and is still easy to use.


I was/I'm a big fan of CC.NET. We have currently 5 projects in CruiseControl, and works great. Writing config files with hand can be painfull but it's okay.

But.

After the Kona: Continuous Integration and Better Unit Testing screencast (the first 1/3 about TeamCity) I'll check TeamCity too. I love the integrated unit test dashboard and the configuration interface.

I think everybody should watch this video before choosing CC.NET or TeamCity.

ps: I hope there is a valuable CC.NET video on the net too.


My favorite CI server by far is Hudson. Easy to set up and maintain, lots of nice graphs for showing trends to developers and non-developers, and free.

I am using TeamCity currently on a project and I'm generally pleased with it, but many of the graphs it generates aren't especially useful, and it is more complicated to configure than Hudson.

That said, TeamCity is powerful, free for many uses, and has one killer feature: Remote Run. You can "pre-commit" your check in straight from IDEA or Eclipse, run one or more build configurations on the TeamCity server, and only commit the changes if the build is successful (eg, compiles and all tests pass).

Given that you could get both TeamCity and Hudson up and running in a few hours, it might be worth grabbing both and running them side-by-side, along with any others (such as CruiseControl) that you can think of. If you can't stand a CI server up quickly to do a side-by-side comparison, then at least you have a data point for easy of install and/or configuration.

链接地址: http://www.djcxy.com/p/90102.html

上一篇: 在Linux下编译的单声道应用程序不能在Windows中运行

下一篇: CruiseControl [.Net]与TeamCity进行持续集成?