Kane
Kane

Reputation: 16802

Subversion and CI build processes

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?

Upvotes: 1

Views: 686

Answers (1)

Jonathan Holloway
Jonathan Holloway

Reputation: 63652

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

Upvotes: 1

Related Questions