在我的Jenkins bash脚本中,我导出以下环境变量:
export TAG_NAME=v$LIVE_VERSION.$LIVE_BUILD
在Git发布商部分,我正在尝试创建标记名称字段填充$TAG_NAME
的标记,但它尝试使用名称$TAG_NAME
创建标记,而不是替换为环境变量的值。
注意:这是不重复this SO问题,因为答案适用于提问者,但由于某种原因对我不起作用。
答案 0 :(得分:5)
我假设您通过"执行shell"开始bash。詹金斯一步?
这里的问题是shell环境变量与Jenkins使用的环境变量不同。虽然你可以在bash中使用某些Jenkins变量(转到<your_jenkins_server_address>/env-vars.html/
查看哪些变量),但你不能反过来。当bash结束时,你在bash中设置的任何变量都会消失。
解决方法是将标记写入文件并使用Jenkins读取它们 EnvInject plugin。该插件可以读取属性文件并将所有属性添加为Jenkins环境变量。
例如,bash写入文件:
echo TAG_NAME=v$LIVE_VERSION.$LIVE_BUILD > tags.txt
EnvInject插件读取文件并注入其属性,以便Jenkins可以使用它: