views:

224

answers:

2

I am in the process of researching/setting up a Continuous Integration Server for a major project and am in the need of either recommendations or criticism.

The Need
CI is just the next step in our path. It's been mandated at the right time, as a major project is in the pipeline.

The Limitations

  • Needs to be able to live on the same server as our SCM system (SVN)
  • The Server is (unfourtinately) an XP Pro Machine.
  • Needs to handle .net builds.
  • Would like to have some profiling capability. Or the ability to add at a later date.
  • Budget, free preferred.
  • While we're more than capable, configuration would be preferred to be easy.
  • Our SVN web front end is using apache. Would like the CI's front end to do the same, but can deal with IIS otherwise.
  • Building with NAnt

What I've Narrowed it down to thus far
I am currently looking at 4 options:

  • Cruise
  • CruiseControl.NET
  • TeamCity - Currently testing, seems to be good so far, the free pro edition has more than enough agents for our project.
  • Hudson

What's my real question
In your experience with any or all of the above, what are any criticisms or neat things you have seen. Any things to watch out for, or pay attention to during setup? If you had to do it all over again, would you choose the same thing?

+6  A: 

Have you seen/considered Hudson ?

https://hudson.dev.java.net/

If you're building your .NET project with NAnt for example, it has a plugin that may allow it to serve your needs.

It integrates with most SCM systems, bug trackers, etc. and is extremely extensible.

In my experience, Hudson has been superior to Cruise* on most fronts. Anytime I've needed to connect it to something else, someone has already created a plugin.

It's easy to configure, has plugins for most aspects of current software engineering practices. It includes Winstone and can run completely standalone, or within any Java App/Servlet container. I've had zero issues running it in Tomcat and Glassfish for example.

Here's the list of its current plugins

http://wiki.hudson-ci.org/display/HUDSON/Plugins

It seems to meet your goals

* Needs to be able to live on the same server as our SCM system (SVN)

no problem

* The Server is (unfourtinately) an XP Pro Machine.

I have not personally had any issues running the standalone variant on Win XP, haven't tried it on other servers/containers on XP though.

* Needs to handle .net builds.

Assuming NAnt meets your needs or you're already using it, should be good to go here in short order

* Would like to have some profiling capability. Or the ability to add at a later date.

If existing plugins can't accommodate your needs, plugin framework is excellent and you could roll your own.

* Budget, free preferred.

Free and actively developed/maintained

* While we're more than capable, configuration would be preferred to be easy.

Config is quick and easy.

* Our SVN web front end is using apache. Would like the CI's front end to do the same, but can deal with IIS otherwise.

This may be a sticking point, but if the included Winstone won't work, it needs an App/Servlet container.

I've converted a few projects to Hudson which were using CruiseControl, and haven't looked back. I also push it for new projects whenever possible.

Regards

Peter Elespuru
Looked at Hudson initially, for some reason I had bypassed it when setting up VM test servers. Looking at it shortly, thanks.
Slipfish
A: 

You might want to look at CI Factory. It satisfies all your requirements. CI Factory uses CruiseControl.Net, and it comes with Nant plugs for building, svn, FXCop, Nunit and others. I use it for all my projects. DNR.tv has and excellent walk through of setting up a server: screen cast.

Maudite