GitLab Job正则需求:匹配所有以release/开头的分支
GitLab作业分支匹配正则修正方案
你当前的规则失效是因为正则表达式存在两个语法错误:
- 正则闭合符号错误:用了单引号
'结尾,GitLab的正则需要用斜杠/首尾包裹 - 正则内容不完整:只匹配了
release开头,没包含必须的斜杠/以及分支名后续内容
正确的正则表达式
要匹配所有以release/开头的分支,应该使用:
/^release\/.*/
^:匹配字符串开头release\/:匹配字面量release/(斜杠需要转义).*:匹配任意长度的任意字符(覆盖分支名后续的所有可能内容)
修正后的完整作业规则
myjob: image: mycustomimage stage: mystage rules: - if: $CI_COMMIT_BRANCH == "master" when: never - if: $CI_COMMIT_BRANCH == "dev" when: never - if: $CI_COMMIT_BRANCH =~ /^release\/.*/
如果需要更严格的匹配(比如只允许数字、版本号格式或小写字母),可以调整正则,例如:
- 匹配版本号格式(如release/v1.2.3):
/^release\/v?\d+(\.\d+)*$/ - 匹配小写字母加数字:
/^release\/[a-z0-9]+$/
内容的提问来源于stack exchange,提问作者Ivan
相关产品推荐
相关产品推荐

