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

如何配置GitLab手动任务仅在VERSION变量为指定值时运行?

GitLab CI 任务配置修改方案

你的配置问题出在规则逻辑和冗余变量定义上,以下是两种符合需求的修改方式:

方案一:仅符合条件时显示任务(完全阻止非指定值执行)

这种方式下,只有当VERSION为"TEST-INPUT"时,任务才会出现在流水线中供手动触发,其他情况任务不会生成:

test-manual-job:
  stage: test-stage
  rules:
    - if: '$VERSION == "TEST-INPUT"'
      when: manual
    - when: never
  script:
    - echo "${VERSION} is the hard-coded input"

方案二:任务始终显示,但非指定值执行时直接失败

如果需要任务始终可见,但只有输入正确值才会执行成功,否则立即失败:

test-manual-job:
  stage: test-stage
  when: manual
  script:
    - |
      if [ "$VERSION" != "TEST-INPUT" ]; then
        echo "ERROR: VERSION 必须为 TEST-INPUT"
        exit 1
      fi
    - echo "${VERSION} is the hard-coded input"

原配置问题说明

  1. 冗余的variables: VERSION: "${VERSION}"定义完全没必要,甚至可能引发变量优先级冲突(手动输入的变量优先级本就高于job内定义的变量)。
  2. 原rules仅配置了匹配条件的规则,但未处理不匹配的情况,GitLab默认会允许任务执行;加上allow_failure: true,导致非指定值时任务仍能执行,且失败不会影响流水线状态。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 16:25:13