Thursday, April 08, 2004

Continuous Integration with CruiseControl.NET and Draco.NET

TheServerSide.NET - TSS Article

"What is Continuous Integration?
Continuous integration is the strategy of making sure that changes to the project’s codebase are built, tested and reported on as soon as possible after they are introduced. This assumes several prerequisites:

Your code is maintained in a central location, preferably a source code control product like CVS or Visual SourceSafe.

You have made a build script of some kind, like a NAnt .build file or a Make script.

Optionally, you have included unit tests in the codebase as part of the project.

Once these are in place, you can create a continuous integration environment. This is a central server that monitors the source code repository and springs into action when it notices changes (commits). Its job is to check out a full version of the codebase whenever any part of it changes, run your build file and report on the results. What constitutes a build is up to you; normally, a build is a full compile of all source files, running unit tests and creating the deployment archive.

Why You Need Continuous Integration
All development teams (read: more than one programmer) have to deal with integration builds. This is where you pull together all the bits and pieces that the different team members were working on, and check to see if you have a fully functioning product or a Frankenstein’s monster. Like many other project management tasks, though, it can be complex and repetitive. This unfortunate combination means that over time, you will likely devote less brain power to running the integration build, even less to documenting the results, and are likely not only to miss important problems but fail to have a documentation trail that you can look back on later to see the mistake. A continuous integration tool takes away the repetitive task, makes it repeatable and automatic and builds a document trail as it works for historical accuracy."

Interesting... One more thing I need to look at.

I'd love to have an automated nightly build process in place, where I didn't have to code the entire thing...

I have a bunch of scripts/batch files/etc to do my builds, but it's prett fragile.

These two tools sound like something too look at.

No comments: