jenkins - Post-build Actions 部分看不到注入(inject)的环境变量

标签 jenkins properties environment-variables properties-file post-build

脚本生成 properties文件到 Execute shell 中的工作空间阻止 Build部分。该文件在脚本执行后和 Failed 的情况下在工作空间可用构建(Conditional steps (multiple) block 中的 Build 部分)此属性文件将被注入(inject)。我的 Jenkins 工作会发送一封电子邮件(Editable Email Notification block )以防万一 Failed构建,它应该包含属性文件中的变量,但它没有看到这个变量。仅供引用:此 block 可以使用其他环境变量。
我已经交叉检查了属性文件,它在每种情况下都包含所需的变量。

工作空间中的属性文件:

enter image description here

从属性文件注入(inject)环境变量:

这个Steps to to run if condition is met block 包含更多其他操作,这些操作正常。这意味着运行可以到达这个街区。

enter image description here

后期构建中的可编辑电子邮件通知 block :

enter image description here

如果我检查 Environment Variables在构建选项中,我可以看到变量:

enter image description here

但是当我收到邮件时,它不包含变量:

enter image description here

知道如何解决它或我应该改变什么?

注意:该变量是唯一的,与 Gerrit 没有真正的关系。所以我不能使用来自 Gerrit 的另一个变量.只是 var 的名称有点棘手。

最佳答案

我找到了我的问题的答案。 Jenkins或者插件有限制。它无法处理失败状态。如果之前的 execute shell block 失败则运行不会到达Conditional steps (multiple)堵塞。

另一方面,我找到了解决此问题的“解决方法”。

1.步骤

您需要退出Execute shell带有特定返回码的 block 。例如:111

2.步骤

您需要设置 Exit code to set build unstable归档到您的特定退出代码。 (您可以在 Execute shell block 的高级选项中找到此字段。)如下图所示。

enter image description here

3.步骤

设置Conditional steps (multiple) block 来处理 Unstable状态。使用此解决方案,运行能够运行到 Conditional steps (multiple)堵塞。

enter image description here

4.步骤

创建 Execute shell block 内 Conditional steps (multiple) block 在你准备好一切你想要的东西之后,以防工作失败 .这意味着在此 block 之后,您的工作状态将更改为 Failed来自 Unstable .

enter image description here

使用此解决方案,您可以处理失败的工作,最终您将获得真正失败的工作(不是不稳定的)。

不是最优雅的解决方案,但它有效。

关于jenkins - Post-build Actions 部分看不到注入(inject)的环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57380584/

相关文章:

jenkins - MS Web Deploy 忽略 <setParameter> 条目 + 写入错误的文件

maven - sonar maven 插件构建错误,SonarQube 版本 : null

c# - 如何自动创建属性?

批评 : How can I resolve '^Magic variable "$ENV"should be assigned as "local"'?

bash - 如何在 chroot SSH Plesk 托管 Web 空间环境中忽略 shebang "#!/usr/bin/env bash"

jenkins - Jenkins 中的多个构建队列

jenkins - Jenkins 管道中的变量

iphone - @property/@synthesize 问题

jQuery 检查字体粗细是正常还是粗体

java - Tomcat - CATALINA_BASE 和 CATALINA_HOME 变量