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

如何配置gitlab-ci.yml实现仅master分支触发CI流水线

报错原因

你出现配置报错的核心原因是:only关键字不支持直接写在.gitlab-ci.yml的全局顶级位置,该规则只能配置在单个job的层级下。如果需要全局控制整个流水线的触发条件,推荐使用workflow:rules配置,灵活性和兼容性更高。

正确实现方案

方案1:全局规则控制(推荐)

在配置顶部添加workflow规则,全流水线仅在master分支推送时触发,包括develop在内的其他所有分支推送都不会启动流水线,不需要每个job重复配置规则,配置示例如下:

# 全局流水线触发规则
workflow:
  rules:
    - if: $CI_COMMIT_BRANCH == "master"
      when: always
    - when: never

stages:
  - info
  - build
  - test
  - review
  - cleanup
  - deploy-dev
  - integration-test
  - deploy-test
  - system-test
  - deploy-production

# 后续正常编写各个job的配置即可,无需额外加触发规则

方案2:单job单独配置

如果只需要部分job符合触发规则,可以给每个需要控制的job单独添加only配置,示例如下:

stages:
  - info
  - build

# 示例job1
info_job:
  stage: info
  script:
    - echo "打印环境信息"
  only:
    refs:
      - master

# 示例job2
build_job:
  stage: build
  script:
    - echo "执行代码构建"
  only:
    refs:
      - master

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 22:36:01