在 Jenkins Pipelines 中设置阶段状态

2024-02-17

在脚本化管道中是否有任何方法可以将某个阶段标记为不稳定,但仅将该阶段显示为不稳定,而不在输出中将每个阶段标记为不稳定?

我可以做这样的事情:

node()
{
  stage("Stage1")
  {
      // do work (passes)
  }
  stage("Stage2")
  {
      // something went wrong, but it isn't catastrophic...
      currentBuild.result = 'UNSTABLE'
  }
  stage("Stage3")
  {
      // keep going... 
  }
}

但是当我运行这个时,詹金斯将一切标记为不稳定......但如果可能的话,我希望第一个和最后一个阶段显示绿色,而只有有问题的阶段显示黄色。

如果整个管道被标记为不稳定也没关系,但如果可能的话,让后期阶段超越它并设置最终结果也可能会更好。


现在这是可能的:

pipeline {
    agent any
    stages {
        stage('1') {
            steps {
                sh 'exit 0'
            }
        }
        stage('2') {
            steps {
                catchError(buildResult: 'SUCCESS', stageResult: 'UNSTABLE') {
                    sh "exit 1"
                }
            }
        }
        stage('3') {
            steps {
                sh 'exit 0'
            }
        }
    }
}

在上面的示例中,所有阶段都将执行,管道将成功,但阶段 2 将显示为不稳定。我在示例中使用声明性管道,但它在脚本化管道中应该具有相同的工作方式。

正如您可能已经猜到的,您可以自由更改buildResult and stageResult任意组合。您甚至可以使构建失败并继续执行管道。

只需确保您的 Jenkins 是最新的,因为这是一个相当新的功能。升级受错误影响的所有插件JENKINS-39203 https://issues.jenkins-ci.org/browse/JENKINS-39203, 例如:

  • 管道图分析 https://plugins.jenkins.io/pipeline-graph-analysis插件(至少版本 1.10 将单个阶段标记为“不稳定”)
  • 管道基本步骤 https://plugins.jenkins.io/workflow-basic-steps/插件(至少版本 2.18 在 catchError 中设置 stageResult)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Jenkins Pipelines 中设置阶段状态 的相关文章

