Hudson / Jenkins - 并行与系列管道和重用工作

时间:2011-10-12 18:53:58

标签: hudson jenkins hudson-plugins

我想要运行一系列Hudson工作来测试各种构建:

  1. 在服务器X上构建1.17
  2. 在服务器X上构建中继
  3. 测试1
  4. 的Test2
  5. 我想在每个作业等待另一个作业的情况下连续运行这些作业:Build 1.17,Test1,Test2,Build Trunk,Test1,Test2

    另一方面,我还有另外两个作业Test3和Test4,它们可以并行运行,就在Build Trunk之后。

    我不希望不必从每个作业的后构建步骤部分将多个作业链接在一起,但这是我可以使它们串联运行的唯一方法。这个问题是: 1)作业复制:我需要2份Test1和Test2:Build 1.17-> Test1 - > Test2 - >构建中继线 - > Test1(主干复制) - > Test2(主干复制)。 2)更多重复:我需要另一个Build Trunk,所以每次我想运行Test3和Test4时都不会运行Test1。

    是否有一种简单的方法可以让作业在不修改单个作业的情况下串联运行,并在顶级作业之外创建它们之间的依赖关系?

    Is such a thing even possible

    更新:最终我们所做的就是使用Rakefiles来管理整个过程。没有任何插件足够强大。一个hudson作业调用带有args的Rakefile,调用其他hudson作业。

2 个答案:

答案 0 :(得分:3)

查看Locks and Latches plugin - 这可以让您设置更复杂的构建依赖项,而无需复制作业。

答案 1 :(得分:2)

看看(相对较新的)Multijob Plugin。然后,您可以定义多个串行执行的阶段,并且一个阶段中的所有作业并行运行。以您的示例为例,设置6个阶段。阶段1运行Build 1.17,阶段2运行Test 1等。在阶段5(Build Trunk之后),您可以并行运行测试3和测试4。

或者,使用Build Pipeline Plugin构建两个单独的管道以手动启动每个管道。

BTW,不推荐使用Locks and Latches插件,由Throttle Concurrent Builds Plugin取代。这可以作为一种魅力,以避免例如在同一个从站上运行测试3和测试4作业(并使从站过载)。