我有Jenkins的作业,它有执行shell部分,我有一些变量 构建动态填充。
构建执行后,我想将此变量传递给email-ext插件默认内容,以便能够显示它的值。
我尝试了几种方法但没有成功:
关于如何做到这一点的任何想法?
答案 0 :(得分:3)
就我而言,我不是管理员,所以我无法安装插件。但是可以通过变通办法来完成。
在Content Token Reference
帮助中,您可以找到有用的工具。
${PROPFILE,file="FILENAME",property="PROPERTYNAME"}
扩展为属性文件中属性的值。文件名是 相对于构建工作区的根。
然后将值保存在Build > Execute Shell
内的属性文件中:
rm -f ${WORKSPACE}/env.properties
touch ${WORKSPACE}/env.properties
store="/opt/current/store"
echo "store.folder=${store}" >> ${WORKSPACE}/env.properties
echo "${store}"
并使用以下内容从Post-build Actions > Editable Email Notification
中进行阅读:
${PROPFILE,file="env.properties",property="store.folder"}
答案 1 :(得分:2)
您可以使用以下命令将构建参数传递给电子邮件ext插件:
$ {ENV,VAR ="资本化:VAR_NAME"}
通过这种方式,我在收到的邮件中看到了变量值。
答案 2 :(得分:1)
在“shell部分”中写入该文件后,使用EnvInject Plugin从文件中读取变量。
通常,环境变量永远不会从子进程回到父进程,这是Windows和Unix操作系统系列的基本功能。子项总是获取父项环境的副本,如果它修改了它,它会修改它自己的副本(如果它启动任何子进程,则会复制到任何子进程等)。但是为了获得更改,必须使用其他一些方法,例如子项写入对文件的所需更改,然后由父级解析,然后父级可以根据它来编辑它自己的环境。
答案 3 :(得分:1)
简单易用:
在“执行外壳”中
echo "test log" > /some/file/path/logFile.txt
然后在“可编辑的电子邮件通知-默认内容”中
${FILE,path="/some/file/path/logFile.txt"}
构建,您将收到一封包含“测试日志”内容的电子邮件
要查看更多电子邮件令牌,请单击“可编辑电子邮件通知”部分中“内容令牌参考”旁边的问号。