How would I do a nightly or other scheduled build for CruiseControl.NET without having a duplicate project?
In my current config, every 60 seconds, I am checking out the trunk using Subversion, running MSBuild, then either NUnit or MSTest.
I would like to commit back to SVN as a tag, but I don’t want it on every successful build. I want it to make a nightly build or some other set schedule. To me, it seems a bit tedious to have two CruiseControl.Net projects with basically the same options. What is the best way to handle that?
As a bonus, I would like it to build as a release build and commit the binaries in the same tag.
The only way I have found thus far, is to create another project in the ccnet.config file which relies on the output of the first… here’s what I mean.
The first project builds as normal whenever a developer checks-in any code.
The second project only runs after a specified time (e.g. 11pm) and will only run IF the first project shows a successful build.
Therefore, I am using the second project to do the UI tests in Selenium during the middle of the night, without having them run during the day and occupying the build machine for when the devs need it.
Here’s what I have done to do this: In my ccnet.config file, my second project has this as it’s settings:
In addition, my source control section has this:
…
…
Whereby the is set to false, so that the project doesn’t delete the code, but uses what’s there already.
Then in my task a little further down, I’m passing a flag through to NAnt to tell it to only run the UI tests for my projects, as the first project in the ccnet.config file has already run the build process through but then ignores the UI tests.
Does this help at all? I can expand further if this is the sort of direction you want to go in.