Как дождаться завершения очереди сборки TFS в Powershell
Одно из наших требований - дождаться завершения сборки TFS, находящейся в очереди, а затем нам нужно выполнить следующую задачу. Я написал приведенный ниже код для достижения этой цели, но это не дает мне желаемых результатов.
function Wait-QueuedBuild ()
{
$serverName="http://tfs001:8080/tfs/Collection"
$tfs = [Microsoft.TeamFoundation.Client.TeamFoundationServerFactory]::GetServer($serverName)
$buildserver = $tfs.GetService([Microsoft.TeamFoundation.Build.Client.IBuildServer])
$build = $buildServer.QueueBuild($buildServer.GetBuildDefinition("CollectionUtility\BUILD_FULL",$_.Name))
do
{
sleep 1
}
while (!(build.Status -eq 'InProgress'))
}
2 ответа
Решение
Вы должны продолжать запрашивать статус сборки в цикле, как упоминал Андрей. Код должен понравиться:
do {
sleep 1;
$queryoption = [Microsoft.TeamFoundation.Build.Client.QueryOptions]::All;
$build = $buildserver.GetQueuedBuild($build.Id,$queryoption);
}
while ($build.Status -eq 'InProgress')