CruiseControl Configuration Reference

CruiseControl configuration files are written in XML. This document describes the XML elements and attributes for the Team Foundation Server integration. For the complete reference guide, see the CruiseControl web site.

<tfs>

Triggers a build if there is a change within a Microsoft Visual Studio Team Foundation Server (TFS) repository.

Changes are detected by calling out to the TFS command line (tf). Microsoft provide the tf.exe command line tool as part of the Team Explorer client installation on Windows platforms. For information on obtaining the Microsoft Team Explorer client, visit CodePlex wiki. Teamprise also provide a tf command that works cross-platform including GNU/Linux, Mac, MP-UX and Solaris platforms as well as Windows.  To download the Teamprise command line client, visit the Teamprise download site (fully functional evaluation licenses are available).  Note that the Teamprise client requires activation when using it with a purchased license, for instructions on how to activate from the command line consult the Teamprise Knowledgebase.

Changes in TFS are detected by running a command similar to the following:

tf history $/TeamProjectName/path 
           -version:D2006-12-01T01:01:01Z~D2006-12-13T20:00:00Z 
           -recursive -format:detailed -noprompt
           -server:http://tfsserver:8080 
           -login:DOMAIN\name,password

For further details regarding the tf history command, consult the MSDN documentation.

It is worth noting that this implementation of integration with TFS works with both the Microsoft tf.exe and the Teamprise tf command line client using the same command strings.  There are some small differences in the output of the two commands, however this is taken into account in the parsing logic contained within this integration.

Attributes

Attribute Required Description
tfPath No (defaults to "tf") Specify the full path to the tf command being used.  If not supplied then the plug-in will try to locate a command called "tf" in the cruise control system path.  By default, the Microsoft client is installed into C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\TF.exe
server yes URL to access the Team Foundation Server including port, for example http://tfserver:8080

projectPath

yes Path in the TFS repository that is recursively checked for modifications.  Any changes under that path will trigger a build.
username no The username to use when connection to Team Foundation Server.  This user must have read permissions to the version control repository for the projectPath.  When using the Microsoft client, if no username is passed then the user that the CruiseControl process is running as will be used.  Note that is a username is provided then a password must be provided in order for the credentials to be used.

The username should be passed in the form DOMAIN\username.  From unix systems the name can be passed in the username@DOMAIN format if preferred as that removes confusion over escaping of the \ character which should not be required.
password no The password to use with the username when authenticating with the server.
options no An optional string that may be passed as part of the command line.  The contents of the options tag are passed as an argument to the tf history command.