上一篇:
使用Generic Webhook Trigger插件实现Jenkins+WebHooks(码云)持续集成
介绍了如何使用Jenkins通用插件Generic Webhook Trigger 来实现码云WebHooks持续集成,但是有一个问题就是,如果项目是多分支的情况下,每一个分支的提交都会触发Jenkins运行,这一点肯定是我们不想看到的,下边我们就解决一下这个问题。
知识背景
1、使用码云WebHooks进行持续集成的时候,我们首先应该明白,他的原理大致是这样的:当我们每一次提交代码到码云的时候,码云会帮我们发送一个关于Push的Post请求到我们的Jenkins服务器,然后Jenkins持续集成插件Generic Webhook Trigger会接收到请求的参数,对于码云平台,Push 的数据格式是这样子的:
{
"before": "fb32ef5812dc132ece716a05c50c7531c6dc1b4d",
"after": "ac63b9ba95191a1bf79d60bc262851a66c12cda1",
"ref": "refs/heads/master",
"user_name": "123",
"user": {
"email": "123@123.com",
"name": "123",
"time": "2016-12-09T17:28:02 08:00"
},
"repository": {
"name": "webhook",
"url": "http://git.oschina.net/oschina/webhook",
"description": "",
"homepage": "http://git.oschina.net/oschina/webhook"
},
"commits": [
{
"id": "ac63b9ba95191a1bf79d60bc262851a66c12cda1",
"message": "1234 bug fix",
"timestamp": "2016-12-09T17:28:02 08:00",
"url": "http://git.oschina.net/oschina/webhook/commit/ac63b9ba95191a1bf79d60bc262851a66c12cda1",
"author": {
"