簡體   English   中英

如何讓Jenkins Gerrit Trigger忽略我的CI用戶的提交?

[英]How can I get Jenkins Gerrit Trigger to ignore my CI user's commits?

我希望我的代碼審查工作忽略來自其他Jenkins工作的更改,例如我的發布工作。 這些提交可以通過提交用戶(首選)或提交注釋字符串(也可接受)來標識。

基本上我遇到的問題是, 如果提交消息以給定字符串開頭 ,請求忽略Jenkins作業的用戶,除了我沒有使用帶輪詢的Git插件。 相反,我正在使用Gerrit Trigger插件 ,它會在每個新的更改集上觸發。

我相信下面的截圖包含了GT插件的相關配置。

我在網上搜索過,但我找不到如何做到這一點。 我找到了Git插件的這種配置,但我不能使用它,因為我們使用Gerrit,所以我們需要預先提交變更集觸發而不是輪詢。

觸發“Patchset Created”,“Draft published”

Gerrit Trigger提供了一組變量,您可以在其中找到提交者的名稱,提交消息等。我正在使用的解決方案是測試這些變量的值,並在測試通過時結束構建作業。 但是如果您使用的是Jenkins V2.3或更高版本,可能會出現問題。 有些變量無法通過$ in shell訪問。 您可以參考Jenkins V2.3發行說明來解決此問題。 您可以向Gerrit event右側按問號以查看變量列表。

一種建議的方法是使用“ci skip”插件

我設置了我的發布作業,在其提交消息中包含[ci skip]。

使用它時我發現它實際上仍然觸發了構建。 但是,在檢查我們的提交之后,構建將退出為“Not Built”。 這意味着構建仍然使我的構建歷史變得混亂,並且它仍然消耗資源來獲取和轉發等等,因此對我來說這是一個不太優選的解決方案。

雖然這解決了我的直接問題,但我很樂意接受其他答案,因為我對這個問題並不完全滿意。

實際上,您可以在Gerrit主題配置中使用正則表達式模式跳過作業執行。

例如,您可能不允許觸發更改哪個主題具有WIP字的作業。 這可以使用以下正則表達式^((?!WIP).)*$

以下是如何在我們的管道中實現觸發器的示例

Gerrit觸發器配置:

在此輸入圖像描述

希望它會有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM