Post-build Actions部分没有看到注入的环境变量
Post-build Actions part does not see injected environment variable
脚本生成一个 properties
文件以在 Build
部分的 Execute shell
块中工作-space。此文件在工作时可用 - space 在脚本执行后,如果是 Failed
构建(Build
部分中的 Conditional steps (multiple)
块),将注入此属性文件。我的 Jenkins 作业会发送一封电子邮件(Editable Email Notification
块)以防万一 Failed
构建并且它应该包含来自属性文件的变量但它没有看到这个变量。仅供参考:此块可以使用其他环境变量。
我已经交叉检查了属性文件,它在每种情况下都包含所需的变量。
工作中的属性文件-space:
从属性文件注入环境变量:
此 Steps to to run if condition is met
块包含更多其他操作,这些操作正常。这意味着 运行 可以到达此块。
Post-build 中的可编辑电子邮件通知块:
如果我在构建中选中 Environment Variables
选项,我可以看到变量:
但是当我收到邮件时,它不包含变量:
知道我该如何解决它或我应该改变什么吗?
注意: 该变量是唯一的并且与 Gerrit
没有真正相关,所以我不能使用来自 Gerrit
的另一个变量。只是var的名字有点棘手。
我找到了问题的答案。 Jenkins
或插件有限制。它无法处理失败状态。如果前一个 execute shell
块失败,那么 运行ning 将不会到达 Conditional steps (multiple)
块。
另一方面,我找到了这个问题的 "workaround"。
1.步骤
您需要使用特定的 return 代码退出 Execute shell
块。例如:111
2。步骤
您需要将 Exit code to set build unstable
文件设置为您的特定退出代码。 (您可以在 Execute shell
块的高级选项中找到此字段。)如下图所示。
3。步骤
设置Conditional steps (multiple)
块来处理Unstable
状态。使用此解决方案,运行ning 能够 运行 进入 Conditional steps (multiple)
块。
4.步骤
在 Conditional steps (multiple)
块内创建一个 Execute shell
块 在你准备好所有你想要的以防作业失败后。这意味着在此块之后,您的工作状态从 Unstable
更改为 Failed
。
使用这个解决方案你可以处理失败的工作,最后你会得到一个真正失败的工作(不是不稳定的)。
不是最优雅的解决方案,但它有效。
脚本生成一个 properties
文件以在 Build
部分的 Execute shell
块中工作-space。此文件在工作时可用 - space 在脚本执行后,如果是 Failed
构建(Build
部分中的 Conditional steps (multiple)
块),将注入此属性文件。我的 Jenkins 作业会发送一封电子邮件(Editable Email Notification
块)以防万一 Failed
构建并且它应该包含来自属性文件的变量但它没有看到这个变量。仅供参考:此块可以使用其他环境变量。
我已经交叉检查了属性文件,它在每种情况下都包含所需的变量。
工作中的属性文件-space:
从属性文件注入环境变量:
此 Steps to to run if condition is met
块包含更多其他操作,这些操作正常。这意味着 运行 可以到达此块。
Post-build 中的可编辑电子邮件通知块:
如果我在构建中选中 Environment Variables
选项,我可以看到变量:
但是当我收到邮件时,它不包含变量:
知道我该如何解决它或我应该改变什么吗?
注意: 该变量是唯一的并且与 Gerrit
没有真正相关,所以我不能使用来自 Gerrit
的另一个变量。只是var的名字有点棘手。
我找到了问题的答案。 Jenkins
或插件有限制。它无法处理失败状态。如果前一个 execute shell
块失败,那么 运行ning 将不会到达 Conditional steps (multiple)
块。
另一方面,我找到了这个问题的 "workaround"。
1.步骤
您需要使用特定的 return 代码退出 Execute shell
块。例如:111
2。步骤
您需要将 Exit code to set build unstable
文件设置为您的特定退出代码。 (您可以在 Execute shell
块的高级选项中找到此字段。)如下图所示。
3。步骤
设置Conditional steps (multiple)
块来处理Unstable
状态。使用此解决方案,运行ning 能够 运行 进入 Conditional steps (multiple)
块。
4.步骤
在 Conditional steps (multiple)
块内创建一个 Execute shell
块 在你准备好所有你想要的以防作业失败后。这意味着在此块之后,您的工作状态从 Unstable
更改为 Failed
。
使用这个解决方案你可以处理失败的工作,最后你会得到一个真正失败的工作(不是不稳定的)。
不是最优雅的解决方案,但它有效。