Over the last couple of days, I completed a first version of a Continous Integration environment. If you are not familar with what Continous Integration is, I would recommend an excellent podcast from Scott Hanelman.
I have a dedicated build machine setup that will be hosting two environments for performing build & tests, I'm going to test
I had installed the Build Component with TFS a while ago, configured it to run builds and this seemed pretty cool, but haven't spent too much time on this.
The CruiseControl.NET environment I created is fairly basic, but I was able to get it up and running within about an hour. Here is a summary of what is currently in place.
- CruiseControl.NET runs as a service and is configured with ccnet.config file.
- Within ccnet.config, I created a project that looks at source code within my TFS repository.
- When I check a file in to the TFS repository for the project I created, it get's all the source code under the node specified in the ccnet.config, then runs a task to kick off a build with MSBuild.
- A small application can be installed on our development machine that runs in the tray that allows you to check the status of builds, it also gives you notifications of when builds are completed or they break.
- In addition there is a web based dashboard that will give me a report of the latest builds.

I'm extremely excitied about using additional features that will allow for unit testing and functional testing as well as deployment. I'm going to compare the Microsoft TFS offerring with the CruiseControl option. In theory, if I build these both around the the MSBuild tool, I should be able to have similar build processes in both environments.
What experiences have you had with continuous integration or similar technologies?