随机推荐

  • 在编译器中实现闭包

    我正在尝试设计一个伪汇编代码的基本编译器 但是 我不知道如何实现闭包 看来我需要将特定的寄存器值与每个 子例程 相关联 我考虑过使用堆栈 但它似乎又不够 似乎只有关联数组才能工作 但是如何在汇编中完成该操作或类似的操作呢 我选择尝试表示的示
  • 使用 Oscillator.connect() 和 Oscillator.disconnect() 方法在使用 Web Audio API 构建的应用程序中打开/关闭声音有多可行?

    我一直在尝试使用 Web Audio API 创建 88 键钢琴 计划是首先以适当的频率运行所有 88 个振荡器 然后使用Oscillator connect and Oscillator disconnect 按下和释放钢琴键时相应振荡器
  • 在 Axapta/Dynamics Axe 中的链接表上过滤

    我在 Axapta Dynamics Ax EmplTable 中有一个表单 它有两个数据源 EmplTable 和 HRMVirtualNetworkTable 其中第二个数据源 HRMVirtualNetworkTable 通过 延迟
  • Visual Studio Code 中的 Launch.json

    要在 Visual Studio Code 中开始调试 我必须生成 Launch json 文件 在 Visual Studio Code 自动生成文件后 我得到如下内容 version 0 2 0 configurations name
  • 我可以删除migrations目录中的django迁移文件吗

    我个人喜欢 django 因为它的 MVC 理念 但是 当我在版本 1 7 中运行 Django 迁移时 我在其中执行的每个迁移都存储在迁移目录中 如果我删除这些文件 它会在迁移时抛出错误 我是这样测试的 我创建了一个新的 Django 项
  • 在 BeautifulSoup 中匹配部分 id

    我在用着美丽汤 我必须找到任何参考 div 带有 id 的标签如 post 例如 div div div div 我努力了 html div div div div soupHandler BeautifulSoup html print
  • 在 CSS3 中重新启动动画:还有比删除元素更好的方法吗?

    我有一个 CSS3 动画 需要单击重新启动 这是一个显示还剩多少时间的栏 我使用scaleY 0 变换来创建效果 现在我需要通过将条恢复到scaleY 1 并让它再次转到scaleY 0 来重新启动动画 我第一次尝试设置 scaleY 1
  • 当 Knockout 更新值时,更改事件不会触发

    我有一个外部 javascript 库 它会触发文本区域的更改 格式化它等 但是 当 KnockoutJS 将值设置为文本区域时 不会触发更改事件 我的问题的简化小提琴 http jsfiddle net EZC9E 当 Knockout
  • 需要类型但无法导入桥接标头

    我正在开发一个包含 Swift 和 Objective C 代码的项目 它工作没有任何问题 直到我尝试在 Bridging Header 文件中导入 h 类 期望一个类型 在我试图导入它的课程中 导入桥接标头失败 Users sysadmi
  • 使用 XUnit 和 ASP.NET Core 1.0 进行依赖注入

    我正在尝试弄清楚如何使用 XUnit 进行依赖注入 我的目标是能够将我的 ProductRepository 注入到我的测试类中 这是我正在尝试的代码 public class DatabaseFixture IDisposable pri
  • 延迟 jquery 脚本直到其他所有内容都加载完毕

    我有一个 jquery 脚本 只有在页面上的其他所有内容 包括其他一些 javascript 我无法控制 完成其工作后才需要运行该脚本 我虽然也许有 document ready 的替代品 但我还没找到它 你可以有 document rea
  • call_user_func_array 将参数传递给构造函数[重复]

    这个问题在这里已经有答案了 我已经搜索了许多 Google 结果页面以及 stackoverflow 上的此处 但找不到似乎适合我的情况的解决方案 我试图构建的函数似乎只有最后一个障碍 该函数使用 call user func array
  • Yii 2.0 如何扩展核心类

    我想延长课程yii web 响应 所以我在文件夹中创建了一个新类 Response成分我尝试覆盖发送方法 namespace app components use Yii class Response extends yii web Res
  • Angular 6 @angular/pwa - sw 未成功提供清单 start_url

    我使用 Angular 6 和 Angular pwa 包构建了一个 PWA 我一直在尝试解决此问题 但无论我做什么 我都会收到 start url 错误 我努力了 使用绝对链接 确保 start url 在 SW 的范围内 sw 在主文件
  • Chrome 是否支持单个 javascript url 上的多个模块/sourceMappingURL

    我一直在尝试 Chrome 中的 Source Maps 功能 发现它不支持将单个 javascript 资源附加到包含多个模块以及一个连接在一起的脚本标记 sourceMappingURL评论分离each one 第一个映射已连接 我看到
  • RSpec Stubbing:按顺序返回

    我知道以下事情有效 返回一个参数 subject should receive get user choice choices choices to a 0 和一个序列 第一次调用时返回 0 第二次 退出 时返回 subject shoul
  • Google 登录但结果代码为 0

    我想为我的应用程序创建一个 Google 标志 但我的结果代码来自onActivityResult is 0 In my onCreate 方法我启动功能startSignInIntent 像这样 protected void onCrea
  • 如何使用 slf4j / log4j2 发送电子邮件通知?

    我研究了其他类似的问题 并进行了一些谷歌搜索来找到我的答案 但我的问题仍然没有答案 我仍然不熟悉其中一些是如何工作的 所以请耐心等待 我们的 maven pom xml 使用 slf4j 依赖项 我们的 log4j2 xml 文件如下所示
  • 与 ASP.NET Core 的模型绑定[重复]

    这个问题在这里已经有答案了 我正在尝试使用 asp net core MVC 制作一个简单的 todo MVC 应用程序 我的计划是制作一个带有简单复选框的网页 并让用户能够使用表单更改状态 表单显示正确 但控制器中的 模型绑定 不起作用
  • 在 Jenkins Pipelines 中设置阶段状态

    在脚本化管道中是否有任何方法可以将某个阶段标记为不稳定 但仅将该阶段显示为不稳定 而不在输出中将每个阶段标记为不稳定 我可以做这样的事情 node stage Stage1 do work passes stage Stage2 somet