Git

我希望 Jenkins 在 Gerrit 中上傳或更改更新檔集時觸發建構。我該如何配置呢?

  • July 24, 2017

我正在使用 Jenkins 1.557 來觀察 Gerrit 2.8 實例的變化。我正在使用以下外掛:

  • Git 外掛 2.1.0
  • Git 客戶端外掛 1.7.0
  • 格里特觸發器 2.11.1

當我在 Gerrit 觸發器上使用“測試連接”時,它返回成功,所以我知道憑據正在工作。我在“高級”按鈕下使用預設值。

對於我的測試建構類型,我使用的是 Jenkins 簽出的 git repo(我添加了“ls -l”的建構後步驟,它正確顯示了 repo 內容)。我將建構觸發器設置為“gerrit event”,對於“gerrit trigger”,我選擇了“Check non-reviewed patchsets”,並啟用了“patchset created”觸發器。gerrit 項目設置似乎正確。

我無法通過上傳新更改或更改的新更新檔集來啟動建構。當我使用“查詢和触發 Gerrit 更新檔”按鈕手動觸發建構時,建構會發生,但不會記錄任何投票。我顯然錯過了部分難題 - 如果我 ssh 進入 gerrit 並執行“流事件”,我會看到我期望看到的事件。

Jenkins——權威指南——來自 O’Reilly 並沒有真正涵蓋 Gerrit。我試圖避免輪詢,因為這個 Jenkins 實例將管理數十個 git repos。

調試的下一步是什麼?

過去發生了一些變化,破壞了外掛:

  • Gerrit 2.8 刪除了已棄用的approve命令,該命令 AFAIK 破壞了外掛,請參閱討論發行說明。這已在 2.11.0-beta1 中修復,所以我想這對你來說不是這樣。
  • Gerrit 2.7 引入了流事件權限,預設情況下不允許使用者接收流事件,請參閱發行說明。很可能,您的 Jenkins 使用者沒有此訪問權限,因此在推送更改後不會觸發任何建構。

引用自:https://serverfault.com/questions/586267