Using the SetBuildProperties Task to Update the Log Location for a Build
One of the new tasks available in Team Build Orcas (VS 2008) is the SetBuildProperties task. This task allows you to modify any of the settable properties of a BuildDetail object directly from you MSBuild script (TfsBuild.proj). The settable properties include:
- BuildNumber. This is often displayed in the GUI as Build Name.
- CompilationStatus. A string representation of the BuildPhaseStatus value for the compilation phase of the build. Valid values include "Failed", "Succeeded", and "Unknown".
- DropLocation. The location of the build outputs - typically a UNC path.
- LabelName. The name of the version control label generated for the build.
- LogLocation. The location of the log file for the build - typically a file called BuildLog.txt at the DropLocation.
- Quality. The quality of the build.
- SourceGetVersion. The version specifier used to retrieve source files for the build.
- Status. A string representation of the BuildStatus value for the overall status of the build. Valid values include "InProgress", "Succeeded", "PartiallySucceeded", "Failed", "Stopped", and "NotStarted".
- TestStatus. A string representation of the BuildPhaseStatus value for the testing phase of the build. Valid values include "Failed", "Succeeded", and "Unknown".
Using the task is pretty simple - just specify the TeamFoundationServerUrl and BuildUri that identify the BuildDetail to be modified and set the desired properties to their new values. For example, to set the log location for a build to a URL, rather than the typical UNC path, you might do something like the following:
<Target Name="AfterDropBuild"> <SetBuildProperties TeamFoundationServerUrl="$(TeamFoundationServerUrl)" BuildUri="$(BuildUri)" LogLocation="http://www.myurl.com/BuildOutput/BuildNumber_20071016/BuildLog.htm" /> </Target>
After this change, the link to the log file in the build report for this build will show the new URL, rather than the default UNC path.