如何在哈德森触发一个mercurial支持项目的某些修订版本?

时间:2011-03-21 10:39:50

标签: mercurial hudson

我正在计划一个mercurial changegroup hook,它会触发hudson中的构建。

项目被添加到队列中,当有空闲插槽时,hudson会构建它。问题是,其他人可能在此期间将代码推送到项目中,因此hudson将构建较新的版本(因为它运行的类似“hg pull -u&& build”) ,而不是第一次构建被触发时存储库所处的修订。

这个问题有什么解决方案吗?也许使用参数化构建?如果它不适用于单个作业,也许我可以每次推送创建一个作业并设置mercurial url以包含修订段?

感谢提示。

1 个答案:

答案 0 :(得分:1)

在你的钩子中,假设它是一个shell钩子,你应该获得你的repo的tip的节点id,并将其作为参数传递给Hudson(现在的Jenkins)的API。获得该值看起来像:

export NODE_TO_BUILD=$(hg --id --rev tip)

然后使用您调用的任何格式将其作为参数传递给Hudson的API:http://wiki.hudson-ci.org/display/HUDSON/Remote+access+API

并将Hudson的工作调整为:

hg pull && hg update $NODE_TO_BUILD && build
相关问题