Jenkins:将用户定义的变量传递给 Email-Ext 插件

2024-01-01

我使用 Email-Ext 插件在声明性管道的构建后阶段的构建结束时发送结果电子邮件。在电子邮件正文中,我尝试插入一些环境变量和一些用户定义的环境变量。

内置变量显示正常,但是我定义的任何用户定义变量在电子邮件正文中都是空的,或者在 AttachmentPattern 字段中不起作用:

我的环境变量:

pipeline {
    agent any
    environment {
        buildFolder = "build_${BUILD_NUMBER}" 
        robotFolder = "build_${BUILD_NUMBER}/robotDemo" 
        serverName = "abc123"
        robotResults = "${buildFolder}/*.txt"
    }

我在帖子构建中使用的电子邮件扩展格式:{}

emailext attachLog: true, attachmentsPattern: 'build_${env.BUILD_NUMBER}/Robot_Results.txt', body: '<b>Job Name:</b> ${ENV, var="JOB_NAME"}<br><b>Build Number:</b> ${ENV, var="BUILD_NUMBER"}<br><br><b>Build URL:</b><br>${ENV, var="BUILD_URL"}<br><br><b>Log Files:<br><br><br><pre>${BUILD_LOG_EXCERPT, start="^====", end="^report.html"}</pre><pre>${ENV, var="serverName"}</pre>', mimeType: 'text/html', subject: 'ABS Results', to: '[email protected] /cdn-cgi/l/email-protection'

例如:${ENV, var="JOB_NAME"},显示正常。但是 ${ENV, var="serverName"} 根本不显示。

我尝试过各种变体,例如...

${服务器名称}
${env.服务器名称}

...但它们也不起作用。

关于如何在 email-ext 插件中使用用户定义的环境变量(例如上面的“serverName”)有何想法?

谢谢并致以最诚挚的问候,理查德。


您使用单引号,但只有双引号允许插入变量。

我建议您使用 Groovy 脚本来呈现电子邮件内容。

您可以使用预定义 Groovy 脚本 https://github.com/jenkinsci/email-ext-plugin/blob/master/src/main/resources/hudson/plugins/emailext/templates/groovy-html.template像这样:

emailext body: '''${SCRIPT, template="groovy-html.template"}'''

或者添加您自己的模板就像文档中描述的那样 https://github.com/jenkinsci/email-ext-plugin#script-content。我无法确定是否可以从工作区加载该模板,但您可以尝试使用:

emailext body: '''${SCRIPT, template="$WORKSPACE/groovy-html.template"}'''

插值时从环境或参数获取值的语法是:

${env.MY_ENVVAR}
${param.MY_BUILDPARAM}

(env 和 param 是 ja Groovy 映射,包含所有值)

对于所有其他变量:

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

Jenkins:将用户定义的变量传递给 Email-Ext 插件 的相关文章

随机推荐

  • 使用 Jquery 重新构建 ul 和 li 标签

    我尝试通过仅显示每个 ul 10 li 标签来找到分割 ul 标签的方法 假设我有 li 30 个元素 脚本将被重新构建为 3 个 ul 每个 ul 有 10 里标签 我怎样才能做到这一点 假设原件是 ul li a href span A
  • 使用 BufferedReader/BufferedWriter 删除文件的第 N 行

    所以我有一个像这样结构的文本文件 产品 价格 类别 数量 Apple 1 0 Fruits 120 Cucumber 1 4 Vegetables 110 Pear 1 6 Fruits 120 我需要一个可以删除第 N 个项目的函数 在本
  • 如何防止软键盘显示时调整窗口大小和重新布局

    我在活动中显示编辑对话框 当显示软键盘时 活动的窗口将调整为太小 看起来很糟糕 I don t want the window of the activity be resized and layout I just want the ke
  • 拥有级联=“all-delete-orphan”的集合不再被拥有的实体实例引用

    在我的应用程序中 休眠操作是这样的 应用程序使用请求中的新值更新父实体 并删除所有现有的 之前插入的 子实体并插入新的子记录 我正在使用休眠DELETE ORPHAN为此 如下所示 当我这样做时 我收到以下异常 org hibernate
  • 为 Node“导入”ES6

    我想在 Node js 中使用来自 ES6 的 import 而不是来自 common js 的 require 出于某种原因 我认为导入在 Node js 中默认可以工作 但看起来好像没有 我需要安装一些 npm 软件包才能正常工作吗 N
  • IOS App提交失败

    我已经使用 Xcode 7 创建了我的 ipa 并在 ios 9 上运行 它工作正常 但是当我使用应用程序加载器上传它时 它给了我一个错误 Could not make parent directory for Users Myname i
  • 如何使用 NSAttributedString 在 Swift 中添加图像作为文本附件?

    我正在尝试使用我作为按钮放入的图像为 iOS 构建一个自定义键盘 当我按下按钮时 链接到该按钮的图像将被放入属性字符串中 该字符串将加载到自定义键盘视图内的 UiTextView 中 那是有效的 问题是 当我将新图像附加到属性字符串时 字符
  • Excel 2010、VBA 和 ListObjects 小计未随表更改而更新

    因此 具有以下结构 从 A1 开始 显示片段 gt 运行 table border color BBB border width 0px 0px 1px 1px border style dotted body font 12px Aria
  • do 块内的 Haskell where 子句语法

    我正在尝试重构mapM a 内的函数调用doHaskell 中的块 我想将 lambda 提取到 本地 命名函数以使代码更具可读性 我的代码最初看起来像这样 do mapM x gt x 1 aList return aValue 我想把它
  • FFMPEG H264 压缩预设会影响视频质量吗? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我绝对不是 FFMPEG 专家 但根据这个文件 http ffmpeg org trac ffmpeg wiki x264EncodingGuide
  • 遮罩图像,从多个渐变创建矩形

    我有一个径向渐变用作mask image将图像 淡入 background color behind图片 mask image radial gradient ellipse at center rgba 255 255 255 1 1 r
  • 如何使用 javascript 创建 xhtml 元素

    如何使用 javascript 动态创建 html 元素 我想在表格单元格内添加一个复选框 所以我希望代码看起来像这样 td td
  • 将 GraphQL 数据拉入 gatsby-browser.js (或更好的解决方案,请)

    我正在尝试运行一个GraphQL里面查询replaceRouterComponent从内部gatsby browser js 盖茨比浏览器API https www gatsbyjs org docs browser apis 然而 我可以
  • 什么是特殊目的寄存器? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 什么是特殊用途寄存器 特殊用途寄存器的名称是什么 以及每个寄存器的一些描述 顾名思义 特殊用途寄存器是专为任务而设计的寄存器 例如 c
  • Dart 支持参数化单元测试吗?

    我想运行一个 Dart 测试 该测试使用一组输入和预期输出重复进行 类似于 JUnit 的情况 我编写了以下测试来实现类似的行为 但问题是 如果所有测试输出计算不正确 则测试只会失败一次 import package test test d
  • Flask 应用程序使用 opencv 运行速度非常慢

    我有一个烧瓶应用程序 它从相机读取帧并将其传输到网站 相机 py from threading import Thread from copy import deepcopy import queue import cv2 class Ca
  • 为什么我不能用 std::unordered_map 替换 std::map

    这个问题可能有点粗略 因为我家里没有可用的代码 但我知道这件事否则会困扰我整个周末 当我尝试将一些代码更新到 C 11 时 我开始替换一些代码std map with std unordered map 该代码仅使用std map find
  • CGRectContainsRect 不工作

    我用这个方法有问题 我有两个显然彼此包含的矩形 我什至手动绘制了它们的坐标以确保 当我使用 CGRectContainsRect 比较这两个矩形时 它返回 false 对于我的一生 我已经尝试了一切 搜索了网络 但我找不到这个问题的答案 有
  • 使用 jQuery 从 HTML 文本查询脚本元素

    我正在通过以下方式加载页面 ajax 并插入parts将结果放入页面的相应部分 ajax url whole page html success function data status xhr result xhr responseTex
  • Jenkins:将用户定义的变量传递给 Email-Ext 插件

    我使用 Email Ext 插件在声明性管道的构建后阶段的构建结束时发送结果电子邮件 在电子邮件正文中 我尝试插入一些环境变量和一些用户定义的环境变量 内置变量显示正常 但是我定义的任何用户定义变量在电子邮件正文中都是空的 或者在 Atta