記錄一次Jekins Gerrit trigger搭建過(guò)程。
目的
通過(guò)gerrit+jekins構(gòu)建CI環(huán)境,簡(jiǎn)單點(diǎn)說(shuō)就是gerrit來(lái)code review,同時(shí)代碼提交的時(shí)候觸發(fā)jekins任務(wù)進(jìn)行verify。
條件準(zhǔn)備
獲取gerrit的權(quán)限
1.在gerrit的前端頁(yè)面上位Jekinsy用戶創(chuàng)建profile,設(shè)置ssh key
2.Gerrit web interface > Admin > Groups > Non-Interactive Users > Add your jenkins user.
3.Admin > Projects > …? > Access > Edit
Reference: refs/*
Read: ALLOW for Non-Interactive Users
Reference: refs/heads/*
Label Code-Review: -1, +1 for Non-Interactive Users
Label Verified: -1, +1 for Non-Interactive Users
Jekins管理員設(shè)置
通過(guò) "Manage Jenkins > Gerrit Trigger" 設(shè)置gerrit server:

點(diǎn)擊test connetciton測(cè)試連接,之后保存設(shè)置重啟連接

觸發(fā)設(shè)置
在job的配置頁(yè)面的Build Triggers部分,選擇gerrit event:

選擇觸發(fā)事件:
- Draft Published:當(dāng)更改從草稿狀態(tài)變?yōu)樾聽(tīng)顟B(tài)時(shí)發(fā)送。(僅在2.5版或更高版本的Gerrit中可用)。
- Patchset Created:當(dāng)新補(bǔ)丁集到達(dá)更改時(shí)發(fā)送。在版本2.6.0之前,這是您可以觸發(fā)的唯一事件。
- Change Merged:在Gerrit服務(wù)器上合并更改時(shí)發(fā)送。
- Comment Added:在添加評(píng)論到更改時(shí)發(fā)送??梢耘渲靡|發(fā)的類(lèi)別和值??梢栽诓寮姆?wù)器設(shè)置中配置可用類(lèi)別。
- Ref Updated:當(dāng)Gerrit服務(wù)器上的引用更新時(shí)發(fā)送,即有人推送過(guò)去的代碼審閱。
不選的話默認(rèn)是Patchset Created、d Draft Published
選擇gerrit項(xiàng)目作為觸發(fā)項(xiàng):
至少需要指定一個(gè)項(xiàng)目和分支模式才能觸發(fā)生成,可以根據(jù)需要指定任意數(shù)量的Gerrit項(xiàng)目來(lái)觸發(fā)。
首先在左側(cè)文本字段中指定Gerrit項(xiàng)目的名稱(chēng)。
可以通過(guò)“類(lèi)型”(Type)下拉菜單提供的三種不同方式指定名稱(chēng)模式。
然后提供要觸發(fā)的分支的名稱(chēng)。與上述相同的“樣式類(lèi)型”可用。
因此,例如要觸發(fā)項(xiàng)目中的所有分支,可以指定:
類(lèi)型:路徑
模式:**
可以通過(guò)單擊“添加分支”來(lái)添加更多分支模式,并通過(guò)單擊“添加項(xiàng)目”來(lái)添加更多項(xiàng)目。
相同的語(yǔ)法可用于指定要在哪個(gè)文件上觸發(fā)(僅在Gerrit 2.3或更高版本中可用)。
動(dòng)態(tài)觸發(fā)
從插件的2.6.0版本開(kāi)始,提供了一種新的方式來(lái)配置要觸發(fā)的項(xiàng)目,分支和文件。
在設(shè)定的時(shí)間間隔內(nèi),插件會(huì)獲取并解析此文件。文件內(nèi)容應(yīng)遵循以下語(yǔ)法:
p=some/project
b^**/master/*
f~.*\.txt
p=some/other/project
b^**
說(shuō)明:
p用于項(xiàng)目
b用于分支
f用于文件
=用于普通語(yǔ)法
^用于ANT樣式語(yǔ)法
?用于regexp語(yǔ)法
假定分支和文件行是最接近的前一個(gè)項(xiàng)目行的一部分。
動(dòng)態(tài)觸發(fā)可以與上述常規(guī)配置結(jié)合使用。Gerrit觸發(fā)器將觸發(fā)動(dòng)態(tài)和非動(dòng)態(tài)配置。
Jenkins提取文件的時(shí)間間隔可以在Gerrit觸發(fā)器的管理頁(yè)面中配置“”