我在123分支中的abc repo中有一个部署作业(发布定义),在456分支中的def repo中有另一个构建作业(Build definition)。我想在部署作业之后运行构建作业。我在VSTS中有不同的repo中的两个作业定义。我需要在VSTS中调用什么插件以及如何完成此任务。请帮助任何人。所以一旦发布作业触发到Dev环境,我应该调用VSTS中不同repo的构建作业
答案 0 :(得分:1)
您只需在Dev版本环境的末尾添加 PowerShell任务或相关的扩展任务即可调用构建。
如下所示对powers build进行排队的powershell脚本(以下示例中的构建定义ID为5):
$body = @{
definition = @{
id = 5
}
}
$Uri = "http://account.visualstudio.com/DefaultCollection/project/_apis/build/builds?api-version=2.0"
$buildresponse = Invoke-RestMethod -Method Post -UseDefaultCredentials -ContentType application/json -Uri $Uri -Body (ConvertTo-Json $body)
您可以安装Queue Build(s) Task或Queue New Build task等。然后在Dev版本环境的最后添加任务。
$body = '
{
"definitionId": releasedefinitionID,
"artifacts": [
{
"alias": "build_definition_name",
"instanceReference": {
"id": "buildID",
"name": null
}
}
]
}
'
$bodyJson=$body | ConvertFrom-Json
Write-Output $bodyJson
$bodyString=$bodyJson | ConvertTo-Json -Depth 100
Write-Output $bodyString
$user="name"
$token="PAT"
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $user,$token)))
$Uri = "https://account.vsrm.visualstudio.com/project/_apis/Release/releases?api-version=4.0-preview.4"
$buildresponse = Invoke-RestMethod -Method Post -UseDefaultCredentials -ContentType application/json -Uri $Uri -Body $bodyString -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)}
write-host $buildresponse