在我的Jenkins bash脚本中,我导出以下环境变量:
export TAG_NAME=v$LIVE_VERSION.$LIVE_BUILD
在Git发布者部分,我试图创建一个标签名称字段填充为的标签$TAG_NAME
,但它试图以字面意义创建一个具有名称的标签,$TAG_NAME
而不是替换环境变量的值。
注意:这不是此 SO问题的重复内容,因为答案适用于询问者,但由于某些原因对我无效。
我假设您通过Jenkins中的“执行外壳”步骤开始bash吗?
这里的问题是shell环境变量与Jenkins使用的环境变量不同。虽然您可以在bash中使用某些Jenkins变量(去
看看哪些变量),但是您不能相反。当bash完成时,您在bash中设置的任何变量都将消失。
一种解决方法是使用Jenkins EnvInject插件将标签写入文件并读取它们 。该插件可以读取属性文件,并将所有属性添加为Jenkins环境变量。
例如,将bash写入文件:
echo TAG_NAME=v$LIVE_VERSION.$LIVE_BUILD > tags.txt
EnvInject插件读取文件并注入其属性,以便Jenkins可以使用它: