GitLab CI规则:如果匹配Bash中失败的条件



.gitlab-ci.yml中,我们确实有一个将值与正则表达式匹配的规则。当Bash告诉此条件为假时,为什么rule-regex作业与if: $EMPTY_VAR =~ "some-value"一起运行?

如果我设置EMPTY_VAR: 'x',则不会运行作业。

variables:
EMPTY_VAR: ''
default:
image: container-registry.ubs.net/alpine:3.12.3
# Runs against expectation and prints 'expected false'
rule-regex:
rules:
- if: $EMPTY_VAR =~ "some-value"
script:
- echo "Job has run with EMPTY_VAR='${EMPTY_VAR}'"
- |
if [[ $EMPTY_VAR =~ "some-value" ]]; then
echo "expected true"
else
echo "expected false"
fi
# Does not run as expected
rule-equal:
rules:
- if: $EMPTY_VAR == "some-value"
script:
- echo "Job has run with EMPTY_VAR='${EMPTY_VAR}'"

你可以试试这个

- if: $EMPTY_VAR =~ /^some-value.*/

https://docs.gitlab.com/ee/ci/jobs/job_control.html#compare-a-variable to-regex-pattern

最新更新