Gitlab新Pipeline启动时旧运行中Pipeline被取消,如何设置可并行运行?
GitLab 流水线自动取消问题配置方案
你遇到的同仓库新提交触发流水线时自动取消旧运行中流水线的情况,是GitLab默认开启的冗余流水线自动清理机制导致的,可通过以下配置调整:
全局关闭自动取消(所有分支流水线支持并行)
适合需要所有分支触发的流水线都互不干扰、同时运行的场景:
- 进入目标GitLab项目,依次点击
设置→CI/CD→通用流水线 - 找到「自动取消冗余流水线」的勾选选项,取消勾选后保存配置即可。
按需配置流水线不可中断(灵活适配分支/任务要求)
如果不需要全局关闭,只想指定分支或者指定任务的流水线不被取消,可以在项目根目录的.gitlab-ci.yml文件中添加interruptible字段配置:
# 全局配置所有任务默认不可被中断 default: interruptible: false # 也可以单独给指定任务配置 production_deploy: script: - sh ./deploy_prod.sh interruptible: false # 该任务运行时,不会被新触发的流水线取消
补充说明:
interruptible字段默认值为true,即所有任务默认允许被新流水线中断。只要流水线存在任意一个interruptible: false的运行中任务,整个流水线都不会被新触发的流水线自动取消。
调整自动取消范围(仅同一分支新提交取消旧流水线)
如果你的需求是不同分支的流水线可以并行运行,仅同一分支有新提交时才取消该分支的旧运行流水线,不需要全局关闭功能,只需在上述CI/CD设置页面,将自动取消的范围调整为「仅同一分支」即可。新版本GitLab默认已按该规则配置,旧版本可能默认是全仓库范围触发取消。
内容的提问来源于stack exchange,提问作者waz
相关产品推荐
相关产品推荐

