A <project> block defines all the configuration for one project running in a CruiseControl.NET server
Examples
Minimalist example:
<project name="Project 1" />
Full example:
<project name="Project 1" queue="Q1" queuePriority="1">
<workingDirectory>yourWorkingDirectory</workingDirectory>
<artifactDirectory>yourArtifactDirectory</artifactDirectory>
<category>Category 1</category>
<webURL>http://server1/ccnet/server/local/project/testProject/ViewLatestBuildReport.aspx</webURL>
<modificationDelaySeconds>2</modificationDelaySeconds>
<triggers>
<yourFirstTriggerType ../>
<yourOtherTriggerType ../>
</triggers>
<state type="yourStateManagerType" ../>
<sourcecontrol type="yourSourceControlType" ../>
<labeller type="yourLabellerType" ../>
<prebuild>
<yourFirstPrebuildTask ../>
<yourOtherPrebuildTask ../>
</prebuild>
<tasks>
<yourFirstTask ../>
<yourOtherTask ../>
</tasks>
<publishers>
<yourFirstPublisherTask ../>
<yourOtherPublisherTask ../>
</publishers>
<externalLinks>
<externalLink name="My First Link" url="http://somewhere/" />
<externalLink name="My Other Link" url="http://somewhere.else/" />
</externalLinks>
</project>
Configuration Elements:
| Node |
Description |
Type |
Required |
Default |
| name |
The name of your project - this must be unique for any given CruiseControl.NET server |
string |
yes |
n/a |
| queue |
The name of the integration queue that this project will use. By default, each project runs in its own queue. (Added in CCNet 1.3) |
string |
no |
the project name |
| queuePriority |
The priority of this project within the integration queue. If multiple projects have pending requests in the specified queue then these requests will be executed according to their priority. Lower priority numbers indicate that integration requests for this project will execute before other projects in the same queue, however projects with priority 0 are always executed after projects with non-zero priorities in the same queue. |
string |
no |
0 |
| workingDirectory |
The Working Directory for the project (this is used by other blocks). Relative paths are relative to a directory called the project Name in the directory where the CruiseControl.NET server was launched from. The Working Directory is meant to contain the checked out version of the project under integration. Make sure this folder us unique per project to prevent problems with the build. |
string |
no |
WorkingDirectory |
| artifactDirectory |
The Artifact Directory for the project (this is used by other blocks). Relative paths are relative to a directory called the project Name in the directory where the CruiseControl.NET server was launched from. The Artifact Directory is meant to be a persistence location for anything you want saved from the results of the build, e.g. build logs, distributables, etc. Make sure this folder us unique per project to prevent problems with reporting about a build. |
string |
no |
Artifacts |
| webURL |
A reporting URL for this project. This is used by CCTray and the Email Publisher. Typically you should navigate to the Project Report on the Dashboard, and use its URL |
string |
no |
http://localhost/ccnet |
| category |
A general category for this project. This will be used by CCTray and the dashboard in the future to provide groupings to the project. The groupings can span servers in the farm. |
string |
no |
empty string |
| modificationDelaySeconds |
The minimum number of seconds allowed between the last check in and the start of a valid build.
If any modifications are found within this interval the system will sleep long enough so the last checkin is just outside this interval. For example if the modification delay is set to 10 seconds and the last checkin was 7 seconds ago the system will sleep for 3 seconds and check again. This process will repeat until no modifications have been found within the modification delay window.
This feature is in CruiseControl.NET for Source Control systems, like CVS, that do not support atomic checkins since starting a build half way through someone checking in their work could result in invalid 'logical' passes or failures. The property is optional though so if you are using a source control system with atomic checkins, leave it out (and it will default to '0') |
integer |
no |
0 |
| sourcecontrol |
See Source Control Blocks |
Source Control Block |
no |
Null Source Control Block |
| triggers |
See Trigger Blocks |
List of Trigger Blocks |
no |
Specifying an empty element (<triggers />) means integrations are only ever forced manually (for example using CCTray or the Web Dashboard.) Not including a <triggers> element at all means the project has a single Interval Trigger with default configuration. |
| state |
See State Manager Blocks |
State Manager Block |
no |
[Project State Manager] |
| labeller |
See Labeller Blocks |
Labeller Block |
no |
Default Labeller |
| tasks |
A set of Tasks to run as part of the build. A failed task will fail the build and any subsequent tasks will not run. Tasks are run sequentially, in the order they appear in the configuration. |
List of Task Blocks |
no |
empty list |
| prebuild |
A set of Tasks to run before the build starts and before the source is updated. A failed task will fail the build and any subsequent tasks will not run. Tasks are run sequentially, in the order they appear in the configuration. *This section is available in the CCNet 1.1 release. |
List of Task Blocks |
no |
empty list |
| publishers |
A set of Tasks that are run after the build is complete. These tasks are used primarily to clean up after the build and to publish and report on the build results. All tasks in this section will always run regardless of whether previous tasks fail or the build is broken. You should always set an Xml Log Publisher in this section so that your Web Dashboard will be able to report results. |
List of Task Blocks |
no |
If you don't specify a <publishers /> section at all then a default Xml Log Publisher is used as the sole publisher. |
| externalLinks |
See ExternalLinks |
List of ExternalLinks |
no |
empty list |
Setting the WebURL
The current format of the url for a project, as specified in the <webURL> element is:
For example, if the dashboard was deployed on the server webserver to virtual directory ccnet, and if the project to monitor is called test on server cruise, the URL would be:
Sub-section types