【问题标题】:Jenkins: settings for Gerrit Trigger problemsJenkins:Gerrit 触发器问题的设置
【发布时间】:2011-09-28 11:12:49
【问题描述】:

我已经在 J​​enkins 上安装了 Gerrit Trigger 插件,因为当团队中的开发人员在存储库中推送某些内容(相对于特定项目)时,我需要自动开始构建。我按照这里的设置:

https://wiki.jenkins-ci.org/display/JENKINS/Gerrit+Trigger

测试连接正常。无论如何,当某物被推动时,建筑物不会“触发”。我唯一能看到的是:

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

有什么想法吗?

谢谢

随机化

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

顺便说一句,我得到了这个:命令“git fetch -t git@github.com:somewhere/MyProject.git $GERRIT_REFSPEC”返回状态代码 128:致命:找不到远程参考 $GERRIT_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-trigger。然后在“job/MyProject/configure”中,我在“Git”选项 $GERRIT_REFSPEC 下的“Source Code Management”中设置(虽然我不知道这个变量在哪里设置以及如何设置默认值)。在选项下: Gerrit Trigger 我添加了“Plain:MyProject”和“Pattern:Plain:**”
  • $GERRIT_REFSPEC 由 Gerrit 触发器设置,并带有已构建的更改的 refspec。当您遇到该错误时,您是否使用“立即构建”按钮自行开始构建?
  • 是的。由于“自动”构建没有开始,我尝试手动启动。
  • 如何解决配置问题?我也遇到了,我无法为 gerrit 保存我的更改。

标签: java jenkins gerrit


【解决方案1】:

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

通常,当您将作业配置为由 Gerrit 触发时,您将无法再使用“立即构建”链接,因为您的构建依赖于来自 Gerrit 的信息,尤其是当您使用 Git 插件签出代码时工作区。

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

添加一个名为GERRIT_REFSPEC的字符串参数,默认值为refs/heads/master

使用此技巧可以构建,但不会向 Gerrit 发送任何结果,因为它不会触发 tit。

【讨论】:

  • 这个答案并没有真正解决 Gerrit Trigger 无法正确与 Gerrit 对话的根本问题,而“测试连接”给出“成功”。
【解决方案2】:

这不适用于 Gerrit 触发器,因为没有设置变量 $GERRIT_REFSPEC。如果你想从 Gerrit 手动触发变更集,你必须使用“Query and Trigger Gerrit Patches”。在那里,您可以在 Gerrit 中搜索未完成的更改并构建它们。

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

【讨论】:

  • 你知道在哪里设置变量'GERRIT_REFSPEC'吗?
  • 您必须将字符串 '$GERRIT_REFSPEC' 插入到 Jenkins 作业的 Git 存储库配置中的字段 refspec 中。然后 Gerrit 触发器会自动设置变量的值。
  • 据我了解,Kane 提出的问题是关于根据 gerrit 触发器的文档设置立即构建功能。这不是关于 refspec,而是关于作业配置中的构建参数(“这个构建是参数化的”)部分
【解决方案3】:

在我们的例子中,我们必须重新启动 jenkins 服务。这看起来是 gerrit 触发器插件的错误(我们在 2.27.5)

【讨论】:

    【解决方案4】:

    你需要从jenkin启动gerrit服务器>> gerrit trigger> 点击状态图标。

    【讨论】:

    • 虽然这听起来很简单,但这实际上是一个很好的解决方案。单击状态图标会使插件与 gerrit 服务器建立新连接,这类似于“重新启动计算机”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-26
    • 2021-06-05
    • 2011-08-06
    • 2012-02-28
    • 1970-01-01
    • 2011-05-19
    • 2011-03-17
    相关资源
    最近更新 更多