Jenkins Git Publisher标签未检测到环境变量

whe*_*ler 2 git bash jenkins

在我的Jenkins bash脚本中,我导出以下环境变量:

export TAG_NAME=v$LIVE_VERSION.$LIVE_BUILD
Run Code Online (Sandbox Code Playgroud)

在Git发布者部分,我试图创建一个标签名称字段填充为的标签$TAG_NAME,但它试图以字面意义创建一个具有名称的标签,$TAG_NAME而不是替换环境变量的值。

注意:这不是 SO问题的重复内容,因为答案适用于询问者,但由于某些原因对我无效。

THe*_*per 5

我假设您通过Jenkins中的“执行外壳”步骤开始bash吗?

这里的问题是shell环境变量与Jenkins使用的环境变量不同。虽然您可以在bash中使用某些Jenkins变量(去<your_jenkins_server_address>/env-vars.html/看看哪些变量),但是您不能相反。当bash完成时,您在bash中设置的任何变量都将消失。

一种解决方法是使用Jenkins EnvInject插件将标签写入文件并读取它们 。该插件可以读取属性文件,并将所有属性添加为Jenkins环境变量。

例如,将bash写入文件:

echo TAG_NAME=v$LIVE_VERSION.$LIVE_BUILD > tags.txt
Run Code Online (Sandbox Code Playgroud)

EnvInject插件读取文件并注入其属性,以便Jenkins可以使用它:

注入环境变量