我正在寻找一种从subversion post-commit hook触发Cruise Control.net构建的方法。
我希望这可以在提交后直接启动构建。 我知道这样做的正常方法(轮询服务器)但是当使用钩子完成时,似乎没有必要继续轮询服务器。
一种想法是调用仪表板的“强制构建”功能,但这将触发构建,即使所有修改都在主干路径树之外,因此也没有进行任何修改以保证构建。
答案 0 :(得分:1)
过滤更改的问题正是CC.NET使用轮询机制的原因。 (那可能存在一些需要在构建中包含来自多个开发人员的新更改的事实。)
“强制构建”功能是我能想到实现此目的的唯一机制,但是如果你只想从主干中进行更改,那么需要你的post-commit钩子来执行相当于svn的日志(可能是一个冗长的log)通过一些适当的过滤器设置,然后仅在需要时触发“强制构建”。
答案 1 :(得分:0)
您使用“强制构建”的想法可能会奏效。
我不理解您对主干路径树之外的修改的担忧吗? 你不能在post-commit钩子中检查这个,如果修改后的文件在/ trunk
下,则只强制构建您是否考虑过这样做的缺点?
您有2个变更集。 您提交变更集1,构建开始,您提交changeset2并且必须等待您的构建/测试完成,然后另一个构建开始构建/测试变更集2。
答案 2 :(得分:0)
我建议不要这样做,但如果你真的想要,我会从URL trigger开始。
URL触发器监视任何URL以进行更改,因此您可以让您的帖子提交挂钩更新html文件。或者,如果您使用的是viewvc,则可以让它监视以下URL:
http://servername/viewvc/repos?view=rev&revision=HEAD
每次提交SVN后,该URL都会更新