Azure Devops Release阶段内代理作业触发流水线失败时如何将阶段设为失败
Azure DevOps Release阶段同步下游触发流水线状态配置方案
核心原因说明
默认的触发流水线任务仅负责发送触发请求,不会等待下游流水线运行结果,所以无论下游运行成功还是失败,当前任务都会默认返回成功,进而导致整个Release阶段显示成功。
配置步骤
1. 调整触发任务基础配置
如果使用的是官方触发生成(Trigger Build)预置任务:
- 打开Release阶段对应的代理作业,找到触发指定流水线的任务
- 勾选参数栏的等待生成完成选项,让当前任务等待直到下游流水线运行结束
- 按照业务需要配置生成完成超时时间,避免下游流水线卡死导致Release资源长期占用
- 勾选生成失败时任务失败选项,只要下游流水线运行结果为失败,当前触发任务会直接标记为失败
2. 配置作业与阶段的成功判定规则
- 进入当前代理作业的设置界面,将「运行此作业」的触发条件设置为仅当所有先前任务成功时
- 进入当前Release阶段的设置界面,将「阶段成功条件」设置为此阶段内所有作业全部成功,只要触发任务所属的作业失败,整个阶段就会自动标记为失败
3. 自定义脚本触发场景适配
如果你是通过PowerShell/Bash脚本调用Azure DevOps REST API触发流水线,需要在脚本中补充轮询判断逻辑:
发送触发请求获取下游流水线运行ID后,循环调用流水线运行状态查询接口,直到返回的运行状态为已完成;如果最终运行结果为失败,直接执行
exit 1退出脚本,当前任务会被自动标记为失败,进而触发阶段失败规则。
内容的提问来源于stack exchange,提问作者Tammy Osborn
相关产品推荐
相关产品推荐

