Yesterday in Part I of this series on Continuous Integration (CI), I laid out six rough requirements regarding CI for a particular project I am working on. Here is a recap:
Source Control Integration - We are a Subversion shop. I need to be able to kick-off a CI run with a get from the SVN repository (or at least check that the current bits on the CI server are the latest bits in SVN).
Automated Build with Test - NAnt is our build system. I need a set of NAnt scripts that will build and smoke test the build. I need further build verification tests (BVT) to verify the quality of the build.
Integration with Test - Once the project's components are built and verified, I need to integrate the components into major build units and run additional BVT's.
Automated Staging with Test - After Build and Integration run, I need to automatically stage the different systems and do habitat testing (test the systems in a simulation of their natural habitat--the production environment)
Testing - Once the automatons have run and systems pass all automated tests, the human testers come into play. We are a Mantis shop (can't beat the price). Bug reports are fed back to developers and the process continues
Deployment - Once quality/calendar/feature bar is reached commensurate with the stated goals of the release, the systems are ready for deployment. In my case, deployment means pushing out a database, a web site, two Windows services, Microsoft SQL Server Reporting Services reports, and a Windows client application.
I ended off yesterday's post after successfully using Subversion and NAnt to check-out or update the project's source tree from source control. No we are on to the next requirement...
Build It And They Will Come
Wow, this has been an adventure. I am still slogging my way through... Hopefully I will get to writing something up tomorrow!
Update: After switching between NAnt, MSBuild, back to NAnt, dragging down the latest NAnt bits, and a trillion googles..I have 25+ project in my VS2008 solution--which if I was still in the 2005 product wouldn't have been a problem... I have successfully built: