如何定义在Jenkins/Hudson中并行运行的作业?

6

问题:在Jenkins/Hudson中有多个作业,每个作业都有一个等级编号(level),编号范围从1到n,多个作业可以具有相同的等级。现在,我想定义这些(独立的)作业如何运行,使得等级1必须在等级2之前构建,并且如果定义作业的从节点执行器是空闲的,则希望Jenkins/Hudson同时在相同的等级上启动多个作业。

这里的等级号不重要,只是为了解释问题而定义的。

重要提示:我希望有可能自动生成这些作业,因为我知道哪些作业依赖于哪些作业,哪些可以并行运行,所以如果解决方案是一些config.xml中的配置,那么很高兴听到这一点,这样我就可以编写脚本来自动生成这些配置文件。

Jobs at level X can and should run in parallel, as many as possible.

感谢您的时间。

编辑:还有一个问题,我想知道是否有一种优雅的解决方案:假设作业X由Build Flow Plugin触发,但失败了。如果我想让Build Flow Plugin再次触发同一个作业(在我修复它之后),并且对于通过该插件定义的其他作业继续正常进行,是否有任何方法?

1个回答

9

有一个相对较新的Jenkins插件,称为Build Flow插件。该插件提供了一种新的作业类型,您可以使用DSL定义此类作业依赖关系结构。我认为,您也可以自动完成这项工作。该插件非常强大,您可以在此处找到更多信息。我不知道这个插件是否也适用于Hudson,因为它需要Jenkins 1.424作为最低版本,而最新的Hudson版本也已更改其配置xml。


没什么好说的,这是一个很棒的解决方案。我刚刚测试过,配置很容易,自动生成也更简单了。谢谢。 - Gogi
还有一个问题我想了解,以防有一些优雅的解决方案:假设作业X是由Build Flow插件触发的,但它失败了。如果我想让Build Flow插件在我修复后再次触发同一个作业,并正常继续执行通过插件定义的所有作业,是否有任何方法? - Gogi
对于那些有兴趣从子作业失败中恢复的人来说,有守卫/救援和重试功能。 - jooks

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接