【问题标题】:Integration of Jenkins and GitBlitJenkins 和 GitBlit 的集成
【发布时间】:2016-04-19 00:59:32
【问题描述】:

有没有办法配置 Jenkins 和 GitBlit,以便在将新代码推送到 git 时自动运行构建?

我听说过在 GitBlit 中使用 hook 和 post-jenkins 脚本并在 Jenkins 中配置“轮询 SCM”,但也许还有更复杂的配置?

非常感谢。

【问题讨论】:

    标签: git jenkins gitblit


    【解决方案1】:

    有两种方法可以使用 Jenkins 和 GitBlit 来构建您的代码。第一个是让 Jenkins 轮询您的 SCM(在本例中为 GitBlit)以进行更改,第二个是在 Gitblit 中设置一个接收后挂钩。

    轮询 GitBlit 以进行更改是最简单的设置,但会在运行 Jenkins 的服务器上带来额外的开销。基本前提是 Jenkins 将克隆您的 repo 并与之前的克隆进行比较以查找更改。如果存在差异,则会触发构建。由于有许多工作和多个存储库,这可能会对您的 jenkins 服务器以及 gitblit 服务器造成负担。要进行此设置,只需选中 Poll SCM 框并选择一个时间表。 schedule 字段使用 cron 语法并单击?字段旁边将为您提供示例。

    设置 post-receive 挂钩更复杂,但可以为您提供真正的 build-on-commit 语义。现在在 Jenkins 中有两种方法可以做到这一点,Remote Trigger 或者使用 Gitblit 的 jenkins hook。远程触发要求您为每个作业创建一个令牌,然后将其发送到该作业。由于此令牌特定于 Jenkins 正在构建的作业,因此您将为针对每个存储库运行的每个作业添加一个新的作业/令牌对。虽然这对 Jenkins 或 GitBlit 来说不是资源浪费,但确实会浪费您维护这些对的时间。

    GitBlit 的 jenkins 钩子很简单,您可以在全局范围内或在特定存储库中使用它。要启用此功能,请编辑 ${appserver.base}/groovy 中的 jenkins.groovy,其中 ${appserver.base} 是您在安装期间设置的位置。使用 Jenkins 服务器的 URL 编辑 def jenkinsUrl = gitblit.getString('groovy.jenkinsServer', 'http://your/jenkins/url') 行。你也可以在你的 gitblit.properties 文件中设置 groovy.jenkinsServer 。要强制所有存储库使用此挂钩脚本,请将其添加到 gitblit.properties 文件中的 groovy.postReceiveScripts 行。否则,在 GitBlit Web 应用程序中编辑您的存储库并将 jenkins 添加到其接收后挂钩列表中。

    【讨论】:

      猜你喜欢
      • 2015-07-01
      • 2019-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-12
      相关资源
      最近更新 更多