如何通过BitBucket Webhook触发Jenkins合并master分支时执行Groovy流水线集成测试?
使用Jenkins Groovy流水线实现PR合并到Master时自动运行集成测试
核心思路
通过解析BitBucket Webhook传递的事件信息,在Groovy流水线脚本中判断是否为PR合并到master分支的事件,满足条件时自动触发集成测试。
必备前提
- 已配置BitBucket Webhook指向Jenkins
- Jenkins安装
Generic Webhook Trigger插件(用于解析Webhook的JSON payload)
Groovy流水线脚本示例
pipeline { agent any triggers { // 配置Generic触发器,解析BitBucket Webhook的关键信息 GenericTrigger( genericVariables: [ // 提取Webhook事件类型(PR合并事件为pullrequest:fulfilled) [key: 'BITBUCKET_EVENT', value: '$.eventKey'], // 提取PR的目标分支名称 [key: 'TARGET_BRANCH', value: '$.pullRequest.toRef.displayId'] ], // 与BitBucket Webhook配置的token保持一致 token: 'your-webhook-token', printContributedVariables: true, printPostContent: true ) } stages { stage('拉取代码') { steps { // 拉取master分支最新代码(PR合并后已同步) git url: '你的BitBucket仓库地址', branch: 'master' } } stage('运行集成测试') { // 仅当PR合并到master时执行此阶段 when { expression { env.BITBUCKET_EVENT == 'pullrequest:fulfilled' && env.TARGET_BRANCH == 'master' } } steps { // 替换为你的实际集成测试命令 sh './run-integration-tests.sh' // 示例:Maven项目可使用 sh 'mvn verify' } } } post { success { echo 'PR合并到master后,集成测试执行成功!' } failure { echo 'PR合并到master后,集成测试执行失败!' } } }
关键说明
- Webhook配置:BitBucket的Webhook Payload URL需指向
http://你的Jenkins地址/generic-webhook-trigger/invoke?token=your-webhook-token,确保token与脚本中一致。 - 事件判断:BitBucket中PR合并完成时触发的事件Key为
pullrequest:fulfilled,通过此值可精准识别合并动作。 - 分支校验:通过
TARGET_BRANCH变量确认合并目标为master分支,避免其他分支的PR合并触发测试。
内容的提问来源于stack exchange,提问作者Gaj Julije
相关产品推荐
相关产品推荐

