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

如何用Workflow规则让GitLab流水线仅在Staging合并到Master或Webhook触发时运行

GitLab流水线Workflow规则配置方案

以下是满足需求的最终Workflow配置,仅允许staging分支合并到master或Webhook触发两种场景运行master分支的流水线,同时保留配置文件变更时不触发的规则:

workflow:
  rules:
    # 修改配置文件或Dockerfile时跳过流水线
    - changes:
        - .gitlab-ci.yml
        - Dockerfile
      when: never
    # 排除打开的MR对应的分支推送(避免MR分支推送触发冗余流水线)
    - if: $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS
      when: never
    # 允许Webhook触发的流水线(匹配trigger源)
    - if: $CI_PIPELINE_SOURCE == "trigger"
    # 仅允许staging分支合并到master时触发流水线
    - if: "$CI_COMMIT_BRANCH == 'master' && $CI_PIPELINE_SOURCE == 'push' && $CI_COMMIT_MESSAGE =~ /Merge branch 'staging' into 'master'/"
      when: always
    # 兜底规则:所有未匹配的情况一律不触发流水线
    - when: never

规则说明

  • 配置文件变更过滤:直接匹配.gitlab-ci.yml和Dockerfile的变更,避免测试配置时触发流水线。
  • MR分支推送过滤:排除已打开MR的分支推送触发的流水线,仅保留必要的流水线场景。
  • Webhook触发允许:精准匹配Webhook触发的trigger源,满足外部触发需求。
  • staging合并到master匹配:通过分支、事件类型、提交消息三重判断,确保只有staging合并到master的操作能触发master分支流水线,直接推送master、UI编辑、其他分支合并等场景都会被过滤。
  • 兜底规则:确保所有未明确允许的场景都不会触发流水线,避免意外执行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 18:33:11