小编典典

与Jenkins工作流程/管道并行运行的阶段

jenkins

请注意:
这个问题是基于旧的,现在称为“脚本化”管道格式的。使用“声明性管道”时,可以将并行块嵌套在阶段块内部(请参阅带有声明性管道1.2的并行阶段)。

我想知道Jenkins工作流/管道插件,特别是并行步骤应该如何工作。如何将它们与构建阶段混合使用。我了解一般模式:

parallel(firstTask: {
  // Do some stuff
}, secondTask: {
  // Do some other stuff in parallel
})

但是,我想并行运行几个阶段(在具有多个执行程序的同一节点上),因此我尝试添加以下阶段:

stage 'A'
// Do some preparation stuff

parallel(firstTask: {
  stage 'B1'
  // Do some stuff
}, secondTask: {
  stage 'B2'
  // Do some other stuff in parallel
})

stage 'C'
// Finalizing stuff

这不能按预期方式工作。“执行任务”任务是并行执行的,但是并行阶段会立即结束,并且不会合并它们应包含的任务。因此,舞台视图不会显示正确的结果,也不会链接日志。

我可以并行构建不同的阶段,还是“并行”步骤仅用于单个阶段?


阅读 370

收藏
2020-07-25

共1个答案

小编典典

您不得在内部放置已弃用的,非阻塞作用域stage(如原始问题中所述)parallel

JENKINS-26107开始stage采用block参数。您可以放在parallel内部stagestage内部parallelstage内部stage等。但是,不能保证构建的可视化支持所有嵌套。特别是

  • 内置的 管道步骤 (列出构建所运行的每个步骤的“树表”)显示了任意stage嵌套。
  • 流水线阶段查看 插件目前只显示阶段的线性表,在他们开始,无论嵌套结构的顺序。
  • 蓝海将显示顶级阶段,以及顶级阶段parallel内的分支,但目前没有更多。

JENKINS-27394(如果实现)将显示任意嵌套stage的。

2020-07-25