2013-05-24 3 views
1

У меня есть TFS сборка установки Определения где я исполняю Powershell скрипт для усиления безопасности, применяя финальные патчи и т.д.Обновления TFS сборки Статуса через Powershell

Иногда этот сценарий PowerShell может потерпеть неудачу, и я хотел бы изменить статус сборки будет неуспешным или неудачным. Есть ли способ изменить этот статус сборки TFS через powershell?

ответ

0

Попробуйте это:

$script:TFServerName = $ServerName 
$script:TFServer  = [Microsoft.TeamFoundation.Client.TeamFoundationServerFactory]::GetServer($ServerName) 
$script:TFBuildServer = $TFServer.GetService([Microsoft.TeamFoundation.Build.Client.IBuildServer]) 
$spec = $TFBuildServer.CreateBuildDetailSpec($TeamProject, $DefinitionName) 
$spec.Status = 'Failed' 

Убедитесь, что вы имеете Add-Type правильные версии сборок TFS. Я предполагаю, что, поскольку средства поддержки свойств поддерживают, они обращаются к серверу, чтобы повлиять на изменение. Но я не уверен в этом на 100%.

0

Вот что я кусочкам из MSDN:

[Reflection.Assembly]::LoadWithPartialName("Microsoft.TeamFoundation.Build.Client") 
[Reflection.Assembly]::LoadWithPartialName("Microsoft.TeamFoundation.Client") 


$tfsServerAddress = "http://{tfs hostname}:{port}/{CollectionName}" 
$build = "{build definition name}_{build date}.{build count for the day}" 

#update build status 
$tfsProject = [Microsoft.TeamFoundation.Client.TfsTeamProjectCollectionFactory]::GetTeamProjectCollection($tfsServerAddress) 
$tfsBuildServer = $tfsProject.GetService([Microsoft.TeamFoundation.Build.Client.IBuildServer]) 
$spec = $tfsBuildServer.CreateBuildDetailSpec($teamProject) 
$spec.BuildNumber = $build 
$builds = $tfsBuildServer.QueryBuilds($spec).Builds 

if ($builds[0].TestStatus -eq 'Succeeded'){ 
    echo "updating test status:" $builds[0].TestStatus "to $testOutcome" 
    $builds[0].TestStatus = $testOutcome 
} 

if ($builds[0].Status -eq 'Succeeded'){ 
    echo "updating build status:" $builds[0].Status "to $testOutcome" 
    $builds[0].Status = $testOutcome 
} 
$tfsBuildServer.SaveBuilds($builds) 

Имейте в виду, что вам нужно специальное разрешение, чтобы обновить статус сборки

Смежные вопросы