views:

202

answers:

1

Here at work we are using Subversion and CruiseControl.NET and as our source control and CI tools. Our Subversion structure is setup like the following:

Project
    Branch
    Tag
        1.0.0.0
        1.0.0.1
        1.0.0.2
    Trunk

At present our process for creating builds is to create a tag from the trunk and a run batch file to build our solutions for the tag. The batch file also runs all of our MSTests and calculates our code coverage results.

I was wondering if this is a normal practice or if it would be better to build form trunk and use CI (Hudson or similar) to automatically create the tag?

+1  A: 

Tags should be cheap copies of the trunk, so what you're doing is fine providing you're happy with creating a tag for both potentially successful and unsuccesful builds.

With the trunk build then tag process you can create it so that it only creates a tag based on whether the build succeeds or not. This is helpful if what you want to tag are release builds, or potential release builds - you know that at least it builds correctly and passes a number of tests. This sounds to me like a better option

Regardless of which process you end up sticking with I would definitely look at using Hudson over Cruise Control. You'll be able to setup a much more sophisticated build process with build promotion and tagging based on success. Take a look at the following for build promotion:

http://configmanag.blogspot.com/2008/08/build-promotion-with-hudson.html

and the following for tagging successful builds using a Hudson plugin:

http://wiki.hudson-ci.org/display/HUDSON/Subversion+Tagging+Plugin

Jon
Would hudson work with .NET?
chris166