我们有一个YML Azure发布管道,在构建管道完成后,我们试图在其下触发该管道。
我们注意到当构建管道部分成功时,不会触发版本YML。尽管当我们在下面的代码片段中使用释放管道中的触发器部分时,即使构建部分成功,它也会被触发,但是当我们通过UI通过附加的屏幕截图配置触发器时,它不会在构建管道的部分成功中被触发。 >
以下是当我们确实触发了YML代码本身的设置时-即使部分成功构建也可以使用。
以下是我们仅在UI中触发设置的时间-如果部分成功构建,此方法将不起作用。
请告知我们,即使在通过UI设置触发器的情况下,即使构建部分成功,也应如何触发释放管道。
谢谢 沙拉德
答案 0 :(得分:0)
请在此处查看文档
以前,您可能已导航到YAML的经典编辑器 管道并在用户界面中配置构建完成触发器。而 该模型仍然有效,因此不再建议使用。推荐的 方法是直接在YAML中指定管道触发器 文件。经典编辑器中定义的构建完成触发器具有 各种缺点,现已在管道触发器中得到解决。
答案 1 :(得分:0)
同意Cece。
作为一种解决方法,我们可以添加任务电源外壳并调用API Queue build来触发构建。
步骤:
创建PAT令牌->将其保存在构建管道变量中,并秘密保存。
添加任务电源外壳并将条件设置为Even if a previous task has failed, even if the build was canceled
Power Shell脚本:
$token = "$(pat)"
$url = "https://dev.azure.com/{Org name}/{project name}/_apis/build/builds?api-version=6.1-preview.6"
$token = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$($token)"))
$JSON = @"
{
"definition": {
"id": {Build definition ID}
}
}
"@
$response = Invoke-RestMethod -Uri $url -Headers @{Authorization = "Basic $token"} -Method Post -ContentType application/json -body $JSON
write-host $response
结果: