Azure DevOps 多发布管道

Azure DevOps Multiple Release Pipelines

是否可以创建主发布管道以触发 Azure DevOps 中的子管道?

我们正在使用 vsts 代理和调用批处理脚本将一些包部署到 EC2 服务器。目前我们正在为每个包创建管道。但是这些包在每个版本中都在不断变化,我们希望在主管道中增加灵活性,我们可以在其中选择要触发的子管道。关于如何实现这一目标的任何想法?

we want to add flexibility in a master pipeline where we could choose sub pipelines to be triggered

对于这个问题,Azure DevOps 市场中有一个自定义任务:Trigger Azure DevOps pipeline。通过此任务,您可以从同一项目或组织内的另一个管道触发构建或发布管道,但也可以在另一个项目或组织中触发构建或发布管道。

您还可以添加一个 powershell 任务来调用 rest api 来排队另一个发布管道。

$token = "{PAT}"   
$url = "https://vsrm.dev.azure.com/{Org name}/{Project name}/_apis/Release/releases?api-version=5.0"
$token = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$($token)"))


$JSON = @"
{
  "definitionId": {release-def-2 definition ID}
}
"@

$response = Invoke-RestMethod -Uri $url -Headers @{Authorization = "Basic $token"} -Method Post -ContentType application/json -body $JSON

}