Java Jenkins:Gerrit触发器问题的设置

Java Jenkins:Gerrit触发器问题的设置,java,jenkins,gerrit,Java,Jenkins,Gerrit,我已经在Jenkins上安装了插件Gerrit Trigger,因为当团队中的开发人员在存储库上推送某个东西(相对于特定项目)时,我需要自动启动构建。我遵循了这里的设置: 测试连接正常。不管怎样,当有东西被推动时,建筑不会“触发”。我唯一能看到的是: 在“管理Jenkins”->下,与Gerrit的连接已断开!检查您的设置和Gerrit服务器 有什么想法吗 谢谢 随机化 顺便说一句,我得到了这个: 顺便说一句,我得到了这个命令:“git fetch-tgit@github.com:某处/MyP

我已经在Jenkins上安装了插件Gerrit Trigger,因为当团队中的开发人员在存储库上推送某个东西(相对于特定项目)时,我需要自动启动构建。我遵循了这里的设置:

测试连接正常。不管怎样,当有东西被推动时,建筑不会“触发”。我唯一能看到的是:

在“管理Jenkins”->下,与Gerrit的连接已断开!检查您的设置和Gerrit服务器

有什么想法吗

谢谢

随机化

顺便说一句,我得到了这个:

顺便说一句,我得到了这个命令:“git fetch-tgit@github.com:某处/MyProject.git$GERRIT\u REFSPEC“返回状态代码128:致命:找不到远程引用$GERRIT\u REFSPEC” 致命:远程端意外挂起

 ERROR: Could not fetch from any repository
 FATAL: Could not fetch from any repository
 hudson.plugins.git.GitException: Could not fetch from any repository
at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:1008)
at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:968)
at hudson.FilePath.act(FilePath.java:758)
at hudson.FilePath.act(FilePath.java:740)
at hudson.plugins.git.GitSCM.checkout(GitSCM.java:968)
at hudson.model.AbstractProject.checkout(AbstractProject.java:1184)
at hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.java:537)
at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:425)
at hudson.model.Run.run(Run.java:1376)

这不适用于Gerrit触发器,因为没有设置变量$Gerrit_REFSPEC。如果您想从Gerrit手动触发变更集,则必须使用“查询并触发Gerrit补丁”。在那里,您可以搜索Gerrit中打开的更改并构建它们


您还应该注意,只有将更改推送到Gerrit中的审阅分支(例如refs/for/reference)时,才会触发生成。如果因为不想进行代码审查而直接推送到分支(例如refs/heads/master),Gerrit触发器将不起作用。您必须使用一个Gerrit钩子,该钩子调用启动构建的URL,或者让构建作业轮询您的Git存储库。

Gerrit插件页面上描述了一个技巧:

通常,当您将作业配置为由Gerrit触发时,您就不能再使用“Build Now”链接,因为您的构建依赖于Gerrit提供的信息,特别是当您使用Git插件在工作区中签出代码时

例如,如果您希望在某个时候使用相同的作业来构建主分支,则可以绕过此限制。如果您正在使用Git插件,请执行以下操作

添加名为
GERRIT\u REFSPEC
的字符串参数,默认值为
refs/heads/master


使用此技巧将使您能够构建,但不会向Gerrit发送结果,因为tit不是由它触发的。

您需要从jenkin>>Gerrit trigger>单击状态图标启动Gerrit服务器。

在我们的情况下,我们必须重新启动jenkins服务。这看起来是gerrit trigger插件的一个bug(我们在2.27.5上)

我在上面的链接中配置了…/gerrit trigger。然后在“job/MyProject/configure”中,我在“Git”选项$GERRIT_REFSPEC下的“源代码管理”中设置了这个变量(尽管我不知道这个变量在哪里设置以及默认设置方式)。在选项:Gerrit Trigger下,我添加了带有“Pattern:Plain:*”的“Plain:MyProject”$Gerrit_REFSPEC由Gerrit Trigger设置,带有构建的变更的REFSPEC。当您出现错误时,是否使用“立即构建”按钮自行开始构建?是的。由于“自动”构建没有启动,我尝试了手动启动。您如何解决配置问题?我也遇到了它,我无法保存对gerrit的更改。您知道在哪里设置变量“gerrit\u REFSPEC”?您必须将字符串“$gerrit\u REFSPEC”插入Jenkins作业的Git Repository配置中的字段REFSPEC中。变量的值将由Gerrit触发器自动设置。据我所知,Kane提出的问题是根据Gerrit触发器的文档设置build now功能。这不是关于refspec,而是关于job configure中的build parameters(“这个build是参数化的”)部分。这个答案并没有真正解决Gerrit触发器的根本问题,没有正确地与Gerrit对话,而“Test Connection”给出了“Success”。尽管这听起来很简单,但实际上这是一个很好的解决方案。单击状态图标使插件与gerrit服务器建立新连接,这类似于“重新启动计算机”。