Azure DevOps:创建新版本发布流水线时如何自动取消旧版本?
解决方案:自动取消Azure DevOps旧版本发布
一、通过发布流水线配置实现(推荐)
直接在发布流水线的触发设置里开启自动取消旧版本的选项,步骤如下:
- 打开目标发布流水线,进入编辑模式
- 切换到触发器标签页
- 在持续部署触发器区域,找到*“取消正在进行的发布”*选项
- 勾选该选项后保存配置
这样当dev分支有新变更触发新版本发布时,系统会自动取消同一发布流水线中处于进行中状态的旧版本,无需手动操作。
二、通过Azure CLI命令实现(适合自定义场景)
如果需要更灵活的控制(比如仅取消特定环境的旧发布),可以在构建流水线中添加一个任务,调用Azure CLI命令来取消旧版本:
- 在构建流水线中添加Azure CLI任务
- 选择对应的Azure订阅,输入以下命令(替换占位符):
# 获取同一流水线下所有处于进行中状态的旧版本 old_releases=$(az pipelines release list --definition-id <发布流水线ID> --status inProgress --query "[?name != '<当前新版本名称>'].id" -o tsv) # 循环取消这些旧版本 for release_id in $old_releases; do az pipelines release cancel --id $release_id --reason "自动取消旧版本,为新版本让路" done
注意:需要确保流水线服务主体拥有**发布管理(Release Manager)**权限,才能执行取消操作。
补充说明
- 配置方式仅对持续部署触发器触发的新版本生效,如果是手动创建的版本,不会自动取消旧版本
- 取消操作只会终止处于进行中的发布,已完成的发布不受影响
内容的提问来源于stack exchange,提问作者Enrico
相关产品推荐
相关产品推荐

