2010-12-17 40 views
2

所以这是一个类似的问题: Triggering upstream project builds before downstream project哈德森构建顺序不同时签入表彰依赖

但我不希望那个家伙是要求全有或全无的行为,我只是想哈德森建设项目按照正确的顺序排列,所以我们不会收到虚假报警失败的版本。

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

哈德森是足够聪明,从行家聚甲醛弄清楚是什么是上游和下游,甚至知道打造下游的东西,当上游的变化,但它不知道下游前兴建上游的东西如果他们都改变了的话。

是否有配置设置我错过了? “在其他项目建成后进行构建”似乎只是它已经为上游项目所做的手动版本。

+0

可能的重复:http://stackoverflow.com/questions/4022354/how-to-delay-a-hudson-build-until-its-dependencies-are-built – 2010-12-20 18:32:22

回答

2

根据Advanced Project Options你有quiet period。为你的第一次建造安静的时间为5秒,第二到2分钟。这应该做的伎俩。你也可以尝试5秒和10秒,我只选择5和120,因为哈德森将不会比每分钟更频繁地检查变化。我不知道svn检查是如何实现的。因此2分钟将确保您的第一个项目至少在第二个构建开始之前检查一次。 (假设:两项工作每分钟检查一次SVN更改)

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

0

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

0

我面临同样的问题。不幸的是,这似乎是一个已知的bug,即当使用多个执行程序/节点配置hudson服务器时,Block build when upstream project is building选项不起作用。

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

一种解决方法,可以使用Naginator Plugin其可以构建失败后重新安排一个构建。

+0

该bug现在有一个说明它是固定的自2010年9月左右开始。 – James 2013-04-12 06:09:43