Geeks With Blogs

Steve Clements .Net and then some....

We have recently started using Cruise Control to manage our build processes, this works great with web deployment projects and TFS.

Cruise control for those who dont know, is, according to the website "CruiseControl is a framework for a continuous build process. It includes, but is not limited to, plugins for email notification, Ant, and various source control tools. A web interface is provided to view the details of the current and previous builds"

We run it on a separate box (soon to be a virtual box), it has a nice simple web interface to force builds if you so wish and a small windows app that shows the status of each project and notifies you of completed builds.

<project name="CC Project Name">

  <labeller type="dateLabeller" />

  <!?- Build Auto. Fired Daily -->
    <scheduleTrigger time="08:00" buildCondition="ForceBuild" name="StpStageScheduleBuild">

  <sourcecontrol type="vsts" autoGetSource="true" applyLabel="false">
    <project>$/TFS Project/</project>


      <logger>C:\Program Files\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MsBuild.dll</logger>

    <!-- Take a backup of the build so we can roll back-->
      <sourceDir>Build Drop</sourceDir>
      <publishDir>Backup Drop</publishDir>

    <externalLink name="Project Home" 
url="http://URL Shown on CC Project home page - I have link to TFS portal"></externalLink> </externalLinks> </project>

Most of the work is done is an XML file, in here I create the project and tell it where the source control is (TFS server in our case) then what tasks I want to execute for the build. Calling msbuild is the key one here but there are other cool features like making a backup of the build, NUnit and any external app.


 What makes this really cool for applications is using the web deployment project. I have setup the required config files in my application so the deployment project will make the necessary changes to the web.config for my connection string and app settings for the dev, stage and live environments and deploys the web app to the stage or live IIS server.

Cruise control shows in its logs any and all changes to the project's source and any comments that have been made on check in, so its nice and easy to find a reason why the build failed.

Another cool feature is CCTray, which is a windows app that talks to the build server, shows the status of all projects and shows notifications of complete builds.

Now we have a complete history and backup of all builds!! Sweet! :)

I'd be interested to know what "build environments" people use, please comment!


Technorati Tags:
Posted on Thursday, November 8, 2007 1:08 PM TFS | Back to top

Comments on this post: Cruise Control Build Server

No comments posted yet.
Your comment:
 (will show your gravatar)

Copyright © Steve Clements | Powered by: