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

如何在Jenkins中用Groovy脚本从refs/heads/cli_test提取分支名cli_test

在Jenkins Generic Webhook中仅触发提交事件并提取分支名

一、配置仅提交事件触发Webhook

  1. Git平台端设置:在你的Git仓库Webhook配置里,只勾选推送push(提交)事件,拒绝PR、issue等其他类型事件的推送,避免无效触发。
  2. Jenkins端过滤:在Generic Webhook Trigger插件配置页的「Filter」区域添加规则:
    • 如果Webhook JSON包含event字段且提交事件对应值为push,可设置「Expression」为push,「Text」为${event}(需先在「Post content parameters」中提取event字段)。
    • 也可通过分支引用格式过滤,设置「Expression」为refs/heads/.+,「Text」为${ref},确保只有分支提交的引用能触发构建。

二、用Groovy脚本提取分支名

分支引用格式固定为refs/heads/<分支名>,以下两种Groovy方案均可提取分支名:

方式1:字符串分割法

// ${ref}是从Webhook提取的分支引用变量,需先在Generic Webhook中配置提取
def ref = "${ref}"
def branchName = ref.split('/')[2]
// 将分支名存入环境变量,供后续构建步骤调用
env.BRANCH_NAME = branchName

方式2:正则匹配法(适配特殊分支名场景更健壮)

def ref = "${ref}"
def branchMatcher = ref =~ /refs\/heads\/(.+)/
if (branchMatcher.matches()) {
    def branchName = branchMatcher[0][1]
    env.BRANCH_NAME = branchName
}

三、Jenkins完整配置流程

  1. 在Generic Webhook的「Post content parameters」中添加参数:
    • 参数名:ref
    • JSON路径:$.ref(根据你的Webhook实际JSON结构调整路径)
  2. 在「Groovy script」区域填入上述提取代码,或者在Jenkins流水线中直接嵌入该逻辑。
  3. 保存配置后,提交代码到cli_test分支,验证Webhook触发并正确提取分支名。

内容的提问来源于stack exchange,提问作者vikraman arut

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 06:15:32