当计时器触发作业时,如何在 Jenkins 中获取 BUILD_USER?

2024-03-07

我想在工作后电子邮件中向触发 Jenkins 工作的用户显示。这可以通过使用插件来实现构建用户变量插件和环境变量BUILD_USER。 但是当调度程序触发作业时,该变量不会被初始化。

我们怎样才能做到这一点?我知道我们有一个名为 - EnvInject Plugin 的插件,可以使用......

但我只是想知道我们如何使用它并实现解决方案......


简单的解决方案(无插件)!

方法1:通过Shell

BUILD_TRIGGER_BY=$(curl -k --silent ${BUILD_URL}/api/xml | tr '<' '\n' | egrep '^userId>|^userName>' | sed 's/.*>//g' | sed -e '1s/$/ \//g' | tr '\n' ' ')
echo "BUILD_TRIGGER_BY: ${BUILD_TRIGGER_BY}"

方法2:通过Groovy

node('master') {
BUILD_TRIGGER_BY = sh ( script: "BUILD_BY=\$(curl -k --silent ${BUILD_URL}/api/xml | tr '<' '\n' | egrep '^userId>|^userName>' | sed 's/.*>//g' | sed -e '1s/\$/ \\/ /g'); if [[ -z \${BUILD_BY} ]]; then BUILD_BY=\$(curl -k --silent ${BUILD_URL}/api/xml | tr '<' '\n' | grep '^shortDescription>' | sed 's/.*user //g;s/.*by //g'); fi; echo \${BUILD_BY}", returnStdout: true ).trim()
echo "BUILD_TRIGGER_BY: ${BUILD_TRIGGER_BY}"
}

方法 3:通过 Groovy

BUILD_TRIGGER_BY = currentBuild.getBuildCauses()[0].shortDescription + " / " + currentBuild.getBuildCauses()[0].userId
echo "BUILD_TRIGGER_BY: ${BUILD_TRIGGER_BY}"

OUTPUT:

Started by user Admin / [email protected] /cdn-cgi/l/email-protection

Note:输出将是用户 ID 和用户名

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

