In the past I’ve worked with Brian LeGros to answer some questions with regards to continuous integration on ColdFusion and Flex projects.   We’ve stayed in touch since then and he’s asked me to present at the November meeting about continuous integration.

The basic idea behind continuous integration is to continually watch your source code for incoming changes from a development team and to periodically build the software and execute automated tests. This allows a development team to spot potential problems early, rather than waiting till the last minute and it’s time to push out a build. If you’ve been in the situation of trying to get a working build with deadlines looming over your head only to encounter new problems each time you do a build, or even worse, the client finding problems after you’ve pushed out a build, then continuous integration is definitely a tool you’ll want to look into.

I’ll be covering using continuous integration with CruiseControl. CruiseControl is free and works with a variety of build tools and source control repositories. CruiseControl runs on a build server as a service. Periodically it checks your source control repository for new check ins from your development team. If it finds new code, it executes a build script with Ant or Maven. The build script will compile the code and run unit tests and/or functional tests. The build script can be customized to perform different actions based on whether the tests pass or fail. Such as pushing out code to a staging server on success, or emailing the dev team on failure.

I’ll be running through an example CruiseControl project for a Flex and ColdFusion application. The CruiseControl project will use an Ant script to compile the Flex code, compile Flex unit tests, move the compiled Flex application and ColdFusion code to a web server where Flex and ColdFusion unit tests will be run on the code. If those pass then Selenium test are run on an HTML front end.

Experience with source control repositories, Ant or Maven, and unit tests is a plus, but not necessary. All the example build scripts use Ant, which is a simple XML schema. I’ll relate some experiences from real projects where continuous integration worked, and some where it didn’t.

NOTE: Don’t forget to bring your laptops and an ethernet cable to join the Connect session and ask question during the presentation.