Thursday, December 21, 2006

Continuous Integration Builds

It may surprise you to find my first post with such an esoteric title. I'm going to talk a lot about my experiences with various technologies and products in my blog with a hope that it will help others learn from my experience.

"Continuous Integration Builds (CIB)" refers to the process of building the source in your repository as often as possible to catch build errors introduced by new checkins. As a side-effect, the latest build is *always* available. Ensuring that the main development branch can always be built can greatly improve productivity by catching errors early. CIB is of greatest value to organizations with multiple teams (often geographically separated) who work round the clock.

Around a year ago, we decided to build a CIB system for our internal use. As with all research, I used google to locate software that I could use for this purpose. After some searching, we found Luntbuild (http://luntbuild.javaforge.com/), a great solution, which we could setup and configure in a few hours. Luntbuild works very well for some of our projects and is easy to manage. We have it continuously building our main line every hour and also use it for doing our stable and release builds. They've since released two more versions of their product, but we have not been able to schedule a downtime for this because of the mission-critical nature of this system. A great example of how a good piece of software gets entrenched in an organization. If you are evaluating CIB solutions, do look at Luntbuild.

No comments: