【问题标题】:Hudson build order not honoring dependencies on simultaneous checkinHudson 构建订单不尊重对同时签入的依赖
【发布时间】:2010-12-17 17:16:14
【问题描述】:

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

但我不想要那个人要求的那种全有或全无的行为,我只希望 hudson 以正确的顺序构建项目,这样我们就不会收到错误的构建失败的警报。

我们有两个项目,一个取决于另一个。如果我们同时检查两个项目(依赖项目将失败而没有先构建依赖项),Hudson 似乎随机选择一个,所以有时我们得到一个失败的构建,然后另一个项目成功构建,然后重试另一个项目成功了。

Hudson 很聪明,可以从 maven pom 中找出上游和下游,甚至知道上游发生变化时构建下游的东西,但它不知道 之前构建上游的东西 下游的东西,如果它们都改变了。

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

【问题讨论】:

标签: hudson


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

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

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

      【讨论】:

      • 该错误现在有一个说明,它自 2010 年 9 月左右以来已修复。
      猜你喜欢
      • 2019-09-20
      • 2021-12-29
      • 1970-01-01
      • 1970-01-01
      • 2019-03-19
      • 2010-12-03
      • 2013-12-16
      • 2010-09-15
      相关资源
      最近更新 更多