【发布时间】:2017-11-03 14:15:16
【问题描述】:
在 Jenkins 作业配置中,我在构建部分的命令窗口中编写了一个 bat 脚本。在其中一个脚本命令中,我将环境变量设置为服务器机器中的系统环境变量,如下所示:
setx Analysis_URL "http://analysis_url/analysis/%analysis_id%.html
我现在的任务是将此环境变量值返回给 Jenkins,并将其包含在我的构建后通知电子邮件内容中。有简单的方法吗?
在我的研究中,我遇到了 envInject 插件,但我认为它是用于设置环境变量的,对吗?
更新 1:
事实证明,该变量可以通过电子邮件内容中的简单 $Analysis_URL 访问,但是,这引发了另一个问题,因为我的环境变量在每次构建作业后都会更改其值,但因为 Jenkins 只获取系统的副本环境变量 在每次构建我的电子邮件内容后,我都会获得相同的变量值,它只会在重新启动 Jenkins 后发生变化。有没有办法让 Jenkins 更新系统环境变量?
更新 2:
EnvInject 插件完成了我想要的工作。这些是我执行的步骤:
- 构建步骤“批处理命令窗口”:添加命令:
echo ANALYSIS_URL=$ANALYSIS_URL > my.properties
- 构建步骤“注入环境变量”:在“属性文件路径”字段中
$WORKSPACE/my.properties
- 构建后操作:“可编辑的电子邮件通知”,字段“默认内容”:
当前分析网址:$ANALYSIS_URL
【问题讨论】:
-
这个方法有效,有错别字,$WORDKSPACE/my.properties应该是$WORKSPACE/my.properties