CruiseControl [.Net] vs TeamCity for continuous in

2019-01-03 08:15发布

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.

11条回答
老娘就宠你
2楼-- · 2019-01-03 08:37

Make sure the system that you decide on scales to the number of projects that you'll need it to handle...

I use CruiseControl.Net but I wouldn't recommend it for building lots of projects... I have a (possibly slightly strange) arrangement where I have many C++ static libraries which I compose into applications. Each library depends on other libraries and the apps pull in a set of libs and build. Each lib has a test suite. Each app has a test suite. I build for 5 compilers and variations of (windows) platforms.

The first thing I found was that CC.Net's project triggers aren't really quite what you need and the multi-trigger doesn't play well with project triggers. The way project triggers work (they use remoting to connect to the server where the project is stored (even if it's a project that is managed by the same instance of CC.Net) and then pull all projects from that server and search the list sequentially looking for the project that you're interested in...) means that they don't scale well. Once you get above a certain number of projects you'll find that CC.Net is taking most of the CPU for your build machine.

Of course, it's open source, so you can fix it... And, I'm sure it's fine for small numbers of non-interdependent projects.

For more details of the problems I had and some patches for CC.Net see here http://www.lenholgate.com/archives/cat_ccnet.html

查看更多
小情绪 Triste *
3楼-- · 2019-01-03 08:38

I have used them both successfully on different projects. From a setup and administrative standpoint Team City is far easier to deal with. You don't have to hack around with .config files like you do with CC and setup is a breeze. Since you do not have a lot of projects I would recommend Team City over CC until you get to the point that Team City costs $$.

查看更多
乱世女痞
4楼-- · 2019-01-03 08:40

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.

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

查看更多
虎瘦雄心在
5楼-- · 2019-01-03 08:44

I have used both CC.net and TeamCity. I am tasked with setting up and installing TeamCity for my organization (5 developers). Our organization uses some uncommon practices and tools (at least, for orgs of our size), such as Perforce for source control and multiple build agents running on heterogeneous operating systems, which caused some initial setup headaches. However, the support via email was absolutely top-notch in getting everything set up. I received answers to my dumb questions in literally minutes.

The interface is intuitive and responsive, as well as feature-packed. The product feels very expensive. Configuration is easy, and the web interface is intellegent enough to update itself without any restarting of the agent or server services, or even refreshing of the page.

I feel like we're using just about every advanced feature of the product and have found no bugs at all so far. Ndepend integration, nested NAnt scripts, Perforce version labeling, you name it, we're doing it.

I highly recommend TeamCity to anyone looking for a continuous integration server, or any build server, really.

查看更多
时光不老,我们不散
6楼-- · 2019-01-03 08:54

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 (e.g., 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.

查看更多
登录 后发表回答