我试图使用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