所以这是一个类似的问题: Triggering upstream project builds before downstream project
但是我不想要那个人要求的全有或全无的行为,我只是希望哈德森以正确的顺序构建项目,这样我们就不会得到虚假警报失败的构建。
我们有两个项目,一个取决于另一个。如果我们同时签入两个项目(依赖项目将在没有首先构建依赖项的情况下失败),Hudson似乎随机选择一个,所以有时我们得到一个失败的构建,然后另一个项目构建成功,然后重试在另一个项目上成功。
Hudson非常聪明,可以从maven pom中找出上游和下游的内容,甚至知道在上游发生变化时构建下游内容,但是不知道在>之前构建上游内容强大的>下游的东西,如果他们都改变了。
我是否缺少配置设置? “在构建其他项目之后构建”似乎只是它已经为上游项目做的手动版本。
答案 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,它可以在构建失败后重新安排构建。