in

ASP.NET Weblogs

Loren Halvorson's Blog

If your only tool is a hammer...

Warning: Continuous Integration builds are addicting

We finally have a first cut at continuous integration builds going for a large ASP.NET application. We are using CruiseControl.NET and NAnt with great success. I wanted to comment on an unexpected psychological effect I experienced. Continuous integration builds are addicting. OK, I'm not even currently on the development team for this project, just helping them out with their builds, but I still feel the need to check the status of the builds throughout the day. I feel stressed when the build is broken, and relaxed when it is fixed.

Checking the status is made easier by CruiseControl.NET's nifty little notification tray applet that indicates build status by showing green or red. One of the developers on the project is going to buy an Ambient Orb and set it up above his cube to glow green or red based on the build status. CruiseControl.NET also provides a web app that shows you the build results and a log of all check-ins since the last build (Here's an example from CruiseControl.NET's own live build server).

In the past, we only did a full build nightly at 11:00 PM. I'm telling you, it is _so_ much better to know the build is broken in “nearly-real-time” instead of having to wait until the next morning when you came in to find an e-mail from the build machine telling you that something you checked in (or forgot to check in) yesterday broke the nightly build.

At first, I wasn't so sure that CI was a good fit for our project because it's fairly large (about 30 solutions), and can take so long to build (20 min or more on a dual proc build box), plus we are using Visual SourceSafe which doesn't have atomic check-ins which can lead to premature build triggering. (By the way CruiseControl.NET has an elegant low-tech solution to reduce the chance of this with its <modificationDelaySeconds> setting).

Think about continuous integration builds if you aren't doing them. I'm sure lots has been written on why they work, but I can honestly say that I didn't fully “get” it until we actually started doing it. Had I known, I would have gotten them going a long time ago.

Comments

 

TrackBack said:

February 20, 2004 5:46 AM
 

TrackBack said:

Continuous Integration Addictive ?
February 20, 2004 5:46 AM
 

TrackBack said:

February 20, 2004 5:47 AM
 

Great idea! said:

I'm on a project which would benefit greatly from that. Specially when you have guys on your team who always forget to add all the files to the project. :-)
February 20, 2004 5:14 PM
 

TrackBack said:

March 23, 2004 12:55 AM
 

Lorenh said:

Michael, could you be more specific about which point you want clarified?
May 22, 2004 3:06 PM
 

Link Dump 20.11.2006 « MrGierer’s World said:

November 20, 2006 7:57 AM
 

Rob Boucher said:

Are any of you using Visual Studio Team System for continous integrations builds?  There's and MSDN article here that talks about setting them up. I didn't know if anyone had compared  CruiseControl.NET with this process? Patterns and Practices stuff is usually pretty good and this page had 5 stars, but I wanted to check here to see if anyone's used this process before.

msdn2.microsoft.com/.../bb668957.aspx

February 29, 2008 7:34 PM

Leave a Comment

(required)  
(optional)
(required)  
Add