当前位置: 首页 > 知识库问答 >
问题:

用Jenkins工作流/流水线并行运行阶段

莫振
2023-03-14

请注意:问题是基于旧的,现在称为“脚本”管道格式。当使用“声明性管道”时,并行块可以嵌套在阶段块内(请参见使用声明性管道的并行阶段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

我可以并行地构建不同的阶段吗?或者“并行”步骤只意味着在单个阶段中使用?

共有1个答案

宓毅庵
2023-03-14

您不能将不推荐使用的非块范围的阶段(如原问题中所示)放置在parallel中。

对于JENKINS-26107,stage采用块参数。您可以将paralle放在阶段阶段放在paralle阶段内部,等等。但是,构建的可视化不能保证支持所有嵌套;特别是

  • 内置的管道步骤(列出构建运行的每个步骤的“树表”)显示任意的阶段嵌套。
  • 管道阶段视图插件当前将只显示阶段的线性列表,按照它们开始的顺序,而不考虑嵌套结构。
  • 蓝海将显示顶级阶段,以及顶级阶段中的并行分支,但目前不再显示。

JENKINS-27394如果实现,将显示任意嵌套的阶段

 类似资料:
  • 问题内容: 请注意: 这个问题是基于旧的,现在称为“脚本化”管道格式的。使用“声明性管道”时,可以将并行块嵌套在阶段块内部(请参阅带有声明性管道1.2的并行阶段)。 我想知道Jenkins工作流/管道插件,特别是并行步骤应该如何工作。如何将它们与构建阶段混合使用。我了解一般模式: 但是,我想并行运行几个阶段(在具有多个执行程序的同一节点上),因此我尝试添加以下阶段: 这不能按预期方式工作。“执行任

  • 我试图从一个数据流作业中运行两个分离的管道,类似于下面的问题: 一个数据流作业中的并行管道 如果我们使用单个p.run()使用单个数据流作业运行两个分离的管道,如下所示: 我认为它将在一个数据流作业中启动两个独立的管道,但它会创建两个包吗?它会在两个不同的工人上运行吗?

  • 我试图用JenkinsFile构建一个Jenkins声明性管道。Jenkinsfile将出现在项目的回购中。

  • 问题内容: 我正在使用rub redis宝石。想知道我是否例如: 这样的执行顺序得到保证吗? 问题答案: 当然可以保证顺序,否则流水线将毫无用处。您可以随时查看代码。例如,此测试明确假定命令是按顺序执行的:https : //github.com/redis/redis- rb/blob/master/test/pipelining_commands_test.rb#L32

  • 问题内容: 是否有用于IPython的GUI,允许我打开/运行/编辑Python文件?我在IDLE中的工作方式是打开两个窗口:shell和.py文件。我编辑.py文件,运行它,并与外壳中的结果进行交互。 这样可以使用IPython吗?还是有另一种工作方式? 问题答案: 当我使用python时,通常会打开两个终端窗口-一个使用IPython,另一个使用相当自定义的Vim。 两个好的资源: http:

  • 我有两个Jenkins工作流作业,它们以不同的参数启动同一个作业,即它们构建的分支。后一项工作是在多个平台上构建项目。“头”作业,即Workflow作业可以在不同的机器上启动。此外,设置中还有两台linux机器。 有时会发生这样的情况,其中一个(比如master)在其中一台linux机器上启动,另一个在另一台上启动。他们都必须在linux机器上构建一个目标,因为他们都很忙,所以两个作业都停滞不前。