You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 12:27:37