我有一系列 Hudson 作业要运行以测试各种构建:
- 在服务器 X 上构建 1.17
- 在服务器 X 上构建 Trunk
- 测试1
- 测试2
我想连续运行这些作业,每个作业等待另一个作业完成:Build 1.17、Test1、Test2、Build Trunk、Test1、Test2
另一方面,我还有另外两个作业 Test3 和 Test4,它们可以并行运行,并且紧接在 Build Trunk 之后。
我不想将多个作业从每个作业的构建后步骤部分链接在一起,但这是我可以让它们连续运行的唯一方法。这样做的问题是: 1) 作业重复:我需要 Test1 和 Test2 的 2 个副本:Build 1.17-> Test1 -> Test2 -> Build Trunk -> Test1 (copy for trunk) -> Test2 (copy for trunk)。 2) 更多重复:我需要另一个 Build Trunk,所以我不会在每次想运行 Test3 和 Test4 时都运行 Test1。
是否有一种简单的方法可以让作业连续运行,而无需修改单个作业并在顶级作业之外创建它们之间的依赖关系?
更新:最终我们所做的是使用 Rakefiles 来管理整个过程。没有一个插件对此足够强大。 hudson 作业调用带有 args 的 Rakefile,它调用其他 hudson 作业。
最佳答案
看看 Locks and Latches plugin - 这让您可以设置更复杂的构建依赖项,而无需重复您的作业。
关于Hudson/Jenkins - 并行与串行管道和作业重用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7745045/