7

我们正在使用 jenkins 进行持续集成,使用标准的每 10 分钟轮询方案,它运行良好。

现在我想设置一个在 repro 中的每个修订版上运行的作业,它将生成或多或少是对应于特定提交的二进制补丁。

我想出的唯一方法是在 svnserver 上使用 post-commit 挂钩,在 jenkins 服务器上排队作业,但我宁愿不这样做,因为它需要在防火墙上打一个新洞(我认为jenkins 将所有排队的作业合并为一个)。

4

1 回答 1

4

我自己没有尝试过,但是您可以使用另一个构建来触发您的颠覆构建。

例如,您可以设置一个每 10 分钟从您的 subversion 存储库执行标准轮询的构建。然后让这个构建确定自上次以来发生的所有新修订号。然后让它排队多个参数化构建(每个版本一个)。

有多种方法可以做到这一点,但如果我这样做,我可能会让主构建使用 python 构建步骤来计算所有修订,然后我会使用参数化触发器插件来排队辅助构建。

最后一步可能有点混乱,因为我不知道有任何插件可以让您将多个构建排队。这是蛮力的,但您可以设置一系列构建变量(SVN_REV_1、SVN_REV_2、...),然后设置多个触发器(每个潜在变量一个触发器)。只要你有更多的,然后你曾经通过新的修订,你应该是好的。(注意:可能有更好的方法来做到这一点)

为了帮助确保您不会错过任何一个,我建议您增加投票以每分钟运行一次。我们在这里为我们的一个构建做了类似的事情,更频繁的轮询负载从来都不是问题。

于 2011-12-23T14:31:36.860 回答