A recent dotnet rocks defined Cruise Control.NET as:
10 Get and build all files under version control if any file has changed
20 GOTO 10
It is a little more powerful than that. It is a generalised scheduling program that can run tasks on a timed schedule or once a polled event occours. I am sure that a number of major end-user applications could be built around this (scheduled reports, model integrity checks).
I now have two of the four C# projects at my work built under cruise control.
I am using PVCS which does not integrate very cleanly as it’s pcli tool is frankly a little cranky.
I have managed to put together a batch file that pulls all of the files from a project with a given promotion group. This gets called as a prebuild task. I then use the msbuild task to build the project and the nunit task to test the project. The build script is set to run three times per day: just before I start for the day, at lunchtime and just after I leave. This is not quite the intended instant feedback but is a hell of a lot better than finding the build is broken when you are just about to apply an important critical fix.
The web application that can be used to monitor CC is very good. It allows drill down to the times that individual tests took to run! It also permits a build to be run on demand.
The only problem I have at the moment is that the CC.net website is down so I can’t get the source…