azure-devops - 链接 Azure DevOps 管道
问题描述
我希望下面的 Azure DevOps 管道在两个资源管道成功构建相同的 master 提交时自动触发。这可能吗?现在它会在其中一个管道完成导致两次运行时触发。
trigger: none
pr: none
resources:
pipelines:
- pipeline: "buildPipeline1"
source: "BuildPipeline1"
trigger:
branches:
- master
- pipeline: "buildPipeline2"
source: "BuildPipeline2"
trigger:
branches:
- master
解决方案
抱歉,暂时不可以。
对于管道触发器,我们只能在另一个完成时触发一个管道,将触发管道指定为管道资源。
您可以在此处参考我们的官方文档——触发一个又一个管道
我能遇到的唯一解决方法是在两个管道的末尾添加一个任务,如果相同的提交构建和构建成功,则查询另一个管道的状态。
最后,我们可以添加任务电源外壳并添加脚本以调用 REST API 以根据先前的任务结果对构建/任何其他管道进行排队。
$connectionToken="PAT"
$base64AuthInfo= [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$($connectionToken)"))
$PipelineUrl = "https://dev.azure.com/{Org name}/{project name}/_apis/pipelines/{Pipeline ID}/runs?api-version=6.0-preview.1"
$body ="{
`"resources`":{
`"repositories`":{
`"self`":{`"refName`":`"refs/heads/master`"
}
}
}
}"
$Pipelines = Invoke-RestMethod -Uri $PipelineUrl -ContentType "application/json" -Body $body -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)} -Method POST