我试图在 gitlab-ci.yml 文件中设置部署阶段的规则,如果 git 提交消息具有这种格式的特定 [STRING],那么它应该部署到编写此规则的特定环境。
# Deploy to QAT environment
deploy-qat:
stage: deploy
extends: .helm_deploy
environment:
name: qat
tags:
- exe-prd
rules:
- if: $CI_COMMIT_MESSAGE =~ "/[QAT]$/|/[qat]$/" #&& $CI_COMMIT_REF_NAME == "example/qat"
when: always
我已经写了上面的规则,但它不起作用。我尝试了以下正则表达式的组合,但它们都不起作用。
"/\[QAT\]/|/\[qat\]/"
"/[QAT]/|/[qat]/"
"*\[QAT\]*|*\[qat\]*"
"\[\(QAT\|qat\)\]"
"\[\(QAT\|qat\)]"
"/\[(qat|QAT)\]/"
我尝试了以下网站的正则表达式here https://regex101.com/r/cO8lqs/6这验证了我的要求,但它在 gitlab-ci.yml 文件中不起作用。
您可以使用
# Deploy to QAT environment
deploy-qat:
stage: deploy
extends: .helm_deploy
environment:
name: qat
tags:
- exe-prd
rules:
- if: $CI_COMMIT_MESSAGE =~ /\[(QAT|qat)]/
when: always
有关如何格式化正则表达式匹配条件的更多信息,请参见rules:variables https://docs.gitlab.com/ee/ci/yaml/#common-if-clauses-for-rules参考页。
NOTES:
-
/\[(QAT|qat)]/
不应放在引号内
- 你需要使用
/.../
正则表达式文字语法(反斜杠是正则表达式分隔符)
-
\[(QAT|qat)]
是一个匹配的正则表达式[
,那么要么QAT
or qat
,然后是一个]
char
-
=~
是一个正则表达式匹配运算符。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)