The following script will return the last successful build on a given build definition.
Save the following to a .ps1 file
$project = "testproject"
[URI]$Projecturi = "http://tfsserver:8080/tfs/DefaultCollection/"
function Wait-GetLKGBuild {
[CmdletBinding()]
PARAM (
[Parameter(Mandatory=$true)]
[string]$buildDefinitionName
)
[void][Reflection.Assembly]::LoadWithPartialName('Microsoft.TeamFoundation.Build.Client')
[void][Reflection.Assembly]::LoadWithPartialName('Microsoft.TeamFoundation.Client')
$tfs = [Microsoft.TeamFoundation.Client.TeamFoundationServerFactory]::GetServer($Projecturi)
$buildserver = $tfs.GetService([Microsoft.TeamFoundation.Build.Client.IBuildServer])
$rbBuildDefinition = $buildserver.GetBuildDefinition($project, $buildDefinitionName)
$build = $buildserver.GetBuild([Uri]($rbBuildDefinition.LastGoodBuildUri));
New-Object PSObject -Property @{
Buildnumber = $build.BuildNumber;
Requestedfor = $build.RequestedFor;
Status = $build.Status;
CompilationStatus = $build.CompilationStatus;
Start = $build.StartTime;
End = $build.FinishTime;
DropLocation = $build.DropLocation;
SourceGetVersion = $build.SourceGetVersion;
}
}
}
Wait-GetLKGBuild $buildDefinitionName