You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何关闭GitLab CI新建分支时自动触发流水线?

GitLab CI 关闭新建分支自动触发流水线的解决方案

你的现有配置未生效,核心原因是本地新建分支后首次推送代码属于push事件,符合你规则里的CI_PIPELINE_SOURCE == "push"条件,因此会触发流水线。要区分“首次推送新分支”和“推送已有分支”,可以借助GitLab内置变量CI_COMMIT_BEFORE_SHA实现:

当分支是首次推送时,CI_COMMIT_BEFORE_SHA的值为全零SHA字符串:0000000000000000000000000000000000000000;推送已有分支时,该变量是分支上一次提交的SHA值。

修改后的workflow配置如下:

workflow:
  rules:
    # 允许合并请求(MR)触发流水线
    - if: $CI_PIPELINE_SOURCE == "merge_request_event"
    # 允许推送已有分支,排除首次推送新分支的场景
    - if: $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BEFORE_SHA != "0000000000000000000000000000000000000000"

补充说明

  • 如果是在GitLab界面直接创建分支,此时流水线触发源为web,不在规则允许范围内,因此流水线不会自动启动,无需额外配置。
  • workflow规则是全局控制流水线是否启动,优先级高于单个job的rules配置,只要该配置生效,就能确保只有符合条件的场景才会触发流水线。

内容的提问来源于stack exchange,提问作者Pum Purum

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 01:24:54