我已经在这个项目上工作了大约一个星期了,我一直在搜索2天没有任何明确的在线解释。 对于学校作业,我们需要使用以下程序设置构建服务器:
我们需要创建3个职位,其中1个职位是:
每次编辑Mercurial的(本地)存储库时,都需要启动构建。 (含义:Jenkins需要检测每个Mercurial提交。这个'检测'需要每1分钟触发一次)
我们需要使用的工具包括: Javac , Maven 作为构建工具, Mercurial 当然。
这在Ubuntu环境中都会发生。由于我对Linux不熟悉(根本没有),我不知道如何做到这一点。
我不是要求提供一个现成的解决方案,但我宁愿要求一些'提示'来理解像Mercurial 'Hooks'这样的东西,我需要(做)得到的东西这项工作在Jenkins等工作。我在网上找到的所有东西都很模糊,并使用python的例子。
如此具体:可能会欢迎一点指导:)感谢所有帮助之手!
答案 0 :(得分:13)
在有人推送到您的回购邮件后触发Jenkins构建的最有效方法是在mecurial中使用changegroup hook。
另一方面,Jenkins允许通过使用特殊令牌调用作业的URL来远程触发构建。必须在Jenkins的作业中配置带有相应令牌的触发器:
将放在repos .hg / hgrc文件中的mercurial钩子可以定义为:
[hooks]
changegroup = curl --silent http://your.jenkins.server.url/jenkins/job/<YOURJOBNAMEHERE>/build?token=Foo
此挂钩使用curl命令行工具使用允许远程触发作业的已定义标记来调用jenkins作业的URL。当然,必须在你的linux盒子上安装Curl。
答案 1 :(得分:4)
听起来你的教授希望Jenkins在Mercurial存储库中查看更改(“每1分钟触发一次”)。设置Jenkins作业时,名为“构建触发器”的部分将具有轮询选项。那就是你想要的那个。
更好的解决方案是让Mercurial告诉Jenkins有关更改,因为轮询通常是一个坏主意(即使你几天都没有检查任何东西,Jenkins仍然每分钟都要求 如果有的话已经改变)。您可以查看the book有关如何编写Mercurial挂钩的示例,或者您可以使用我写的Python script。
答案 2 :(得分:0)
要在推送到Bitbucket上的Mercurial存储库时触发Jenkins构建,您可以进入存储库的管理(单击齿轮)并选择服务。在那里,您可以使用以下四个参数定义Jenkins服务:
(我认为这只是詹姆斯在2012年11月7日回复中提到的定义“变更组挂钩”的一种方式。)