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

GitLab CI配置报错:artifacts含未知键rules,求解决方案

解决GitLab CI artifacts配置rules报错的问题

你遇到的错误是因为rules关键字不能直接写在artifacts配置块里,它是job级别的配置项,无法用来单独控制artifacts的生成时机。下面是几种可行的解决方法:

方法一:用only限定仅release分支生成产物

这是最简单的实现方式,直接在artifacts块中指定仅在release分支生成产物:

stages:
  - build

windows job:
  image: …
  stage: build
  tags:
    - "Windows"
  script:
    - …
  artifacts:
    only:
      - release
    paths:
      - ./Debug/*.exe
      - ./Debug/*.pdb

方法二:用when结合条件判断(支持复杂逻辑)

如果需要更灵活的条件匹配(比如多分支、变量组合判断等),可以用when配合if表达式精准控制:

stages:
  - build

windows job:
  image: …
  stage: build
  tags:
    - "Windows"
  script:
    - …
  artifacts:
    when:
      - if: '$CI_COMMIT_BRANCH == "release"'
        then: always
      - else: never
    paths:
      - ./Debug/*.exe
      - ./Debug/*.pdb

额外方案:仅release分支运行该job

如果你的需求是只有release分支才执行这个job并生成产物,可将rules放到job级别:

stages:
  - build

windows job:
  image: …
  stage: build
  tags:
    - "Windows"
  rules:
    - if: '$CI_COMMIT_BRANCH == "release"'
  script:
    - …
  artifacts:
    paths:
      - ./Debug/*.exe
      - ./Debug/*.pdb

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 12:53:07