是否可以启动从一个集合到另一个集合的 TFS 生成?



我正在寻找一种方法来允许一个构建在不同的集合中启动另一个构建。如果这是可能的,有没有办法让它等到构建完成再继续?

可以运行触发其他生成的 Powershell 脚本:

param
(
[Parameter(Mandatory=$true)]
$BuildDefinitionId,
[Parameter(Mandatory=$true)]
$CollectionUrl,
[Parameter(Mandatory=$true)]
$TeamProject,
[Parameter(Mandatory=$true)]
$Credentials
)
try
{
$apiVersion = "2.0"
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}" -f $Credentials)))
$body = @{ definition = @{id = $BuildDefinitionId} }
$requestUrl = "$CollectionUrl/$TeamProject/_apis/build/builds" + "?api-version=$apiVersion"
$response = Invoke-RestMethod -Method Post -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)} -ContentType application/json -Uri $requestUrl -Body (ConvertTo-Json $body)
return $response
}
catch
{
Write-Host "Failed to trigger build {$BuildDefinitionId}, Exception: $_" -ForegroundColor Red
return $null
}

}

参数示例:

-BuildDefinitionId "37" -CollectionUrl "http://tfsserver:8080/tfs/DefaultCollection" -TeamProject "MyProject" -凭据 "domain\user:MyP@ssw0rd">

你可以在此处详细介绍如何在 TFS 上使用 Powershell 任务。

最新更新