【发布时间】:2018-04-04 05:05:10
【问题描述】:
我认为这应该很简单,但显然不是......或者我试图以错误的方式做这件事:)
我正在使用 Mattermost 插件在作业运行结束时发送聊天通知。这很好用。
现在我想在通知中添加一个 URL。此 URL 的一部分是在构建后步骤中的作业运行期间生成的。我的方法是在后期构建步骤中将动态生成的部分导出到环境变量中,然后将其传递给 Mattermost 插件。该插件可以与 ${} 变量一起使用。尽管如此,传递的变量是空的/不可访问,尽管它在脚本执行期间被正确设置。
所以问题是:如何在构建后脚本执行中设置环境变量,以便其他步骤/插件可以使用它?
我确实查看了EnInject Plugin,但它仅在构建步骤中有效,在构建后无效。
编辑
后期构建脚本是一个简单的 bash 脚本,它运行 curl 命令并将其输出保存在变量 POST_RESULT 中。我从这个结果中提取了一个“BLA-123”形式的子字符串。这就是保存到EXECUTION_TAG 并导出的内容:
export EXECUTION_TAG=$(echo $POST_RESULT | grep -oP "(BLA-\d+)")
EXECUTON_TAG 是我想要添加到 Mattermost 通知中显示的 URL 的内容,如下所示:
Execution URL: http://some.random.link/execution/${EXECUTION_TAG}
【问题讨论】:
-
这很容易实现。您可能会遇到范围界定问题,或者设置一个 groovy 变量,而不是环境变量。贴一些代码,帮助会更容易。
标签: jenkins