2016-01-27 75 views
0

是否有配置Jenkins和GitBlit的方法,以便在新代码被推送到git时自动运行构建?Jenkins和GitBlit的集成

我听说过在GitBlit中使用hook和post-jenknkins脚本,并在Jenkins中配置'Poll SCM',但也许还有更多高级配置?

非常感谢。

回答

2

有两种方法可以使用Jenkins和GitBlit来构建代码。首先是让詹金斯调查你的SCM(在这种情况下是GitBlit),然后在Gitblit中设置一个post-receive钩子。

Polling GitBlit for changes是最简单的设置,但在Jenkins运行的服务器上有额外的开销。基本前提是詹金斯将克隆你的回购,并与之前的克隆进行比较以寻找变化。如果有差异,它会触发构建。有了许多工作和多个仓库,这可能会真正为您的詹金斯服务器和可能的gitblit服务器征税。要进行设置,只需选中Poll SCM框并选择一个时间表。日程安排字段使用cron语法并单击?旁边的领域将为您提供一个例子。

设置post-receive钩子比较复杂,但为您提供了真正的构建 - 提交语义。现在有两种方法可以在Jenkins,Remote Trigger中使用或使用Gitblit的jenkins钩子。远程触发器要求您为每个作业创建一个令牌,然后将其发送到作业。由于此令牌特定于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添加到其后接收挂钩列表中。