当前位置: 首页 > 面试题库 >

Jenkins:在电子邮件正文中报告中间[Windows Batch]构建步骤的结果

吴伟志
2023-03-14
问题内容

作为Jenkins构建过程的一部分,我们运行了几个Windows批处理脚本,并希望在Jenkins最后发送的电子邮件中报告有关这些中间步骤的一些信息。

我认为一种简单的方法是在批处理步骤中设置Windows环境变量,我们设法使用PowerShell进行了设置,如下所示:

powershell.exe -Command "& {[Environment]::SetEnvironmentVariable('ThisIsATest', 'TestValue', 'Machine')}"

在“执行Windows批处理命令”构建步骤中执行时,这将正确地“最终”设置环境变量。意思是说,如果我远程访问构建服务器,则可以验证该值是否在每次构建期间均按预期方式创建/修改。

但是,尝试通过添加来使用“后生成操作”下的“可编辑电子邮件通知”步骤中的值

Our test value: ${ENV, var="ThisIsATest"}

“默认内容”部分中的“错误”不会给出正确的结果。使用

Print full environment: ${ENV}

还显示该值具有“ 尚未” 被创建。

甚至更奇怪的是,即使我在远程会话中可以清楚地看到它(并跟踪对它的更改等),多次运行也根本不会拾取有问题的环境变量。

问题:

  • 还有其他方法可以实现我们的目标:

“在编译成功/失败时报告常规成功/失败/单元测试,但在电子邮件正文中还报告了中间步骤的其他信息”?

  • 或者,也许可以解释有关电子邮件插件未选择预期的环境变量的 奇怪 行为(至少对我来说)?(也许可以就在哪里寻找解决方法给出一些新的想法)

感谢您抽时间阅读。与往常一样,任何建议都值得赞赏。

-T


问题答案:

在“正常”情况下,在构建步骤中设置的环境变量不会传播到外部。您可以执行以下操作:

  • 安装EnvInject插件
  • 设置环境变量并将其保存为以下格式的属性文件 VAR=VALUE
  • 在接下来的构建步骤中,使用EnvInject插件导入文件(安装该插件后,您将在构建步骤选项中看到“注入环境变量”)。变量将在整个构建过程中可用。


 类似资料:
  • 问题内容: 我是詹金斯的新手。我想知道如何将生成的生成文件附加到作为生成后操作发送的电子邮件中? 谢谢 问题答案: 您可以使用此插件,该插件可让您自定义电子邮件并附加构建文件。

  • 问题内容: 我想用詹金斯建立一个Maven项目。但是,只有在SVN储存库中的某个文件已更改(并且包含特殊密钥)的情况下,才必须构建项目。 所以我的计划是创建一个包含两个构建步骤的工作: 第一步是执行检查该“条件”的shell或python脚本。 第二步是实际的Maven构建 仅当步骤1中的条件检查返回“ true”时,才必须调用第二步。 有可能这样做吗?好吧,我想如果不满足条件,我可以在第一个脚本

  • 我有一个场景,我需要从不同的TestNG-Emailable-HTML报告中收集数据,并使其与testng-emailable报告一样。 我对此没有任何想法,比如我如何实现它。我只想创建一个分离的java项目,它将读取不同的html报告,并将使其最终合并报告看起来像testng-emailable报告。 我看起来没有工作代码。只是寻找一些输入来启动这个需求。

  • 我正试图在testng报告中附加屏幕打印。这在index.html报表中工作得很好,但在emailable报表中,它只是html标记,当我检查它作为html escaps记录的html文件时,对此有任何帮助

  • 在中运行测试时,即使所有测试都成功完成,我也会在控制台输出中看到以下记录: 构建步骤“诱惑报告”将构建结果更改为不稳定。

  • 问题内容: Culprits是自上次不间断构建以来至今做出更改的用户列表。Jenkins Email-ext插件可以在构建后操作期间向罪犯发送电子邮件。 我想在Jenkins工作中的python脚本构建步骤中使用Culprits定义的电子邮件列表。 谁能建议我该怎么做? 问题答案: “罪犯”列表来自jenkins中的SCM插件,其中包括自上一次成功构建以来已提交的所有用户。最终,电子邮件扩展插件将