But how does it work?
1. The CruiseControl.NET Server is started, and a project is started according to a Project Configuration Block in the Server's Configuration
2. CCNet checks the source code repository for modifications that have occurred since the last build attempt.
3. When modifications are detected
a. CCNet labels the project with CCNETUNVERIFIEDxxx (xxx = date/time) (Visual Source Safe only, optionally)
b. CCNet gets the latest version of the source from the source control repository
c. CCNet starts the build by executing the tasks in thesection of the ccnet.config file. In this example, the build will execute the task to run the NAnt build file.
4. NAnt processes the build script specified by the
a. NAnt runs VS.NET using either thetask or the task. The task provides better reporting capability for later steps.
b. NAnt runs NUnit using thetask or the task
c.NAnt runs FxCop using thetask
5. CCNet receives the outcome of the NAnt execution (Success/Failed)
a. If the build was successful, CCNet replaces the CCNETUNVERIFIEDxxx label with the next sequential build number. (VSS only)
b. The XML output files are gathered from each step using the File Merge Task and output as an xml file in the log directory specified in theelement.
6. CCNet sends out email based on the
a. Ifis set, then the individuals will only receive email if the status of the build changes (Success -> Fail, or Fail -> Success)
b. Ifis set, then the individuals will receive email for every build.
7. CCTray displays current status of the build in the client system tray. The user can use the "Launch web page" menu item to browse to the build status website.
8. Project Dashboard enables multiple continuous integration projects to be viewed.
In short the process is like: