views:

296

answers:

2

Hello,

I am just beginning the move to the .NET Framework 3.5. I use CruiseControl.NET for our Continuous Integration and would like to know how other people approach setting this up.

I have a branch of the source code entitled NET3.5 but for now am keeping the trunk as 2.0.

I have created two CruiseControl projects that checkout from the trunk and the branch.

So I have two continuous integration projects even though there is only one code base.

I think this is the correct approach because I need to use different versions of the aspnet_merge.exe to compile the code which means two separate configuration files and thus the two continuous integration projects.

Is this approach OK, should each branch be built separately or should it just be one big code base that compiles different release versions in one giant build?

Cheers

+1  A: 

Switch to TeamCity and have multiple builds (at least one per branch). It's very easy to configure builds in TeamCity, and this is definitely the right solution to testing different versions of your codebase (framework included).

ripper234
+3  A: 

Personally I create a new CCNet project for branches, which sounds like what you've done.

The benefits of this are:

  • Changes in one branch only cause one project to rebuild
  • You have seperate build reports/artifacts for each branch
  • If one branch breaks, the other branch can still be built/deployed

When you merge the branch back into the trunk, then you can remove the extra Cruise project.

Let me know if there's something specific to your ASP.NET application that I've missed here.

Drew Noakes
Hi Drew, it sounds like I'm heading down the right track, thanks! I think this is an important part "If one branch breaks, the other branch can still be built/deployed" because CruiseControl fails if any .NET Project fails to build. Didn't see it like that until you said it - thanks and +1 from me!
David A Gibson
No problem. I've set up branching with CCNet for my current client and it's been working nicely. The only downside I've seen so far is the overhead of creating a CI/branch pair, and the sudden jumps in statistics when merging. Those are small compared to the benefits of building all branches.
Drew Noakes