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
相关产品推荐
相关产品推荐

