Webhooks
在GitLab的項目中,通常會使用Webhook的各種事件來觸發(fā)對應(yīng)的構(gòu)建假抄,通常配置好后會向設(shè)定好的url發(fā)送post請求怎栽。
與Jenkins的集成
jenkins 插件
Build Triggers
配置build trigger,:拷貝 webhook url,token丽猬,配置webhook
填上相應(yīng)的值。
測試,相應(yīng)的jenkins job 會被執(zhí)行
測試通過熏瞄,會看到 http請求返回200脚祟;
查看webhook request:
在edit里面我們可以查詢到最近的trigger,看到完整的Request details,在這里的我們可以拿到想要的值用在pipeline里面
這里的插件已經(jīng)有封裝好的暴露在外的可用變量,這些的變量可以在pipeline中使用强饮,
echo env.gitlabMergeRequestIid
echo env.gitlabMergeDescription
echo gitlabMergeRequestLastCommit
Generic Webhook Trigger
這里可以選擇你需要配置的參數(shù)由桌。
具體的jenkins pipeline
triggers {
GenericTrigger(
genericVariables: [
[key: 'REF', value: '$.ref'],
[key: 'COMMIT', value: '$.after'],
],
genericHeaderVariables: [
[key: 'X-GitLab-Event']
],
causeString: "Triggered by pushing to $ref",
token: 'att',
printContributedVariables: true,
printPostContent: true,
regexpFilterText: '$x_gitlab_event on $REF',
regexpFilterExpression: '^Push Hook\\son\\srefs/heads/master'
)
常用 events
Merge Requests Events:當(dāng)一個merge request被創(chuàng)建,更新或者merged; 使用場景胡陪,當(dāng)有開發(fā)提交一個mr后通過這個事件觸發(fā)相應(yīng)的測試沥寥,比如UT/IT,只有當(dāng)測試通過了才允許merged。
Push Events: 當(dāng)有代碼push到repo柠座,這里可以設(shè)置具體的branch邑雅;使用場景,基于master發(fā)布的流程妈经,可以通過push事件去構(gòu)建對應(yīng)的測試環(huán)境
Tag Push Events: 當(dāng)有新的tag push到repo淮野,使用場景,可以通過tag去發(fā)布regression stage production環(huán)境
Comments: 當(dāng)添加一些Comment