Continuous Integration

It’s my pleasure tonight to present Continuous Integration: best practices, methodologies, and tools at the SEVDNUG.  Continuous Integration is the process of rebuilding the code in its entirety periodically and automating awkward deployment processes to create a more consistent product.  Tonight we discussed these business cases, the tools and techniques available, and best practices to use when implementing a continuous integration process.

It isn’t difficult to get an automated build going.  Really the most difficult part is getting a one-line command to build it.  Be it batch files, calling Visual Studio’s command line, or NAnt or MSBuild tasks, once you’ve got a command-line build, rigging it to a Continuous Integration service like CruiseControl.NET is easy.  Once you can automate this code verification, you’ll immediately see benefits in decreased time chasing what broken and who broke it.

The slides and code are available here. CruiseControl.NET is available here, NAnt is available here, and NAntContrib is available here.

** NOTE: For some strange reason, my server wants to gzip zip files when it downloads them, leading to a double-compressed file. If you’re downloading the zip files in IE, it’ll tell you the file is corrupt. The fault is totally mine, but the file is not corrupt. If you download the file with FireFox, it will come down just fine. If you’re an IIS guru and know how to disable gzipping zipped content while enabling gzipping for non-zipped content, please let me know. **