如何禁用Azure DevOps分支策略构建检查的自动取消功能
PR触发器autoCancel不生效的问题解决
你遇到的问题是PR触发器里autoCancel: false没起作用,推送新代码时旧构建还是会被取消,进而导致Terraform状态锁无法释放。下面是几个排查和解决方向:
检查分支策略的构建验证配置:
进入仓库的分支策略页面(找到master分支的策略),找到关联的Terraform部署流水线的构建验证任务,看是否单独开了“自动取消旧的运行”选项——这个设置会覆盖PR触发器的autoCancel配置,把它关掉就行。检查流水线全局设置:
打开流水线的“设置”标签,看看有没有“当新运行排队时取消旧运行”这类全局选项,确保它处于关闭状态。排查YAML中的作业/阶段配置:
确认流水线YAML里有没有在阶段(stage)或作业(job)层级设置cancelPreviousJobs: true,这个配置优先级比PR触发器的autoCancel高,要是有的话改成false或者删掉。比如这类代码要调整:jobs: - job: TerraformDeploy cancelPreviousJobs: true # 把这个改成false或者删除 steps: - ...临时规避方案:
如果上面的配置暂时没法调整,可以在Terraform命令里加锁超时参数,比如terraform plan -lock-timeout=5m或者terraform apply -lock-timeout=5m,让命令等待锁释放,减少直接失败的情况。
内容的提问来源于stack exchange,提问作者Rafael Carvalho
相关产品推荐
相关产品推荐

