配置Hudson,仅在检测到SVN中的更改时执行构建或后期构建操作。

7

有没有办法配置Hudson,只有在SVN/CVS中存在更改时才执行Build或Post Build操作?

谢谢

2个回答

10

您可以让Hudson轮询SCM以查找更改并仅在发现更改时执行相关操作。

轮询SCM:配置Hudson以轮询SCM中的更改。

请注意,对于CVS来说,这将是一项昂贵的操作,因为每次轮询都需要Hudson扫描整个工作区并与服务器进行验证。考虑设置“推送”触发器以避免此开销,如document所述。

您还可以向SCM提交后钩子添加内容,以启动Hudson构建。

远程触发构建(例如,从脚本):如果您想通过访问特定的预定义URL(适用于脚本)来触发新构建,请启用此选项。

此功能的一个典型示例是,在源代码控制系统的挂钩脚本中触发新构建,当有人刚刚将更改提交到存储库中,或者从解析源代码控制电子邮件通知的脚本中触发。

您需要提供一个授权令牌,以字符串形式提供,以便只有那些知道它的人才能远程触发该项目的构建。


1
使用轮询SCM,就像您提到的那样,对于SVN来说是一种相当昂贵的操作。我更多地考虑手动触发构建,然后只有在SVN发生更改时才执行构建过程。有时,SVN会发生微小的更改,不需要进行新的构建。 - ken
13
轮询Subversion仓库非常便宜 - 服务器会返回最新的更改列表号码,可以与Hudson上次构建的版本进行比较。您认为这有什么昂贵的地方吗? - Michael Donohue

0

这并不像其他地方所说的那样简单,只看修订号是不够的,除非你的构建是针对整个Subversion存储库。通常情况下,你有多个项目共享一个Subversion存储库,并且你正在构建某个子树。全局修订号没有帮助。

'svn info [url_to_subtree]'将显示最后更改日期。你可以解析它并确定它是否晚于上次构建日期,并触发新的构建。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接