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

如何在Gitlab中基于流水线变量配置运行CI/CD作业?

报错原因

GitLab CI 中 rules 与旧版的 only/except 为互斥关键字,不允许在同一个作业的配置中同时使用,这就是你收到报错的直接原因。你只需要将原有 only 定义的触发逻辑全部迁移到 rules 规则中,就能实现完全一致的需求。

修正后的配置

你原有配置的需求是:仅在 master 分支、其他普通分支流水线触发作业,且排除 my-featured-branch 分支,调整后的配置如下:

build-dev:
  stage: build
  rules:
    - if: '$CI_COMMIT_BRANCH == "my-featured-branch"'
      when: never
    - if: '$CI_COMMIT_BRANCH == "master" || $CI_COMMIT_BRANCH'
      when: always

规则说明

  • rules 按照从上到下的顺序匹配,命中第一条符合条件的规则后就会终止后续判断
  • 第一条规则匹配到目标分支后直接设置为不执行,对应你原本的排除逻辑
  • 第二条规则中,$CI_COMMIT_BRANCH 变量仅在分支流水线中存在,加上 master 分支的单独匹配,完全覆盖原有 only 配置的触发范围

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 06:45:08