GitLab流水线触发规则中正则表达式的技术咨询
GitLab CI触发规则表达式解析
这串代码不是YAML的特殊语法,是GitLab CI专门用来判断流水线是否触发的条件表达式——核心是设定流水线启动的门槛,不是给CI_COMMIT_REF_NAME赋值。
表达式拆解与含义
完整表达式:$CI_COMMIT_REF_NAME =~ /^[Ff].*$/ && ($CI_PIPELINE_SOURCE == "push" || $CI_PIPELINE_SOURCE == "web")
它由两个大条件通过&&(逻辑与)连接,必须同时满足才会触发流水线:
1. 分支/标签名匹配规则:$CI_COMMIT_REF_NAME =~ /^[Ff].*$/
$CI_COMMIT_REF_NAME:GitLab预定义变量,指代当前提交对应的分支名或标签名=~:GitLab CI的正则匹配运算符,用来检查变量值是否符合后面的正则规则/^[Ff].*$/:正则表达式,意思是字符串必须以大写F或小写f开头,后面可以跟任意内容(包括空)
2. 触发来源规则:($CI_PIPELINE_SOURCE == "push" || $CI_PIPELINE_SOURCE == "web")
$CI_PIPELINE_SOURCE:GitLab预定义变量,指代流水线的触发方式==:相等判断,检查变量值是否等于指定字符串||:逻辑或,满足其中一个条件即可
这部分要求流水线必须是以下两种方式之一触发:push:代码推送到仓库时自动触发web:在GitLab网页上手动点击触发
整体作用逻辑
只有同时满足「当前分支/标签名以F或f开头」和「流水线由代码推送或网页手动触发」这两个条件时,这条规则对应的流水线任务才会启动。
内容的提问来源于stack exchange,提问作者S J
相关产品推荐
相关产品推荐

