You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何通过Webhooks让Jenkins的Bitbucket插件获取BRANCH_NAME

嘿,我来帮你一步步搞定这个配置,让Jenkins能精准从Bitbucket的Webhook里拿到更新的分支名,自动拉取对应分支的最新代码:

第一步:配置Bitbucket侧的Webhook

先把Bitbucket这边的通知通道搭好:

  • 打开你的Bitbucket仓库,进入设置 > Webhooks菜单
  • 点击「创建Webhook」,填写关键信息:
    • 名称:随便起个好记的,比如「Jenkins代码推送触发」
    • URL:填Jenkins任务的触发地址,格式是 http://<你的Jenkins服务器地址>/job/<你的任务名称>/buildWithParameters?token=<自定义安全令牌>,比如http://jenkins.example.com/job/MyProject/buildWithParameters?token=MY_BUILD_TOKEN(这个令牌后面Jenkins要对应上,别漏了)
    • 触发事件:只勾选仓库推送就行,这样只有代码推送到分支时才会通知Jenkins
    • 确认Webhook处于启用状态,点击保存
第二步:配置Jenkins任务(对应你提供的任务设置界面)

首先确保Jenkins已经安装了Bitbucket PluginGeneric Webhook Trigger Plugin(前者用来对接Bitbucket,后者用来解析Webhook里的分支参数),然后按以下步骤配置:

  1. 进入你的Jenkins任务的「配置」页面
  2. 开启参数化构建过程,添加一个字符串参数
    • 参数名称:设为BRANCH_NAME(这个名字要和后面的参数解析对应,别乱改)
    • 默认值:可以填你的主分支名,比如main,方便手动测试
  3. 找到构建触发器区域,勾选「Generic Webhook Trigger」,然后做这些配置:
    • 在「Post content parameters」里添加一条参数:
      • 变量名:BRANCH_NAME
      • 表达式:$.push.changes[0].new.name(这是Bitbucket推送Webhook时,分支名在JSON payload里的路径,精准对应分支名称)
    • 可选:勾选「Print post content」,方便调试时查看Webhook的完整内容(测试完可以关掉)
    • 填写「Token」:和刚才Bitbucket Webhook里的<自定义安全令牌>完全一致,比如MY_BUILD_TOKEN,用来验证请求合法性
  4. 配置源码管理部分:
    • 选择Git,填写你的Bitbucket仓库URL
    • 在「分支说明」里填写 */${BRANCH_NAME},这样Jenkins就会根据参数拉取对应的分支代码
    • 按需配置其他Git选项,比如拉取策略、删除旧构建等
  5. 保存Jenkins任务配置
第三步:测试验证
  • 向Bitbucket的branch-1推送一个新提交
  • 回到Jenkins,看任务是否自动触发,然后查看构建日志,确认拉取的是branch-1的最新代码
  • 如果没触发,先检查Bitbucket Webhook的URL是否正确、令牌是否匹配,也可以用Bitbucket的Webhook测试功能发送测试请求,看Jenkins日志里是否成功解析到BRANCH_NAME参数

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

火山引擎 最新活动