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

GitLab CI管道:按$CI_COMMIT_TAG状态控制Job执行异常问题

GitLab CI 标签与非标签场景Job执行配置问题

你的配置存在逻辑漏洞:when_no_tag Job仅定义了存在标签时不执行的规则,但未指定无标签时的执行规则。GitLab CI的rules机制是:只有当至少一条规则匹配时,Job才会运行;若没有任何规则匹配,Job会被自动跳过。因此无标签提交时,when_no_tag没有匹配的规则,导致两个Job都不执行。

修正后的配置方案

方案一:补充默认执行规则

when_tag:
  rules:
    - if: $CI_COMMIT_TAG
      when: always
  script:
    - echo "Tag"

when_no_tag:
  rules:
    - if: $CI_COMMIT_TAG
      when: never
    - when: always  # 无标签时触发该规则,执行Job
  script:
    - echo "No tag"

方案二:直接判断无标签场景

when_tag:
  rules:
    - if: $CI_COMMIT_TAG
      when: always
  script:
    - echo "Tag"

when_no_tag:
  rules:
    - if: '!$CI_COMMIT_TAG'
      when: always
  script:
    - echo "No tag"

执行效果

  • 创建标签时:when_tag匹配规则执行,when_no_tag因匹配到$CI_COMMIT_TAG规则被跳过;
  • 普通无标签提交时:when_tag无匹配规则被跳过,when_no_tag匹配规则执行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 19:03:10