Hudson构建顺序不尊重同时签入的依赖关系

时间:2010-12-17 17:16:14

标签: hudson

所以这是一个类似的问题: Triggering upstream project builds before downstream project

但是我不想要那个人要求的全有或全无的行为,我只是希望哈德森以正确的顺序构建项目,这样我们就不会得到虚假警报失败的构建。

我们有两个项目,一个取决于另一个。如果我们同时签入两个项目(依赖项目将在没有首先构建依赖项的情况下失败),Hudson似乎随机选择一个,所以有时我们得到一个失败的构建,然后另一个项目构建成功,然后重试在另一个项目上成功。

Hudson非常聪明,可以从maven pom中找出上游和下游的内容,甚至知道在上游发生变化时构建下游内容,但是不知道在之前构建上游内容强大的>下游的东西,如果他们都改变了。

我是否缺少配置设置? “在构建其他项目之后构建”似乎只是它已经为上游项目做的手动版本。

3 个答案:

答案 0 :(得分:2)

Advanced Project Options下,您有quiet period。设置第一次构建安静时间为5秒,第二次为2分钟。这应该可以解决问题。您也可以尝试5秒和10秒,我只选择5和120,因为Hudson将检查更改的频率不会超过每分钟。我不知道svn检查是如何实现的。因此,2分钟将确保您的第一个项目至少在第二个构建开始之前检查一次。 (假设:两个工作每分钟检查SVN更改)

您还需要确保两个作业不同时运行。所以我会使用Block build when upstream project is building(也是高级选项)来确保它们不是同时构建的。您也可以先尝试此选项,可能此选项已经足够好了。

答案 1 :(得分:0)

如果两个项目都属于同一个maven父项目,那么这个maven父项目只需要一个hudson作业。 - 并且您不需要任何上行或下游依赖项。

答案 2 :(得分:0)

我面临同样的问题。不幸的是,当hudson服务器配置了多个执行器/节点时,Block build when upstream project is building选项似乎不是一个已知的错误。

http://issues.hudson-ci.org/browse/HUDSON-5125

解决方法可能是使用Naginator Plugin,它可以在构建失败后重新安排构建。