当计时器触发作业时,如何在 Jenkins 中获取 BUILD_USER? 的相关文章

  • 无法指向 Jenkins 主机上 ~/.ssh 中的 ssh 密钥

    我已经安装了 SSH 代理插件来使用 SSH 身份验证拉取 Git 存储库 我想使用位于系统文件中的 SSH 密钥 来自 Jenkins master ssh选项 这是从官方插件页面截取的屏幕截图 不幸的是我没有看到这个选项 我只能选择 直
  • Jenkins 管道中的 Sonarqube 质量门状态检查失败

    我是詹金斯管道脚本和声纳库的新手 如果我能就以下问题获得一些帮助 那就太好了 当质量门检查失败时 我想使 Jenkins 声明式管道作业失败 根据声纳文档 https docs sonarqube org latest analysis s
  • Jenkins:尽管没有变化,SCM 仍然触发持续构建

    我们遇到一个问题 尽管没有代码更改 SCM 仍在触发构建 SCM 每 15 分钟轮询一次更改 并且仅在发现更改时才触发构建 以下是连续 SCM 轮询日志的几个示例 Started on Nov 15 2013 11 47 14 AM Usi
  • Jenkins 和 Github 不使用 SSH 密钥

    我已将 Jenkins 设置为从 Github 上的私有存储库中提取特定作业 尽管我已经生成了私钥 公钥并将其作为部署密钥添加到 github 但 Jenkins 似乎并未使用 SSH 密钥 当我从 Jenkins 用户进行 git clo
  • 在 System Groovy 中暂时禁用 Jenkins 服务器上的 SCM 轮询

    我们有一个 Jenkins 服务器 正在运行 20 到 30 个作业 由于构建过程相当复杂 我们将实际构建分解为 1 个子构建 其中一些可以同时运行 其他则必须遵循之前的构建步骤 因此 我们将每个构建步骤分为 3 组 这三组在构建进行时会被
  • 如何从容器内运行 podman?

    我想跑podman https podman io作为运行 CI CD 管道的容器 但是 我不断从 podman 容器中收到此错误 podman info ERRO 0000 overlay is not supported over ov
  • 有 JUnit Attachments Jenkins 插件工作的示例吗?

    在过去一个小时左右的时间里 我一直在努力让以下工作正常进行 我将附件存储在目标目录中 但它们在班级级别或测试级别的测试页面上都没有链接 我尝试了以下每种组合 放置附件文件夹target surefire reports class 与目标
  • 如何在 Jenkins 构建之前自动合并 Git 分支?

    如何在 Jenkins 构建之前自动合并 Git 分支 我有 2 个版本 一个用于分支master和一个用于生产 我想做 Git 合并origin master当我进行生产构建时 Jenkins 上最新的 Git 插件支持这一点 刚刚设置C
  • 如何在 Jenkins 中设置发件人地址?

    我正在将邮件从 Jenkins 发送到内部匿名 SMTP 中继 然后 该中继通过端口 587 上的 TLS 安全地发送邮件进行在线交换 传输工作正常 问题是 Microsoft 要求发件人地址与身份验证凭据登录名匹配 该登录名与帐户电子邮件
  • 如何在多进程系统中实现锁定?

    我们正在并行运行许多詹金斯项目 我们使用 python 并且选择使用 pyenv 管理虚拟环境 不幸的是 pyenv 有一个众所周知的竞争条件 https github com yyuu pyenv issues 174 为了解决这个问题
  • 如何使用远程访问 API 获取 jenkins 的系统配置

    詹金斯提供了很好的远程访问API https wiki jenkins ci org display JENKINS Remote access API 可用于获取大量信息 例如作业和视图 我想知道是否或如何从远程访问 API 获取系统 全
  • Jenkins 多分支:更改 Groovy 的工作描述

    我在詹金斯的多分支项目工作正常 但我想修改job描述 默认情况下为 完整项目名称 xxxx 以更有意义 我可以使用以下命令轻松更改构建描述currentBuild当我的变量Jenkinfile已执行 但我不知道如何修改父作业描述 我的用例是
  • 詹金斯管道如果其他不工作

    我正在创建一个示例詹金斯管道 这是代码 pipeline agent any stages stage test steps sh echo hello stage test1 steps sh echo TEST stage test3
  • Netezza 中的 HASH8 函数使用哪种 Jenkins 哈希算法?一次一个/lookup2/lookup3/SpookyHash?

    我需要实现 hash8 函数 或者用 Java 模拟它的输入 输出 Netezza 的简短文档说 hash8 实现了 Jenkins 算法 但是有多种算法 修订版那个名字 http en wikipedia org wiki Jenkins
  • Jenkins 管道阶段 - 传递整个文件

    运行包含多个节点的阶段的 Jenkins 管道 基于 Groovy 我需要将 stageA 上的 NodeA 上的某个文件的列表传递到 StageB 上的 NodeB 在 stageA NodeA 我运行 DEVenv readFile s
  • 如何在 Subversion 的多模块 Maven 构建中触发单个模块的 Jenkins 构建?

    我在 Jenkins 中设置了一个大型 Maven 多模块构建 它是为增量构建而设置的 当触发时 它会解析所有 POM 并找出需要构建的内容 它当前设置为在 SCM 更改时触发 我想进行此构建 以便我可以执行以下操作 还是手动启动吧 当我这
  • Jenkins 和 Gitlab 不获取代码

    当我设置自己的项目时 我遇到了问题 我开始配置我的 Jenkins 作业 我这样做了 在 Jenkins 上为 gitlab 用户帐户创建凭证 在 gitlab 上创建访问令牌并在 Jenkins 中使用此令牌来启用它 and this i
  • 如何仅在特定错误退出值(0 除外)上将 Jenkins 构建标记为成功?

    当我运行Execute shell构建步骤来执行脚本并且该脚本返回0 Jenkins将构建标记为SUCCESS 否则它将其标记为FAILURE这是预期的默认行为0表示没有错误 任何其他值表示有错误 有没有办法将构建标记为SUCCESS仅当返
  • 通过 SVN 从 Jenkins 更新工作区时出现间歇性“SVNException:svn:E175002:连接重置”

    我有 Jenkins 2 138 3 在虚拟机上运行 在同一网络上的另一台 PC 上 我有一个 Visual SVN 服务器 3 9 2 结帐间歇性地 可能是 25 的时间 失败 并出现以下错误 ERROR Failed to check
  • Jenkins + Gerrit 触发器未自动构建

    Jenkins 似乎不会自动引入需要 Gerrit 审核的更改 我们正在使用 Gerrit 触发器 另外 如果我尝试手动触发一些 似乎什么也没有发生 Gerrit Trigger管理区域中的 控制 似乎没有多大 闪烁 启动 停止 或 重新启

