1簡(jiǎn)介
如果你想在gitlab中做一些操作后去觸發(fā)一些事情,比如打包棉浸,sonar掃描等民晒,本文介紹Jenkins如何接收gitlab的webhook。Jenkins接收Gitlab Hook有兩種插件棒搜,一個(gè)是叫Gitlab Plugin,另外一個(gè)叫Gitlab Hook Plugin。兩者的區(qū)別在于Gitlab Plugin不可以接收gitlab的參數(shù)活箕,而Gitlab Hook Plugin可以力麸。
2 Gitlab Plugin
1.首先在插件市場(chǎng)安裝插件Gitlab Hook Plugin
-
然后回到任務(wù)配置中,在構(gòu)建觸發(fā)器下面會(huì)多一條育韩,URL后面的地址就是在gitlab上配置的請(qǐng)求地址克蚂。
3.勾選這一條展開(kāi)之后,如下圖所示筋讨,可以配置接收什么樣的動(dòng)作埃叭。最后點(diǎn)擊保存,在gitlab上配置好地址就可以悉罕。
3.Gitlab Hook Plugin
1.同樣是到Jenkins的插件管理里面搜索Gitlab Hook Plugin并安裝赤屋。
2.然后回到任務(wù)配置中,在構(gòu)建觸發(fā)器下面會(huì)多一條
3.展開(kāi)之后有很多選項(xiàng)下面介紹一些常用的
第一塊如下圖壁袄。
第一行HTTP requests后面的地址是在gitlab創(chuàng)建webhook時(shí)添加的类早,中間JENKINS_URL是Jenkins的地址,注意不要后面的任務(wù)地址嗜逻,例如:http://localhost:8080/generic-webhook-trigger/invoke
第二行There are example configurations in the Git repository.后面鏈接是一些例子涩僻,里面有g(shù)ithub,gitlab各種情況的數(shù)據(jù)返回,如何接參數(shù)。
再往下就是配置需要接收的參數(shù)逆日。
*variable 是起一個(gè)變量名
*Expression 是傳過(guò)來(lái)的參數(shù)值恼琼,大概的格式為
*SONPath是解析json,Xpath解析xml蛙卤,數(shù)據(jù)格式是啥就選啥狠半。
*Value filter 是正則過(guò)濾
*Default value 默認(rèn)值
解析好的變量如何使用請(qǐng)查看:Jenkins配置git源碼管理
這兩個(gè)是用來(lái)配置token的,如果配置了token之后颤难,在請(qǐng)求時(shí)需要攜帶神年,使用方式下面也寫(xiě)了。
*第一個(gè)是打印gitlab發(fā)過(guò)來(lái)的數(shù)據(jù)
*第二個(gè)是打印上面配置的接收參數(shù)
兩個(gè)都會(huì)在任務(wù)執(zhí)行的時(shí)候打印到控制臺(tái)
最后這個(gè)是用來(lái)過(guò)濾什么樣的請(qǐng)求可以觸發(fā)當(dāng)前認(rèn)為
*Expression是填正則
*Text填接收的某個(gè)參數(shù)值
例如可以過(guò)濾某個(gè)人提交的代碼行嗤,或者過(guò)濾是某個(gè)分支已日。圖中的例子代表當(dāng)mergeRequestState=opened的時(shí)候才會(huì)觸發(fā)當(dāng)前任務(wù),其中mergeRequestState是上面定義的接收傳過(guò)來(lái)參數(shù)的變量名栅屏。