我試圖使用gerrit和jenkins來設置CI進程。我已經成功配置了jenkins來觸發構建gerrit事件,並且在這個前沿上一切正常,我可以在jenkins日誌中看到構建成功。我遇到的問題是試圖將構建結果發送回gerrit。我已經設置了格里特集成「生成後行動」,和所有的領域看起來是正確的,但是當我做構建我得到這個堆棧跟蹤:Jenkins在嘗試傳播到Gerrit服務器時出現錯誤
ERROR: Publisher hudson.plugins.gerrit.GerritNotifier aborted due to exception
java.lang.IllegalArgumentException: Failed to find GIT_HOME in /var/lib/jenkins/jobs/jake/workspace/.git
at hudson.plugins.gerrit.git.GitTools.getHead(GitTools.java:45)
at hudson.plugins.gerrit.GerritNotifier$1.invoke(GerritNotifier.java:180)
at hudson.plugins.gerrit.GerritNotifier$1.invoke(GerritNotifier.java:171)
at hudson.FilePath.act(FilePath.java:914)
at hudson.FilePath.act(FilePath.java:887)
at hudson.plugins.gerrit.GerritNotifier.perform(GerritNotifier.java:171)
at hudson.tasks.BuildStepMonitor$3.perform(BuildStepMonitor.java:45)
at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:744)
at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:714)
at hudson.model.Build$BuildExecution.post2(Build.java:182)
at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:663)
at hudson.model.Run.execute(Run.java:1714)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
at hudson.model.ResourceController.execute(ResourceController.java:88)
at hudson.model.Executor.run(Executor.java:231)
Finished: FAILURE
我已經把在命令中構建過程來檢查文件系統,是的,我絕對沒有一個.git目錄。 (我有一個/var/.../workspace/.repo/repo/.git,但將它鏈接到/var/.../workspace/.git不起作用,雖然它給出了一個不同的錯誤,我希望我已經保存了,如果它有幫助,我可以重新運行)
所以我的問題是:我應該如何配置jenkins作業以正確連接到gerrit服務器? (我沒有方便地訪問gerrit服務器,但我的操作假設事情是在那裏設置的,因爲(a)jenkins正確地從中獲取數據,(b)錯誤不會不看所有像連接錯誤)
編輯:最佳的事情將是詹金斯設置+ 1/-1在驗證選項,取決於生成的結果,但即使它可以離開一個一個鏈接到每次運行時查看頁面上發表評論,這將是至少的東西...
編輯2:在HIB的建議,我切換到git的插件,並得到了該堆棧跟蹤:
FATAL: org.eclipse.jgit.lib.Repository
java.lang.InstantiationError: org.eclipse.jgit.lib.Repository
at hudson.plugins.gerrit.git.GitTools.getRepository(GitTools.java:24)
at hudson.plugins.gerrit.git.GitTools.getHead(GitTools.java:48)
at hudson.plugins.gerrit.GerritNotifier$1.invoke(GerritNotifier.java:180)
at hudson.plugins.gerrit.GerritNotifier$1.invoke(GerritNotifier.java:171)
at hudson.FilePath.act(FilePath.java:914)
at hudson.FilePath.act(FilePath.java:887)
at hudson.plugins.gerrit.GerritNotifier.perform(GerritNotifier.java:171)
at hudson.tasks.BuildStepMonitor$3.perform(BuildStepMonitor.java:45)
at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:744)
at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:714)
at hudson.model.Build$BuildExecution.post2(Build.java:182)
at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:663)
at hudson.model.Run.execute(Run.java:1714)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
at hudson.model.ResourceController.execute(ResourceController.java:88)
at hudson.model.Executor.run(Executor.java:231)
(甚至沒有「已完成:失敗」警告)
刪除在生成後行動的結果「說完:SUCCESS」,但什麼也沒有顯示在格里特起來。
可以請給出有關gerrit觸發器高級設置的截圖嗎?順便說一句,如果你不使用git插件的話。 – HiB
也請添加應該以「Gerrit觸發」作業開始的作業輸出,然後是更改鏈接。順便說一句 - 你使用[這個插件](https://wiki.jenkins-ci.org/display/JENKINS/Gerrit+Trigger)? – HiB
這裏是工作輸出:https://gist.github.com/kesinger/16e7b3a9c3c243df79a9 – JCK