如何配置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"
原配置问题说明
- 冗余的
variables: VERSION: "${VERSION}"定义完全没必要,甚至可能引发变量优先级冲突(手动输入的变量优先级本就高于job内定义的变量)。 - 原
rules仅配置了匹配条件的规则,但未处理不匹配的情况,GitLab默认会允许任务执行;加上allow_failure: true,导致非指定值时任务仍能执行,且失败不会影响流水线状态。
内容的提问来源于stack exchange,提问作者e_wards
相关产品推荐
相关产品推荐

