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

2024-04-17

请注意:问题是基于旧的、现在称为“脚本化”管道格式。当使用“声明式管道”时,并行块可以嵌套在阶段块内(请参阅声明式管道 1.2 的并行阶段 https://jenkins.io/blog/2017/09/25/declarative-1/).

我想知道并行步骤应该如何与 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

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

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


您不能将已弃用的非块作用域stage(如原来的问题)里面parallel.

As of JENKINS-26107 https://issues.jenkins-ci.org/browse/JENKINS-26107, stage采用块参数。你可以把parallel inside stage or stage inside parallel or stage inside stage然而,构建的可视化并不能保证支持所有嵌套;尤其

  • 内置的管道步骤(列出构建运行的每个步骤的“树表”)显示任意stage筑巢。
  • The 管道阶段视图 plugin https://wiki.jenkins-ci.org/display/JENKINS/Pipeline+Stage+View+Plugin当前仅按阶段开始的顺序显示阶段的线性列表,无论嵌套结构如何。
  • 蓝海 https://jenkins.io/projects/blueocean/将显示顶级阶段,加上parallel在顶级阶段内有分支,但目前已经没有了。

JENKINS-27394 https://issues.jenkins-ci.org/browse/JENKINS-27394,如果实现,将显示任意嵌套stages.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

与 Jenkins 工作流程/管道并行运行阶段 的相关文章

随机推荐

  • 如何在 Python 中运行 .exe 文件

    我正在尝试在 python2 7 中运行 exe 文件 我已经尽了一切努力来搜索它 这是我尝试过的一些代码 subprocess Popen r C Programs Files Internet Explorer iexplore exe
  • 调试时 VS2012 的 VSIX 扩展未运行

    我在 Visual Studio 2012 中创建了一个新的 VSIX 扩展项目 并编写了一个 MEF 分类器 作为测试 该分类器应该简单地突出显示 mylang文件 以下是我的 NET 4 5 代码的相关部分 internal stati
  • 如何通过 powershell 或 C# 使用本地 IP 远程更新 azure webapp 防火墙

    如何使用本地 PC IP 地址远程更新我的 azure webapp 防火墙 以便通过 powershell 或 C 进行管理 我已经查看了文档 但我只能从实际服务器本身找到如何操作 而不能远程操作 我可以让 Visual Studio 弹
  • 可绘制资源中带有形状的文本

    我可以在可绘制资源中创建文本形状吗 我在谷歌上搜索了很多 但什么也没找到 这是我的绘图文件
  • 退出和中止有什么区别?

    The abort http ruby doc org core 2 1 1 Kernel html method i abort文件说abort will 通过调用 Kernel exit false 立即有效地终止执行 立即 到底是什么
  • 如何根据内容调整QTableView的高度?

    在我的布局中 动态生成的 QTableView 似乎已调整大小以仅显示一行 我想让表视图的容器有一个滚动条 而不是单个表视图 它应该显示完整的内容 显然 Qt 没有为此内置任何东西 您需要手动计算和设置大小 这就是我垂直调整大小的方法 Qt
  • XMLSerializer.Serialize 上的 .NET OutOfMemoryException

    我有一个网站 每当它到达我的代码中的以下位置时 就会抛出 OutOfMemoryException XmlSerializer xs new XmlSerializer t xoverrides 看到只有在网络服务器上时才会发生这种情况 我
  • 使用 Thrift 通过共享内存进行 IPC 通信

    我找不到关于如何使用 apache thrift 通过共享内存进行 ipc 通信的足够示例 我的目标是在 thrift 的帮助下序列化现有的类 然后通过共享内存发送到另一个进程 在该进程中我在 thrift 的帮助下再次反序列化它 现在我正
  • 如何循环访问 IP 地址范围?

    我想在 IP 地址范围上执行一组网络任务 一旦范围大于 C 类网络 我就无法枚举该范围内的所有主机 我希望能够使用网络掩码迭代网络的所有主机255 255 240 0 From 192 168 0 100 To 192 168 10 100
  • LinqToExcel:Excel 列中的不同值

    对于各位专家来说 这可能是一件非常简单的事情 但我对 C 4 和 INTEROP 并不熟悉 因此 我很困惑 这是我的问题 我有一个包含重复数据的 Excel 列 我想将其修剪为仅具有唯一值 数据如下所示 ColA ColB 10 Adam
  • 角度表单验证 ng-disabled 不起作用

    我正在尝试在我的博客文章表单中使用角度表单验证 更具体地说是禁用 ng 的表单 由于某些原因 我无法弄清楚提交按钮没有被禁用 除非所有三个输入字段都有效 否则它应该被禁用 谢谢您的帮助 这是我的博客模板 div div class cont
  • 如何在 Google 电子表格中插入列?

    我想将新数据添加到工作表的开头 开头 所以我必须在工作表中添加一个新的 A1 列 但我找不到任何 PHP 的 API 示例 现在我用这个附加数据 body new Google Service Sheets ValueRange value
  • 如果未使用 scp 命令指定目标路径,则文件位置

    要将文件夹从本地计算机复制到我使用的服务器 scp r local folder user server path 现在我忘了第一次指定目标路径 scp r local folder user server 现在有人知道该文件夹是否已被复制
  • 如何在视频标签中播放AVI文件?

    我想知道是否可以让浏览器在一个文件中播放 AVI 文件video tag 我在网上找到的所有谈论它的内容都集中在 MP4 和 Ogg 格式 但没有人谈论 AVI 格式 我发现的唯一解决方案是放弃video标记并使视频可以使用 JW Play
  • Lua 如何创建可用于变量的自定义函数?

    对于像 io close 这样的方法 你可以像这样使用它 file close 有没有办法创建一个像这样工作的自定义函数 您可以在变量上调用它 对我来说 我尝试使用它通过使用 string find 查找空格来将参数与文本文件分开 所以在文
  • 如何在 Node.js 中进行 Base64 编码?

    Node js 是否有内置 Base64 编码 我问这个的原因是final from crypto只能输出十六进制 二进制或ASCII数据 例如 var cipher crypto createCipheriv des ede3 cbc e
  • 对于某些版本的 PHP,“未指定输入文件”

    我安装了多个版本的 PHP 我写的 基本上 它是一个 ApacheLounge 安装 在 Windows 10 上通过 FastCGI 与 PHP 进行通信 这曾经让我在不同的虚拟主机上同时运行这些 PHP 版本 Apache 通过 Fas
  • 如何可视化来自谷歌协议缓冲区的数据?

    我想使用谷歌协议缓冲区存储数据 另一种序列化格式也可以 然后有一个用户界面来浏览该数据 是否有 C 框架 API 可以让我做到这一点 例如 它可以使用protobuf的反射接口 然后将数据填充到Qt的QTableView 或从其他工具包 中
  • 从 C 中的 long 中提取单个数字

    我正在为我的 C 课程 第一门编程课程 做作业 作业的一部分是编写代码 让用户输入一个最多9位数的数字 程序需要判断这个数字是 递增 真递增 递减 真递减 增减 实减实增 不减不增 共7个选项 由于这是我们的第一个作业 我们不允许使用课堂上
  • 与 Jenkins 工作流程/管道并行运行阶段

    请注意 问题是基于旧的 现在称为 脚本化 管道格式 当使用 声明式管道 时 并行块可以嵌套在阶段块内 请参阅声明式管道 1 2 的并行阶段 https jenkins io blog 2017 09 25 declarative 1 我想知