Azure DevOps中如何取消当前构建,直接启动新的CI流水线构建?
在Azure DevOps YAML流水线中取消正在运行的构建以启动新构建的配置方法
完全可以配置,主要有两种实现方式:
方式1:通过UI设置并发作业规则
- 打开目标流水线的编辑页面,点击右上角的「...」选择「触发器」
- 在「触发器」标签页找到「并发作业」区域
- 勾选「如果有新作业排队,取消正在运行的作业」,然后选择作用范围:
- 「同一分支」:仅取消当前分支下正在运行的构建
- 「同一定义」:取消该流水线所有正在运行的构建
- 保存设置即可生效
方式2:直接在YAML中配置
在流水线YAML的trigger段添加相关参数,示例如下:
trigger: branches: include: - master batch: true cancelTimeoutInMinutes: 5 # 可选:设置取消超时时间,默认5分钟
batch: true:开启批量处理后,当同一分支有多个提交排队时,系统会自动取消正在运行的旧构建,只执行最新的那一个cancelTimeoutInMinutes:指定系统尝试终止正在运行的构建的超时时间,超时后旧构建会继续运行,但新构建仍会启动
注意要点
- UI配置和YAML配置可以共存,但UI设置会覆盖YAML中的对应项,建议统一用一种方式避免冲突
- 如果是PR触发的构建,需要在「拉取请求触发器」的并发作业设置中做同样配置
- 取消操作会直接终止正在运行的作业,所以如果构建中有不可中断的关键步骤,需要提前评估影响
内容的提问来源于stack exchange,提问作者Bastien Vandamme
相关产品推荐
相关产品推荐

