获取 Jenkinsfile 失败的错误原因

2023-11-24

我有以下内容post故障部分:

   post {
        failure {
            mail subject: "\u2639 ${env.JOB_NAME} (${env.BUILD_NUMBER}) has failed",
                    body: """Build ${env.BUILD_URL} is failing!
                          |Somebody should do something about that""",
                      to: "[email protected]",
                 replyTo: "[email protected]",
                    from: '[email protected]'
        }
    }

我想在错误消息正文中包含构建失败的原因。

我怎样才能做到这一点?

如果没有,有没有办法将构建日志文件附加到电子邮件中?


我不知道有什么方法可以凭空自动检索失败原因。

但是,您可以在每个阶段中使用“post{ failure {” 块来捕获至少在环境变量中失败的阶段(例如 env.FAILURE_REASON),并在最终(全局范围)通知块中访问该 env var 。

为了获得更多粒度,您可以重用全局环境变量的相同机制,但使用 try { } catch { } 块来捕获失败的特定步骤。

一个通用的例子是:

   pipeline {
     stages {
       stage('Build') {
         steps {
           ...
         }
         post {
           failure {
             script { env.FAILURE_STAGE = 'Build' }
           }
         }
       }
       stage('Deploy') {
         steps {
           ...
         }
         post {
           failure {
             script { env.FAILURE_STAGE = 'Deploy' }
           }
         }
       }
       ...
     }
     post {
        failure {
            mail subject: "\u2639 ${env.JOB_NAME} (${env.BUILD_NUMBER}) has failed",
                    body: """Build ${env.BUILD_URL} is failing in ${env.FAILURE_STAGE} stage!
                          |Somebody should do something about that""",
                      to: "[email protected]",
                 replyTo: "[email protected]",
                    from: '[email protected]'
        }
      }
    }

从技术上讲,您甚至可以根据失败阶段进行一些自动分类,并发送更有针对性的通知,甚至创建特定的(例如 Jira)票证。

要将控制台日志附加到电子邮件通知,您需要查看emailext和“attachLog: true”属性

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

获取 Jenkinsfile 失败的错误原因 的相关文章

  • 从 Ansible 中的文件结果中提取文件名

    我正在尝试使用 Ansible 的结果find模块 它返回在特定文件夹中找到的文件列表 问题是 当我迭代结果时 我没有文件名 我只有它们的完整路径 包括名称 有没有一种简单的方法来使用find result item下面提供file nam
  • 如何在 Jenkins 控制台输出中隐藏 checkout scm 步骤输出

    我在 Jenkinsfile 脚本化管道 中的第一个阶段是 checkout scm 它简要描述了 GitHub checkouts 和所有修订相关的内容我不想在 Jenkins 控制台输出中显示 是否可以将其隐藏在 Jenkins 的控制
  • git jenkins 中未找到存储库

    我正在使用 jenkins 2 64 并安装了最新的插件 我试图在 jenkins 中设置 git 存储库并给出凭据 但给出错误无法连接存储库 状态代码为 128 Cloning repository https github com so
  • 批准后使用 jenkinsfile 构建促销

    仅当更改管理使用 servicenow 更改票证或通过手动批准批准它时 我才需要使用 jenkins 文件将我的构建升级到生产 我想要类似的东西 产品构建只有在经理批准后才能手动触发 他 她应该收到带有批准 拒绝链接的批准邮件 或者 如果与
  • Jenkins 管道:代理与节点?

    和有什么区别agent and a node在詹金斯管道中 我找到了这些定义 Node https jenkins io doc book pipeline 管道在一个或多个声明的节点步骤的上下文中执行大部分工作 Agent https j
  • Xvfb 插件可在 Jenkins 上同时运行多个作业实例

    我在 Jenkins 有一份工作 负责运行用 Selenium 编写的 UI 测试 该作业可以同时运行它的多个实例 我在尝试使用 Xvfb Xvfb插件 https wiki jenkins ci org display JENKINS X
  • 整合 Jenkins 电子邮件通知

    我有一个 Jenkins 项目 由 3 个简单的自由式作业组成 每个作业都有自己的构建从站 每个作业都与一个单独的平台相关联 linux mac 或 windows 当开发人员提交代码时 Jenkins 很快就会轮询存储库 在每个构建从属设
  • Jacoco 代码覆盖率在 Jenkins 上显示覆盖率为 0%

    我已阅读了类似问题的大部分答案 但没有一个适合回答我的问题 我的 pom 文件中的配置文件如下所示
  • Gitlab 合并请求事件不触发 Jenkins 多分支管道

    我正在尝试在合并请求事件上使用 GitLab Webhook 触发 Jenkins 多分支管道作业 当我测试 Webhook 时 我收到以下消息 Hook 执行成功但返回 HTTP 409 当我设置不同的 GitLab Webhook 例如
  • 与字符串比较在 Jenkins 管道中不起作用

    知道为什么IF ELSE下面的作品 def checkPrValidity wordCountStr sh returnStdout true script git diff ignore space at eol target branc
  • Python jenkinsapi - 禁用/启用不工作的作业

    我正在尝试使用 禁用作业 詹金萨皮 https jenkinsapi readthedocs io en latest using jenkinsapi html example 3 disable enable a jenkins job
  • TeamCity 将功能分支推送到主分支

    有没有办法将成功构建的功能分支推送到另一个分支 我想要这样的东西 Git 存储库 Gitorious GitHub 等 分支机构 master 当前项目的代码 质量保证 代码等待 QA 的分支 功能分支 许多远程分支 开发人员可以在其中开发
  • 自动生成/删除詹金斯工作

    我正在寻找一种自动创建一组詹金斯作业的方法 通常在创建新的 git 分支之后 我已经为maven尝试过这个插件 http evgeny goldin com wiki Maven jenkins plugin http evgeny gol
  • 詹金斯配置文件问题

    检查依赖关系 找不到与 Nitin xxxxxxx xyzCAppStore 匹配的 iOS 配置文件 Xcode 找不到与 Nitin xxxxxxx xyzCAppStore 匹配的配置文件 安装配置文件 通过将其拖放到 Xcode 的
  • Jenkins GIT 包含从未构建过的区域

    我正在尝试使用包含区域在 Jenkins 中构建我的工作 但每当选中此选项时 民意调查结果总是说未检测到任何更改 我尝试了许多不同的路径 以及使用工作区进行 不进行强制轮询 结果是轮询从未检测到任何更改 但一旦我删除这些选项 它们就会在下一
  • jenkins:使用 URL 传递多个“扩展选择参数”值

    我的参数之一Jenkins构建是一个扩展选择参数 https wiki jenkins ci org display JENKINS Extended Choice Parameter plugin从构建网页调用构建时 它作为逗号分隔值的选
  • 如何根据特定条件触发电子邮件以在 Jenkins 中成功构建

    每当某个条件在构建后步骤的执行 shell 中成立时成功的构建 我想触发电子邮件发送 问题是 即使条件不成立 构建也会被视为success 我正在尝试实现的内容 if condition true then
  • Clearcase rebase 来自 Jenkins 的问题

    我有一个 perl 脚本来将推荐的基线重新设置为 Dev 视图 Dev 视图位于 M 驱动器中 当我从命令提示符运行脚本时 它正在工作 但是当我从 Jenkins 调用时 相同的脚本失败 我在 Jenkins 中使用与登录 ID 相同的用户
  • Jenkins 无法访问 SVN (https://)

    我创建了 Jenkins 项目 该项目在 SVN 上有文件 https repo xxx xxx svn priv 项目名称 https repo xxx xxx svn priv projectname 证书是自签名的 我的问题是 Jen
  • Jenkins Slave 自我注册

    我正在创建一个 Jenkins 主 从集群 但我无法找到一种方法让新的从服务器自动向主服务器注册 我当前的设置是运行一些 Terraform 脚本来创建主服务器和 5 个从服务器 然后我必须登录主节点并管理 Jenkins gt 管理节点

随机推荐

  • 在 Monodroid 应用程序中重用 Monotouch 代码

    我目前正在实现一个 Monotouch 应用程序 最终将移植到 Monodroid 该应用程序只是 OData Web 服务的客户端 没有什么太花哨或对性能至关重要的东西 挑战是重用尽可能多的代码 我知道 Monotouch 和 Monod
  • PTVS:如何在一个项目中从第二个项目引用或使用 Python 源代码

    在带有 PTVS 的 Visual Studio 中我有两个分开的Python 项目 其中包含一个名为lib py用作函数库 另一个是使用库中函数的 main 我正在使用一个importmain 中的语句引用库项目中的函数 但出现以下错误
  • 如果编辑器的宽度太小,是否有办法将工具栏按钮包装到 TinyMCE 的下一行?

    我在高级主题中使用 TinyMCE 今天我必须提前指定每个工具栏行中的按钮 theme advanced buttons1 theme advanced buttons2 和 theme advanced buttons3 如果编辑器的宽度
  • PHP 重定向不安全吗?

    嗯 我真的无法确定任何不安全因素 但想知道你是否可以 如果可以 如何修补 修复 代码如下 header Location http example com search POST term POST type 我重定向的网站也在他们这边进行
  • 在新的 Android Studio 3.1 上构建时出错

    我将 Android Studio 更新到 3 1 稳定版本 并在尝试构建项目时收到此错误 起初存在问题DataBinding 我修复了它们 然后我发现了这个问题 org gradle api GradleException Compila
  • 仅从 for 循环中打印一次消息

    我想查找列表元素中是否包含特定字符串 如果找到该字符串 我想打印出 找到字符串 否则 找不到字符串 但是 我想出的代码会多次打印 找不到字符串 我知道原因 但我不知道如何修复它并只打印其中一条消息一次 animals dog mouse c
  • Svg 多边形舍入

    我正在开发一个使用 svg 移动 旋转 缩放功能的应用程序 我正在 Laravel 中编写后端 前端使用 html css javascript 我在网上看到折线可能有某种三次贝塞尔曲线 现在我的问题是 多边形 svg 元素是否可能具有与折
  • Symfony2 路由全局 {_locale} 要求

    我在routing yml 中指定了每个路由中的参数 locale 要求 我认为这一定可以简化这种情况 路由 yml ProjectBaseBundle index pattern locale defaults controller Pr
  • opencv 中体积图像的 3D 图像处理

    我期待 Opencv 中 3D 图像处理的教程 我有 O Reilly 出版的书 这是一本关于 Opencv 中的 2D 图像处理的好书 谁能给我介绍一些 3D 图像处理的资源吗 本问题中的 3D 图像代表体数据 通常指 CT MRI 数据
  • node.js 只输出三个点[重复]

    这个问题在这里已经有答案了 我在 Windows 计算机上安装了 node js 并打开了命令提示符 当我尝试 Hello World 示例时 我得到的唯一输出是三个点 node hello js 我做错了什么吗 node hello js
  • C# 反射:使用字符串类名实例化对象

    我的情况如下 我正在使用 Visual C 2010 Express 开发 Windows 窗体应用程序 当用户登录时 动态地构建一个菜单条 其中包含从数据库表加载的选项 在该表中 我保存 ID 选项名称和表单名称 所以 假设在我的项目中我
  • JSF 中“记住我”的 Cookie

    我有一个登录页面 我想添加 记住我 功能 这样 如果用户注销并再次打开页面 则会加载他的用户名和密码 为此 当用户登录 并选中 记住我 时 我会保存以下 cookie FacesContext facesContext FacesConte
  • 如何打印调用的函数?

    在调试 Python 脚本时 我真的很想知道整个程序的整个调用堆栈 理想的情况是 如果 python 有一个命令行标志 它会导致 Python 在调用时打印所有函数名称 我检查过man Python2 7 但没有找到此类内容 由于此脚本中的
  • ASP.NET 中有没有本地方法可以发出“成功消息”?

    假设您有一个类似 ASP NET ASP DetailsView 的东西来显示和编辑数据库中的单个记录 记录错误情况很简单 您添加验证和验证摘要 当您的更新表单验证失败时 它自然会发出噪音 它显示验证消息和 或验证摘要 不需要任何后面的代码
  • 如何在 Windows 上使用 youtube-dl 提取音频

    我想从 Windows 上使用 youtube dl 下载的视频中提取音频 我让 youtube dl 正常工作 但无法提取音频 此问题是由于未安装正确的音频代码造成的 当我尝试提取音频时 它告诉我以下内容 WARNING unable t
  • openXML电子表格文档返回用于MVC文件下载的字节数组

    我试图以 byte 的形式返回一个 openXML 电子表格文档 然后我可以使用它来允许我的 MVC 将该文件发送给用户 这是我的电子表格文档方法返回字节数组 using MemoryStream mem new MemoryStream
  • C++ 中用 :: 限定的命名空间

    如果 C 中的命名空间被限定 这意味着什么 例如 testing Test 是范围解析运算符 它始终意味着 在全局命名空间中搜索右侧的符号 例如 namespace testing int a 1 namespace foo namespa
  • 如何使用 Python 搜索和替换 XML 文件中的文本?

    如何搜索整个xml文件中的特定文本模式 然后用 Python 3 5 中的新文本模式替换该文本的每次出现 其他所有内容 格式 属性 注释等 都需要保持原始 xml 文件中的原样 我在 Windows win32 上运行 Python 3 5
  • 在 package.json 中设置 process.env var

    我正在尝试使用 package json 设置和检索节点应用程序 process env 变量 因此通过研究问题 我找到了一个通过 配置 部分设置 检索 process env 的示例 因此我添加了一个新配置部分如下图 config var
  • 获取 Jenkinsfile 失败的错误原因

    我有以下内容post故障部分 post failure mail subject u2639 env JOB NAME env BUILD NUMBER has failed body Build env BUILD URL is fail