Setting up a Continuous Integration System, Part 1: Introduction

August 19, 2009 16:21

This is part three of an ongoing series about setting up a continuous integration system. The series includes:

  1. Part 1: Introduction (this post)
  2. Part 2: Project Folders
  3. Part 3: CI Workflow 
  4. Part 4: CI Server Baseline Software
  5. Part 5: CruiseControl.NET Custom Plug-in: Update Version
  6. Part 6: CruiseControl.NET Custom Plug-in: Source Retrieval
  7. Part 7: Installing CruiseControl.NET and Custom Plug-ins
  8. Part 8: Configuring CruiseControl.NET
  9. Part 9: Conclusion

I'm a big proponent of Continuous Integration. My development group at work has a build server running CruiseControl.NET that chugs through a multitude of steps, including source retrieval, versioning, building, unit testing, code coverage reporting, deployment, integration testing, and archival of source and build modules.

But that's just my group. Fortunately, we're currently engaged in a project to spread some of that goodness to other development groups. In order to provide a template that others might follow, I've been asked to migrate my build system to new hardware and to assist in the documentation of that process. Also, I've been wanting to setup a continuous integration server for my itscodingtime projects for a while now. At home, I use SVN for source control; at work, TFS. This presents some integration challenges as we'll see, but it's nothing that can't be handled.

So, in the spirit of this blog's purpose (to document processes, present fixes to problems, and to share general knowledge about programming and other tech-related topics), this will be Part 1 of a multiple post series on setting up a continuous integration (CI) system. Keep in mind that while my process is somewhat generic, there may be steps here which you may not want to follow. That's OK. CI is not a one size fits all process. Just as CruiseControl.NET (my continuous integration server of choice) allows for great customization, so should the process itself.

Before I get started, a word about hardware… I'll be running my CI environment on a Dell Vostro 200. The machine is nothing special, and doubles as my home domain controller. It has a dual-core Pentium running at 2GHz and 3GB of RAM, and runs Windows Server 2003.

Posts in this Series

While it's a little difficult trying to predict the exact course this series might take, here's a rough outline of what to expect (I, of course, reserve the right to modify or update this list as I get further into the series):

  1. Part 1: Introduction
  2. Part 2: Project Folders
  3. Part 3: CI Workflow
  4. Part 4: CI Server Baseline Software
  5. Part 5: Configuring CruiseControl.NET (this might get broken into 2 or more posts)
  6. Part 6: CruiseControl Add-ons
  7. Part 7: Conclusion

Conclusion

I'm deliberately keeping this introductory post short. The next post should come pretty quickly though. Until then.


All comments are moderated and require approval before display. Thanks for your understanding.

Add comment


 


[b][/b] - [i][/i] - [u][/u] - [q][/q]



Preview