我有詹金斯的工作,正在做以下事情(除其他事项外):
问题是AGENT的值似乎不会在“执行shell”构建步骤之外持续存在。当我尝试将其传递到post build动作插件时,它仍然是空白的。
任何人都可以指出我做错了什么吗?我已经阅读了文档,但似乎无法弄明白。
答案 0 :(得分:2)
您的问题是,无论您在shell脚本中设置的变量是什么,它们都无法实现。 对于任何进程都是如此:子进程(您的shell脚本)永远不会直接影响父进程(Jenkins执行程序客户端)的环境。
如果您需要保留数据,则需要将其存储在脚本之外;有很多选项,比如将其上传到服务器或将其存储在数据库中,最明显和最简单的选择是将其保存到文件中。
您甚至可以使用EnvInject支持的语法将值保存到“属性文件”,并在“属性文件路径”字段中指定路径。
答案 1 :(得分:0)
您需要使用要再次注入的环境变量的值填充属性文件,这样它们才能生存,直到构建后操作。属性文件通常驻留在作业的工作区中。
例如,使用以下步骤:
AGENT="My agent"
echo AGENT=$AGENT > my.properties
构建步骤:"注入环境变量",
字段"属性文件路径":
$WORKSPACE/my.properties
制作后的操作:"可编辑的电子邮件通知",字段"默认内容":
Current Agent $AGENT
Or ${ENV, var="AGENT"}