238 lines
18 KiB
HTML
Executable File
238 lines
18 KiB
HTML
Executable File
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
|
<html>
|
|
<head>
|
|
<title>CruiseControl.NET : Project Configuration Block</title>
|
|
<link rel="stylesheet" href="styles/site.css" type="text/css" />
|
|
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
|
</head>
|
|
|
|
<body>
|
|
<table class="pagecontent" border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="#ffffff">
|
|
<tr>
|
|
<td valign="top" class="pagebody">
|
|
<div class="pageheader">
|
|
<span class="pagetitle">
|
|
CruiseControl.NET : Project Configuration Block
|
|
</span>
|
|
</div>
|
|
<div class="pagesubheading">
|
|
This page last changed on Mar 14, 2009 by <font color="#0050B2">dcameron</font>.
|
|
</div>
|
|
|
|
<p>A <tt><project></tt> block defines all the configuration for one project running in a CruiseControl.NET server</p>
|
|
|
|
<h3><a name="ProjectConfigurationBlock-Examples"></a>Examples</h3>
|
|
|
|
<p>Minimalist example:
|
|
<br clear="all" /></p>
|
|
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
|
<pre class="code-xml"><span class="code-tag"><project name=<span class="code-quote">"Project 1"</span> /></span></pre>
|
|
</div></div>
|
|
<p>Full example:</p>
|
|
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
|
<pre class="code-xml"><span class="code-tag"><project name=<span class="code-quote">"Project 1"</span> queue=<span class="code-quote">"Q1"</span> queuePriority=<span class="code-quote">"1"</span>></span>
|
|
<span class="code-tag"><workingDirectory></span>yourWorkingDirectory<span class="code-tag"></workingDirectory></span>
|
|
<span class="code-tag"><artifactDirectory></span>yourArtifactDirectory<span class="code-tag"></artifactDirectory></span>
|
|
<span class="code-tag"><category></span>Category 1<span class="code-tag"></category></span>
|
|
<span class="code-tag"><webURL></span>http://server1/ccnet/server/local/project/testProject/ViewLatestBuildReport.aspx<span class="code-tag"></webURL></span>
|
|
<span class="code-tag"><modificationDelaySeconds></span>2<span class="code-tag"></modificationDelaySeconds></span>
|
|
<span class="code-tag"><maxSourceControlRetries></span>5<span class="code-tag"></maxSourceControlRetries></span>
|
|
<span class="code-tag"><startupState></span>Stopped<span class="code-tag"></startupState></span>
|
|
<span class="code-tag"><triggers></span>
|
|
<span class="code-tag"><yourFirstTriggerType ../></span>
|
|
<span class="code-tag"><yourOtherTriggerType ../></span>
|
|
<span class="code-tag"></triggers></span>
|
|
<span class="code-tag"><state type=<span class="code-quote">"yourStateManagerType"</span> ../></span>
|
|
<span class="code-tag"><sourcecontrol type=<span class="code-quote">"yourSourceControlType"</span> ../></span>
|
|
<span class="code-tag"><labeller type=<span class="code-quote">"yourLabellerType"</span> ../></span>
|
|
<span class="code-tag"><prebuild></span>
|
|
<span class="code-tag"><yourFirstPrebuildTask ../></span>
|
|
<span class="code-tag"><yourOtherPrebuildTask ../></span>
|
|
<span class="code-tag"></prebuild></span>
|
|
<span class="code-tag"><tasks></span>
|
|
<span class="code-tag"><yourFirstTask ../></span>
|
|
<span class="code-tag"><yourOtherTask ../></span>
|
|
<span class="code-tag"></tasks></span>
|
|
<span class="code-tag"><publishers></span>
|
|
<span class="code-tag"><yourFirstPublisherTask ../></span>
|
|
<span class="code-tag"><yourOtherPublisherTask ../></span>
|
|
<span class="code-tag"></publishers></span>
|
|
<span class="code-tag"><externalLinks></span>
|
|
<span class="code-tag"><externalLink name=<span class="code-quote">"My First Link"</span> url=<span class="code-quote">"http://somewhere/"</span> /></span>
|
|
<span class="code-tag"><externalLink name=<span class="code-quote">"My Other Link"</span> url=<span class="code-quote">"http://somewhere.else/"</span> /></span>
|
|
<span class="code-tag"></externalLinks></span>
|
|
<span class="code-tag"></project></span></pre>
|
|
</div></div>
|
|
|
|
<h3><a name="ProjectConfigurationBlock-ConfigurationElements%3A"></a>Configuration Elements:</h3>
|
|
|
|
<table class='confluenceTable'><tbody>
|
|
<tr>
|
|
<th class='confluenceTh'> Node </th>
|
|
<th class='confluenceTh'> Description </th>
|
|
<th class='confluenceTh'> Type </th>
|
|
<th class='confluenceTh'> Required </th>
|
|
<th class='confluenceTh'> Default </th>
|
|
</tr>
|
|
<tr>
|
|
<td class='confluenceTd'> <a name="ProjectConfigurationBlock-name"></a> name </td>
|
|
<td class='confluenceTd'> The name of your project - this must be unique for any given CruiseControl.NET server </td>
|
|
<td class='confluenceTd'> string </td>
|
|
<td class='confluenceTd'> yes </td>
|
|
<td class='confluenceTd'> n/a </td>
|
|
</tr>
|
|
<tr>
|
|
<td class='confluenceTd'> <a name="ProjectConfigurationBlock-name"></a> queue </td>
|
|
<td class='confluenceTd'> The name of the <a href="Integration Queues.html" title="Integration Queues">integration queue</a> that this project will use. By default, each project runs in its own queue. (Added in CCNet 1.3) </td>
|
|
<td class='confluenceTd'> string </td>
|
|
<td class='confluenceTd'> no </td>
|
|
<td class='confluenceTd'> the project name </td>
|
|
</tr>
|
|
<tr>
|
|
<td class='confluenceTd'> <a name="ProjectConfigurationBlock-name"></a> queuePriority </td>
|
|
<td class='confluenceTd'> 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. </td>
|
|
<td class='confluenceTd'> string </td>
|
|
<td class='confluenceTd'> no </td>
|
|
<td class='confluenceTd'> 0 </td>
|
|
</tr>
|
|
<tr>
|
|
<td class='confluenceTd'> <a name="ProjectConfigurationBlock-workingDirectory"></a> workingDirectory </td>
|
|
<td class='confluenceTd'> The Working Directory for the project (this is used by other blocks). <b>Relative paths</b> 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. You don't need to quote the Working Directory, even if it contains spaces. <br clear="all" /> </td>
|
|
<td class='confluenceTd'> string </td>
|
|
<td class='confluenceTd'> no </td>
|
|
<td class='confluenceTd'> <tt>WorkingDirectory</tt> </td>
|
|
</tr>
|
|
<tr>
|
|
<td class='confluenceTd'> <a name="ProjectConfigurationBlock-artifactDirectory"></a> artifactDirectory </td>
|
|
<td class='confluenceTd'> The Artifact Directory for the project (this is used by other blocks). <b>Relative paths</b> 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. You don't need to quote the Aftifact Directory, even if it contains spaces. </td>
|
|
<td class='confluenceTd'> string </td>
|
|
<td class='confluenceTd'> no </td>
|
|
<td class='confluenceTd'> <tt>Artifacts</tt> </td>
|
|
</tr>
|
|
<tr>
|
|
<td class='confluenceTd'> <a name="ProjectConfigurationBlock-webURL"></a> webURL </td>
|
|
<td class='confluenceTd'> 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 </td>
|
|
<td class='confluenceTd'> string </td>
|
|
<td class='confluenceTd'> no </td>
|
|
<td class='confluenceTd'> <a href="http://localhost/ccnet">http://localhost/ccnet</a> </td>
|
|
</tr>
|
|
<tr>
|
|
<td class='confluenceTd'> <a name="ProjectConfigurationBlock-category"></a> category </td>
|
|
<td class='confluenceTd'> A general category for this project. This is used by the dashboard to provide groupings to the project. Categories do not span servers. </td>
|
|
<td class='confluenceTd'> string </td>
|
|
<td class='confluenceTd'> no </td>
|
|
<td class='confluenceTd'> empty string </td>
|
|
</tr>
|
|
<tr>
|
|
<td class='confluenceTd'> <a name="ProjectConfigurationBlock-modificationDelaySeconds"></a> modificationDelaySeconds </td>
|
|
<td class='confluenceTd'> The minimum number of seconds allowed between the last check in and the start of a valid build. <br clear="all" />
|
|
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. <br clear="all" />
|
|
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') </td>
|
|
<td class='confluenceTd'> integer </td>
|
|
<td class='confluenceTd'> no </td>
|
|
<td class='confluenceTd'> 0 </td>
|
|
</tr>
|
|
<tr>
|
|
<td class='confluenceTd'> <a name="ProjectConfigurationBlock-sourcecontrol"></a> sourcecontrol </td>
|
|
<td class='confluenceTd'> See <a href="Source Control Blocks.html" title="Source Control Blocks">Source Control Blocks</a> </td>
|
|
<td class='confluenceTd'> <a href="Source Control Blocks.html" title="Source Control Blocks">Source Control Block</a> </td>
|
|
<td class='confluenceTd'> no </td>
|
|
<td class='confluenceTd'> <a href="Null Source Control Block.html" title="Null Source Control Block">Null Source Control Block</a> </td>
|
|
</tr>
|
|
<tr>
|
|
<td class='confluenceTd'> <a name="ProjectConfigurationBlock-triggers"></a> triggers </td>
|
|
<td class='confluenceTd'> See <a href="Trigger Blocks.html" title="Trigger Blocks">Trigger Blocks</a> </td>
|
|
<td class='confluenceTd'> List of <a href="Trigger Blocks.html" title="Trigger Blocks">Trigger Blocks</a> </td>
|
|
<td class='confluenceTd'> no </td>
|
|
<td class='confluenceTd'> Specifying an empty element (<triggers />) means integrations are only ever forced manually (for example using <a href="CCTray.html" title="CCTray">CCTray</a> or the <a href="Web Dashboard.html" title="Web Dashboard">Web Dashboard</a>.) Not including a <tt><triggers></tt> element at all means the project will behave like a <triggers /> element (before 1.4.3 the default when not inclufing a <triggers> was a single <a href="Interval Trigger.html" title="Interval Trigger">Interval Trigger</a> with default configuration). </td>
|
|
</tr>
|
|
<tr>
|
|
<td class='confluenceTd'> <a name="ProjectConfigurationBlock-state"></a> state </td>
|
|
<td class='confluenceTd'> See <a href="State Manager Blocks.html" title="State Manager Blocks">State Manager Blocks</a> </td>
|
|
<td class='confluenceTd'> <a href="State Manager Blocks.html" title="State Manager Blocks">State Manager Block</a> </td>
|
|
<td class='confluenceTd'> no </td>
|
|
<td class='confluenceTd'> Project State Manager </td>
|
|
</tr>
|
|
<tr>
|
|
<td class='confluenceTd'> <a name="ProjectConfigurationBlock-labeller"></a> labeller </td>
|
|
<td class='confluenceTd'> See <a href="Labeller Blocks.html" title="Labeller Blocks">Labeller Blocks</a> </td>
|
|
<td class='confluenceTd'> <a href="Labeller Blocks.html" title="Labeller Blocks">Labeller Block</a> </td>
|
|
<td class='confluenceTd'> no </td>
|
|
<td class='confluenceTd'> <a href="Default Labeller.html" title="Default Labeller">Default Labeller</a> </td>
|
|
</tr>
|
|
<tr>
|
|
<td class='confluenceTd'> <a name="ProjectConfigurationBlock-tasks"></a> tasks </td>
|
|
<td class='confluenceTd'> A set of <a href="Task Blocks.html" title="Task Blocks">Tasks</a> 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. </td>
|
|
<td class='confluenceTd'> List of <a href="Task Blocks.html" title="Task Blocks">Task Blocks</a> </td>
|
|
<td class='confluenceTd'> no </td>
|
|
<td class='confluenceTd'> empty list </td>
|
|
</tr>
|
|
<tr>
|
|
<td class='confluenceTd'> <a name="ProjectConfigurationBlock-prebuild"></a> prebuild </td>
|
|
<td class='confluenceTd'> A set of <a href="Task Blocks.html" title="Task Blocks">Tasks</a> 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. </td>
|
|
<td class='confluenceTd'> List of <a href="Task Blocks.html" title="Task Blocks">Task Blocks</a> </td>
|
|
<td class='confluenceTd'> no </td>
|
|
<td class='confluenceTd'> empty list </td>
|
|
</tr>
|
|
<tr>
|
|
<td class='confluenceTd'> <a name="ProjectConfigurationBlock-publishers"></a> publishers </td>
|
|
<td class='confluenceTd'> A set of <a href="Task Blocks.html" title="Task Blocks">Tasks</a> 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 <b>always</b> set an <a href="Xml Log Publisher.html" title="Xml Log Publisher">Xml Log Publisher</a> in this section so that your Web Dashboard will be able to report results. </td>
|
|
<td class='confluenceTd'> List of <a href="Task Blocks.html" title="Task Blocks">Task Blocks</a> </td>
|
|
<td class='confluenceTd'> no </td>
|
|
<td class='confluenceTd'> If you don't specify a <publishers /> section at all then a default <a href="Xml Log Publisher.html" title="Xml Log Publisher">Xml Log Publisher</a> is used as the sole publisher. </td>
|
|
</tr>
|
|
<tr>
|
|
<td class='confluenceTd'> <a name="ProjectConfigurationBlock-externalLinks"></a> externalLinks </td>
|
|
<td class='confluenceTd'> See <a href="ExternalLinks.html" title="ExternalLinks">ExternalLinks</a> </td>
|
|
<td class='confluenceTd'> List of <a href="ExternalLinks.html" title="ExternalLinks">ExternalLinks</a> </td>
|
|
<td class='confluenceTd'> no </td>
|
|
<td class='confluenceTd'> empty list </td>
|
|
</tr>
|
|
<tr>
|
|
<td class='confluenceTd'> <a name="ProjectConfigurationBlock-maxSourceControlRetries"></a> maxSourceControlRetries <br clear="all" /> </td>
|
|
<td class='confluenceTd'> The maximum amount of source control exceptions in a row that may occur, before the project goes to the stopped state. <br clear="all" /> </td>
|
|
<td class='confluenceTd'> int </td>
|
|
<td class='confluenceTd'> no </td>
|
|
<td class='confluenceTd'> 5 </td>
|
|
</tr>
|
|
<tr>
|
|
<td class='confluenceTd'> <a name="ProjectConfigurationBlock-startupState"></a> startupState <br clear="all" /> </td>
|
|
<td class='confluenceTd'> Sets the state of the project when CCNet service/Console starts. Stopped can be handy when you are adding a lot of projects which are depending on other projects (via the project trigger) and these may not be build right away. <br clear="all" /> </td>
|
|
<td class='confluenceTd'> enum </td>
|
|
<td class='confluenceTd'> no <br clear="all" /> </td>
|
|
<td class='confluenceTd'> Started. <br clear="all" />
|
|
Possible values are : <br clear="all" />
|
|
Stopped <br clear="all" />
|
|
Started <br clear="all" /> </td>
|
|
</tr>
|
|
</tbody></table>
|
|
|
|
<h3><a name="ProjectConfigurationBlock-SettingtheWebURL"></a>Setting the WebURL</h3>
|
|
|
|
<p>The current format of the url for a project, as specified in the <webURL> element is:<br/>
|
|
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
|
<pre class="code-java">http:<span class="code-comment">//<dashboardserver>/<vdir>/server/<ccnetserver>/project/<projectname>/ViewLatestBuildReport.aspx</span></pre>
|
|
</div></div><br clear="all" />
|
|
For example, if the dashboard was deployed on the server <b>webserver</b> to virtual directory <b>ccnet</b>, and if the project to monitor is called <b>test</b> on server <b>cruise</b>, the URL would be:</p>
|
|
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
|
<pre class="code-java">http:<span class="code-comment">//webserver/ccnet/server/cruise/project/test/ViewLatestBuildReport.aspx</span></pre>
|
|
</div></div>
|
|
|
|
<h3><a name="ProjectConfigurationBlock-Subsectiontypes"></a>Sub-section types</h3>
|
|
|
|
<ul><li><a href="ExternalLinks.html" title="ExternalLinks">ExternalLinks</a></li><li><a href="Labeller Blocks.html" title="Labeller Blocks">Labeller Blocks</a></li><li><a href="Source Control Blocks.html" title="Source Control Blocks">Source Control Blocks</a></li><li><a href="State Manager Blocks.html" title="State Manager Blocks">State Manager Blocks</a></li><li><a href="Task Blocks.html" title="Task Blocks">Task Blocks</a></li><li><a href="Timeout Configuration.html" title="Timeout Configuration">Timeout Configuration</a></li><li><a href="Trigger Blocks.html" title="Trigger Blocks">Trigger Blocks</a></li></ul>
|
|
|
|
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<table border="0" cellpadding="0" cellspacing="0" width="100%">
|
|
<tr>
|
|
<td height="12" background="http://confluence.public.thoughtworks.org//images/border/border_bottom.gif"><img src="images/border/spacer.gif" width="1" height="1" border="0"/></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="center"><font color="grey">Document generated by Confluence on Mar 14, 2009 02:55</font></td>
|
|
</tr>
|
|
</table>
|
|
</body>
|
|
</html> |