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:
<triggers>
<multiTrigger operator="And">
<triggers>
<projectTrigger project="NameOfProject1" />
<scheduleTrigger time="23:00" buildCondition="ForceBuild">
<weekDays>
<weekDay>Monday</weekDay>
<weekDay>Tuesday</weekDay>
<weekDay>Wednesday</weekDay>
<weekDay>Thursday</weekDay>
<weekDay>Friday</weekDay>
<weekDay>Saturday</weekDay>
</weekDays>
</scheduleTrigger>
</triggers>
</multiTrigger>
</triggers>
In addition, my source control section has this:
<sourcecontrol type="multi">
<sourceControls>
<svn>
<trunkUrl>http://<my-svn-url>:81/svn/<my-project-name>/branches/1.13</trunkUrl>
<workingDirectory>c:\ccnet\<my-system-name>\<my-project-name></workingDirectory>
<cleanCopy>false</cleanCopy>
</svn>
...
...
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.