首页/开发/CI/CD 与发布速查/GitLab CI workflow 规则
工具链要点63 条

GitLab CI workflow 规则

在作业规则之外控制「整条流水线是否创建」:用 workflow:rules 避免分支推送与 MR 事件各触发一条流水线的重复问题。

CI/CD 与发布速查开发更新于 2026-10-12
作用域整条流水线的创建条件
常见目标分支与 MR 场景只保留一条流水线
配合配合 rules 控制作业级运行
变量workflow:rules 中可用 CI_OPEN_MERGE_REQUESTS 等

避免重复流水线

避免重复流水线
workflow:
  rules:
    - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
    - if: '$CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS'
      when: never
    - if: '$CI_COMMIT_BRANCH'
分支流水线与 MR 流水线并存会造成重复构建:用官方推荐模式二选一。

易错点

  • 只改作业规则不改 workflow:同一次提交仍然创建两条流水线
  • workflow 规则过于严格:手动运行与定时流水线被一并拦掉

数据来源与参考

  • GitLab Docs《Avoid duplicate pipelines》
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