Mercurial建立在推动上

Cis*_*one 11 mercurial continuous-integration

每次推送到我们的中央Mercurial存储库时,我都希望在服务器上完成构建.构建通常通过手动或通过计划任务运行Visual Build文件在我们的构建服务器上启动.

有什么方法可以实现这一目标?

简单,低影响的解决方案是首选.

Obe*_*nne 15

正如Pablo建议的那样,你可以用钩子做到这一点,但是你需要在服务器端有一个传入的钩子.此挂钩在"将变更集拉出,推送或非捆绑到本地存储库之后"运行(hgrc联机帮助页).

编辑.hg/hgrc位于服务器上的存储库的文件,并按如下方式定义构建挂钩:

[hooks]
incoming = /path/to/executable-build-script
Run Code Online (Sandbox Code Playgroud)

当然,这里调用的构建脚本只需要是您实际使用的任何构建过程的触发器.

请注意,传入的挂钩会针对推送中的每个变更集运行.如果您不想这样做,请使用更改组挂钩 - 每次推送只运行一次,无论它携带多少更改集.

  • 不是真正的服务,但只要你说话,就会在服务器上执行普通的`hg`命令.在*HTTP*访问的情况下,Web服务器运行一些脚本,然后在服务器端运行Mercurial安装.在*SSH*的情况下,您的本地`hg`使用SSH登录服务器,这样运行远程Mercurial安装.总而言之,远程站点上运行的唯一服务是运行`hg`的web或SSH服务器,就像你在本地运行一样. (3认同)

ang*_*son 5

除了Pablo提到的钩子之外,另一种方法是建立一个持续集成服务器,比如TeamCity.然后,您可以要求TeamCity监视您的存储库,提取新的更改集并为您启动可视化构建脚本.


Pab*_*ruz 2

您需要使用 hooks 处理存储库事件

因此,在commit事件发生后,您需要运行一个脚本来相应地执行您的构建。