【问题标题】:Splitting Jenkins Job to run concurrently拆分 Jenkins 作业以同时运行
【发布时间】:2016-05-31 13:21:56
【问题描述】:

有谁知道将单个 Jenkins 作业拆分为多个部分并同时/并行运行它们的方法?

例如,如果我有一个运行测试的作业需要 30 分钟,有没有办法可以将这个作业分成三个 10 分钟的运行,同时运行但在三个不同的实例中运行

提前致谢。

【问题讨论】:

标签: testing jenkins automation


【解决方案1】:

创造新的工作,称之为 f.e. 测试。您应该根据根作业的类型来选择作业类型。

如果你有 Maven Job 类型,你可以在 build -> advanced 下设置工作区目录。 Freestyle Job 类型在 project -> advanced 下直接有此选项。

为所有作业设置相同的工作目录。根作业将编译,所有其他作业使用相同的工作目录来使用编译后的输出。

对于测试作业,将测试执行添加为构建步骤,并在此处区分应该执行的测试。

编辑您的根作业并在那里删除长时间运行的测试的执行。你现在可以打电话给那里的三个工作。但是你需要Parameterized Trigger Plugin

这种方式的缺点是,您需要足够多的 jenkins 执行器来处理所有测试作业。

【讨论】:

  • 感谢@CSchulz,在构建 maven 项目的高级阶段,我还注意到一个复选框“并行构建模块”。这会有用吗?干杯。
  • 我认为这对你没有帮助,因为你必须在自己的模块中分离测试。
【解决方案2】:

如果您使用的是 Jenkins 1.x,我建议您尝试使用 multijob 插件 - 我已成功使用它将单个作业拆分为父作业和多个子作业:

https://wiki.jenkins-ci.org/display/JENKINS/Multijob+Plugin

如果您使用的是 Jenkins 2.x,请尝试管道功能 :) 它使运行并行任务变得非常容易:

https://github.com/jenkinsci/pipeline-plugin/blob/master/TUTORIAL.md#creating-multiple-threads

如果您愿意,我相信您也可以通过插件在 Jenkins 1.x 中使用管道。不过,我还没有研究过。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-03
    • 2018-07-27
    • 1970-01-01
    相关资源
    最近更新 更多