【问题标题】:How to define jobs in Jenkins/Hudson to run in parallel?如何在 Jenkins/Hudson 中定义作业以并行运行?
【发布时间】:2012-05-15 19:24:16
【问题描述】:

问题: 给定 Jenkins/Hudson 中的许多工作,每个工作都分配了一个我们可以称为级别的编号。这个数字的范围从 1 到 n,并且多个作业可以具有相同的级别。现在,我想定义要运行的那些(否则独立的)作业,以便级别 1 必须在级别 2 之前构建,并且我希望 Jenkins/Hudson 在同一级别并行启动多个作业,如果定义作业的从属执行器是免费的。

这个级别数是什么无关紧要,它只是为了解释问题而定义的。

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

感谢您的宝贵时间。

编辑:如果有一些优雅的解决方案,我还想知道一个:假设作业 X 是由 Build Flow Plugin 触发的,但它失败了。如果我希望 Build Flow Plugin 再次触发相同的作业(在我修复它之后),并为通过插件定义的作业正常继续,有什么办法吗?

【问题讨论】:

    标签: continuous-integration hudson jenkins parallel-processing jenkins-plugins


    【解决方案1】:

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

    【讨论】:

    • 没什么好说的,这是一个很棒的解决方案。我刚刚测试过,它既容易配置,自动生成也再简单不过了。谢谢。
    • 还有一个我想知道的,以防有一些优雅的解决方案:假设作业 X 是由 Build Flow Plugin 触发的,但它失败了。如果我希望 Build Flow Plugin 再次触发相同的作业(在我修复它之后),并且通过插件定义的作业正常继续,有什么办法吗?
    • 有保护/救援和重试,任何有兴趣从子作业失败中恢复的人
    猜你喜欢
    • 1970-01-01
    • 2012-11-02
    • 1970-01-01
    • 2019-09-26
    • 2011-11-09
    • 1970-01-01
    • 1970-01-01
    • 2015-04-26
    • 1970-01-01
    相关资源
    最近更新 更多