所以我创建了以下工作。我希望该作业仅在 VERSION 的值为“TEST-INPUT”时运行。所有其他情况下作业都会失败。我该怎么做?到目前为止,如果我在 GITLAB 中输入 VERSION 的任何值,作业仍然会运行。
test-manual-job:
stage: test-stage
when: manual
variables:
VERSION: "${VERSION}"
rules:
- if: '$VERSION == "TEST-INPUT"'
allow_failure: true
script:
- echo "${VERSION} is the hard-coded input"
rules:
仅在创建管道时进行评估。当您启动手动 job 时,指定任何变量都不会影响作业是否运行,因为 rules:
是在管道创建时评估的。
我希望作业仅在 VERSION 的值为“TEST-INPUT”时运行。所有其他情况下作业都会失败。由于您想在管道创建时间后评估此条件,因此不能使用
rules:
。相反,您可以将此逻辑添加到作业本身中:
myjob:
when: manual
before_script:
- |
if [[ "$VERSION" != "TEST-INPUT" ]]; then
exit 1
fi