2014-06-12 50 views
4

背景

我的git存儲庫由Gerrit服務器託管。我們還使用Jenkins以及Gerrit Event和Git Plugin來引發自動jenkins作業,當審查推送到Gerrit時。如何配置Jenkins Gerrit觸發器事件以排除文件路徑?

說出混帳回購協議有以下文件夾結構

ProjectA 
    - .git 
    - folderA 
    - folderA/folderA1 
    - folderA/manual_tests 
    - folderA/manual_tests/file1 
    - folderB 
    - folderB/folderB1 
    - folderB/manual_tests/file2 
    - folderC 
    - folderC/folderC1 
    - folderC/manual_tests/file3 
    - folderD 
    - folderD/folderD1 
    - folderD/folderD1/FolderD11 
    - folderD/folderD1/FolderD11/manual_tests/file4 
    - folderD/folderD1/FolderD12 
    - folderD/folderD2 

目前,詹金斯的工作被定義爲通過指定Path類型與模式**所有分支上運行。此配置會導致作業在每次審閱時運行。

的問題

這裏就是我試圖完成:

  • 如果代碼審查只包含任何manual_tests文件夾中所做的更改,我不想詹金斯的工作來觸發。
  • 如果回顧至少包含至少一個文件/文件夾不是manual_tests,觸發器的工作

我嘗試添加一個File PathRegExp類型與(?!.*manual_tests.*).*的模式,但這並沒有達到我的目的目標。我嘗試了各種正則表達式模式,但我從來沒有達到最終目標。

如果gerrit評論僅包含manual_tests文件夾中的更改,是否可以不觸發Jenkins作業?

+0

你嘗試過這種格式在這裏解釋呢? http://stackoverflow.com/a/5334825/1342413 – HiB

回答

1

表格下方的Add Topic顯示了這樣的功能。

screen shot from Gerrit

幫助文本解釋:

然後你就可以選擇性地提供特定的文件路徑(S)和主題名稱的名稱觸發。

  • 僅在補丁集包含某個文件夾中的文件時觸發構建。
  • 僅當更改屬於主題時才觸發構建。
+2

這只是一個包含,但有時您需要從包含的路徑中排除某些內容。 –

0

的竅門能讓工作就是COMMIT_MSG文件必須在正則表達式可以省略爲好。

這個bug報告描述的問題和解決方法:https://issues.jenkins-ci.org/browse/JENKINS-19891

的解決方法是簡單地使用下面的正則表達式模式:

^((?!manual_tests|\/COMMIT_MSG).)*$ 
相關問題