随机推荐

  • 无法在 Google 云端硬盘文件夹中创建虚拟环境

    我正在使用 Google Drive 保留我的代码项目的副本 以防我的计算机死机 我也在使用 GitHub 但不在某些私人项目上 但是 当我尝试使用创建虚拟环境时virtualenv 我收到以下错误 PS C users fchatter
  • 如何保护 phpMyAdmin

    我注意到我的网站有一些奇怪的请求试图找到 phpmyadmin 例如 phpmyadmin pma etc 现在我已经通过 apt 在 Ubuntu 上安装了 PMA 并且想通过不同于 phpmyadmin 的网址访问它 我可以做什么来改变
  • Jenkins 中的条件构建后步骤(理想情况下没有插件)

    如果我理解正确的话 我可以使用这个插件来设置构建步骤的条件 https wiki jenkins ci org display JENKINS Conditional BuildStep Plugin https wiki jenkins
  • 如何计算到达某一天的剩余时间(天、小时、分钟、秒)?

    我在用Moment js https momentjs com docs displaying fromnow 检索下周五 moment day 5 format 成功运行并打印2020 06 26T13 19 01 04 00到控制台 现
  • 用于从另一个测试结果生成 JUnit 报告的 Python 脚本

    我有一个验收测试用例 结果是纯文本 我想使用Jenkins来显示结果 JUnit格式适合我 所以我想检查是否有现有的Python代码来生成JUnit格式的XML 这样我就可以轻松地添加我的解析代码 相关问题 https stackoverf
  • SQL - 查找 ADAM GRANT 出演的所有电影的电影标题和语言名称

    我在用 SQL 来思考这样的问题时遇到了很多麻烦 我不知道应该如何构建我的查询 我应该加入吗film on film actor然后加入actor 或者我应该反过来做 我所能做的就是获取一个连接的查询actor and film actor
  • 页面未正确重定向 - HTTPS HTACCESS 重写错误

    我有以下 htaccess 重写规则 规则 1 导致无限循环错误 我正在尝试将所有请求重定向到 HTTPS 但它不起作用 由于规则 1 规则 2 也被阻止 当我评论规则1时一切都很好 如果我更改顺序也会发生此无限循环错误 请帮助我如何解决这
  • GDI+ / C#:如何将图像另存为 EMF?

    如果您使用 Image Save 方法将图像保存到 EMF WMF 则会出现异常 http msdn microsoft com en us library ktx83wah aspx http msdn microsoft com en
  • 如何将 valgrind 与 Python C++ 扩展一起使用?

    我在 C 类上实现了 Python 扩展 我没有用于运行 valgrind 的 C 目标 我想使用 valgrind 进行内存检查 我可以将 valgrind 与 Python 一起使用吗 是的 您可以使用valgrind使用Python
  • viewDidUnload 中有效的内容应该移至 didReceiveMemoryWarning 吗?

    在新的 iOS 6 中 viewDidUnload已弃用 我们已被指示使用didReceiveMemoryWarning相反 管理 UIViewController 实例和子类中的对象 将 nils 分配给内部的 UIView 类型是否同样
  • Angular AOT 组件中的相对路径

    我在这里问是因为我在网上找不到完整的文档 这个例子here https angular io docs ts latest cookbook aot compiler html太简单了 我有一个包含多个组件和一些模块的应用程序 用ngc编译
  • 在 IIS 5.1 (Windows XP) 上部署 ASP.NET MVC

    好吧 部署 ASP NET MVC 似乎很痛苦 我想在 Windows XP IIS 5 1 上部署 ASP NET MVC 应用程序 但似乎找不到如何执行此操作 当我在网络浏览器地址栏中输入应用程序名称时 我收到一条 网站不可用 消息 有
  • ES6数组初始化

    ES6 非常新 在 ES5 中我可能会做这样的事情 function newArray var data for var i 0 i lt 5 i data i test data i return data x newArray 在 ES
  • Tensorflow 中的反向传播(随时间)代码

    在哪里可以找到 Tensorflow python API 中的反向传播 通过时间 代码 或者使用其他算法 例如 当我创建 LSTM 网络时 TensorFlow 中的所有反向传播都是通过自动区分网络前向传递中的操作 并添加显式操作来计算网
  • 在 Android 版 PhoneGap 上捕获返回按键

    我正在使用 PhoneGap 进行 Android 应用程序开发 但我一直在捕获设备上的后退键按下 我尝试了其他线程和官方维基页面中的所有内容 但似乎都不起作用 我可以使用 keyEvent menuTrigger 和 keyEvent s
  • 如何以编程方式读取 PDF 书签

    我正在使用 PDF 转换器来访问 PDF 中的图形数据 一切工作正常 除了我没有得到书签列表 是否有可以读取 PDF 书签的命令行应用程序或 C 组件 我找到了 iText 和 SharpPDF 库 目前正在浏览它们 你曾经做过这样的事吗
  • 是否可以使用 stdout 作为 fluidd 源来捕获特定日志以写入elasticsearch?

    我对 fluidd 和 elasticsearch 都是菜鸟 我想知道 fluidd 是否可以从 stdout 捕获特定日志 在本例中为我们的应用程序生成的自定义审核日志 使用 stdout 作为源 并将它们写入到elasticsearch
  • 合并两个具有相同键的字典

    我有以下 2 本字典想要合并 我想合并相同的键 并且我想保留两个字典的值 我用了dict1 update dict2 但这替换了第二个到第一个字典中的值 u dict1 160 u na u na 162 u test u qq u wds
  • Kitkat (API 19) 中使用 setGroup() 的堆栈通知不起作用

    我有一个问题找不到答案 我已经尝试过 AndroidDeveloper 教程 我已经在 stackoverflow 和 google 上进行了搜索 但要么我的搜索技能太棒了 要么没有答案 我认为可以回答我的问题 当有多条消息时 我想将所有新
  • 当计时器触发作业时,如何在 Jenkins 中获取 BUILD_USER?

    我想在工作后电子邮件中向触发 Jenkins 工作的用户显示 这可以通过使用插件来实现构建用户变量插件和环境变量BUILD USER 但是当调度程序触发作业时 该变量不会被初始化 我们怎样才能做到这一点 我知道我们有一个名为 EnvInje