Refactoring our Continous Integration
I am currently upgrading our standard Continous Integration solution to the latest version of CruiseControl.NET when this great tip on versioning with CruiseControl.Net led me to this excellent wikientry AspNetWithoutWebProjects.
We currently have several buildsolutions running CruiseControl.NET and there is room for improvement. A more coherent versioning is very welcome. Also, maintaining ASP.NET projects for several developers with different local vdirs is a real pain so.. it's a good day to do CI.
Another great read when setting up or improving on a CCNET solution is CruiseControl Directory Hierarchy which points out a couple of considerations you should do when setting up your projects. Unfortunately there is little blogging around ccnet v0.7 yet (except for the usual releasenotes copypaste:-)
I did however stumble across Michael Swansons blog on CruiseControl.NET and MSBuild which is something we'd really like to do aswell.
In the refactoring of our buildsystem I got a peak on Peter Lillevolds buildscripts. Peter makes use of functions in NAnt that I've completely overlooked. For a long time I've enforced that directory names in properties must always have a trailing slash, but Peter doesn't care because this fixes it for him:
${path::combine(build.dir, 'XML')}
I'm sure there are more nifty tricks that I've overlooked but for now this makes my day easier:-)
ps. to those of you who attended our Continous Integration presentation on the Norwegian .NET User Group this autumn I might admit that I'll most likely convert to Peters "solutiontask-approach". Compiling just got easier on the cost of complete control.
ps again: You should not take the CruiseControl.NET Wikis "Hot referrers" literally I'm quite sure the devteam does not consider these to be "hot"...