The only way I've found so far is to create another project in the ccnet.config file, which relies on the output of the first ... thatβs what I mean.
The first project is built as usual when the developer checks any code.
The second project starts only after a certain time (for example, 11 pm) and will only work if the first project shows a successful build.
Therefore, I use the second project to run user interface tests at Selenium in the middle of the night, not executing them during the day and taking up the build machine when developers need it.
Here is what I did for this: in my ccnet.config file, my second project has this as 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 version control section has the following:
<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>
... ...
Accordingly, it is set to false, so the project does not delete the code, but uses what is already there.
Then in my task a little further down, I pass the flag through NAnt to tell him to run UI tests for my projects, since the first project in the ccnet.config file already completed the build process but then ignores the user interface tests.
Does it help at all? I can expand it if this is the direction you want to enter.