在我的 Jenkins bash 脚本中,我导出以下环境变量:
export TAG_NAME=v$LIVE_VERSION.$LIVE_BUILD
在 Git 发布者部分中,我尝试创建一个标签,其标签名称字段填充为$TAG_NAME
,但它试图创建一个字面上带有名称的标签$TAG_NAME
而不是替换环境变量的值。
注意:这是not的副本this https://stackoverflow.com/questions/12694052/jenkins-git-publisher-tag-not-picking-up-environment-variables所以问题,因为答案对提问者有效,但由于某种原因对我不起作用。
我假设您通过 Jenkins 中的“执行 shell”步骤启动了 bash?
这里的问题是shell环境变量与Jenkins使用的环境变量不一样。虽然您可以在 bash 中使用某些 Jenkins 变量(转到<your_jenkins_server_address>/env-vars.html/
看看是哪些),你不能做相反的事情。当 bash 完成时,您在 bash 中设置的任何变量都会消失。
解决方法是将标签写入文件并使用 Jenkins 读取它们EnvInject 插件 https://wiki.jenkins-ci.org/display/JENKINS/EnvInject+Plugin。该插件可以读取属性文件并将所有属性添加为 Jenkins 环境变量。
例如,bash 写入文件:
echo TAG_NAME=v$LIVE_VERSION.$LIVE_BUILD > tags.txt
EnvInject 插件读取文件并注入其属性,以便 Jenkins 可以使用它:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)