Continuous Integration with Nant

2020-06-24 09:34发布

问题:

I am preparing to use continuous integration for the first time. I will be using Nant for the automated build and testing tasks, and am trying to find the appropriate CI tool to poll the repository and execute the Nant script.

I have so far loosely researched the following:

  • Hudson
  • Cruise Control
  • Draco

My sense so far is that since most of the work will be done by Nant, Draco would be fine because it is supposed to be easy to install/setup. Cruise Control and Hudson, on the other hand might provide better reporting options.

What is the best way to perform Continuous Integration when using Nant for the build and test tasks?

回答1:

We use CruiseControl.NET as our CI server along with our full build system being in NAnt. It has worked exceptionally well over the past 5 years. I've since looked into other alternatives and have not been able to find any compelling reason(s) to switch.

CruiseControl.NET has amazing support for different source control systems. Also, I enjoy how extensible their application is as we've built a few systems that integrate into it.



回答2:

Have you looked into TeamCity? I use it for my personal projects.



回答3:

I can't speak for the applications listed, but I'm a huge fan of buildbot:
http://buildbot.net/trac

It will build/test on any platform that runs Python (so if your software is supposed to work on multiple OS's each can be covered), it is very easy to use, and extremely extensible.



回答4:

CruiseControl.NET rather than normal CruiseControl is what I'd recommend, although I have limited experience here.



回答5:

I won't venture to say which one is best, however CruiseControl.NET certainly works very well, especially with NAnt-based builds. Personally speaking, though, it's the only one I've used.



回答6:

Cruise Control seems to be the de facto standard out there (though I have no data to back that up).

Another option you might consider (though I haven't tried it) is ThoughtWorks' new Cruise product (see http://studios.thoughtworks.com/cruise-continuous-integration). ThoughtWorks developers were the fathers/mothers of Cruise Control years ago. It's free for up to two "agents".



回答7:

We have started using TeamCity in my company and I must say that I am really impressed by this product. We tried CruiseControl.NET before, but TeamCity is much easier to configure and the configuration is much more transparent since you can control almost everything from the Web GUI.



回答8:

As some other people already suggested, I will say TeamCity. You may still wait until the end of this week, as their new version (TC 4.0) will be released (maybe today, maybe tomorrow)...



回答9:

We use CruiseControl.NET and take advantage of it's preprocessors.

For the NAnt part, we use UppercuT. UppercuT uses NAnt to build and it is the insanely easy to use Build Framework.

http://code.google.com/p/uppercut/

Some good explanations here: UppercuT



回答10:

Our company uses Hudson in coupled with NAnt. From my perspective, it works nicely.