任何人都知道如何使用inject变量或其他方式在jenkins中基于unix终端命令设置环境变量值。例如,CurrentBranch = ls /project/folder | grep my_name
。这似乎不起作用。我想要这个命令,ls / project / folder | grep my_name,要进行评估,结果应设置为CurrentBranch。
某些原因,CurrentBranch变量值永远不会被评估,而是总是有一个值:ls /project/folder | grep my_name
任何人都知道我做错了什么。
感谢。
答案 0 :(得分:0)
我认为你不能以某种方式做到这一点,以便任何 Jenkins任务可以使用它。
然而,您可以编写Jenkins任务,以便所有这些任务都执行shell脚本,然后您的问题归结为寻找合适的rc文件(我们将zsh用作shell,并且只有一个特殊的rc文件用于Jenkins),在这个文件中,你可以用通常的方式设置你的环境,即
export $(ls /project/folder | grep my_name)
(当然,以这种方式点击ls的输出并不是最好的主意,但这是一个不同的主题)
答案 1 :(得分:0)
您可以将CurrentBranch保存在名为env的文件中,并使用EnvFile Plugin将该文件注入作业
echo "CurrentBranch=`ls /project/folder | grep my_name`" > /tmp/env
答案 2 :(得分:0)
在jenkins作业配置中,选中“为运行准备环境”复选框。
选择以下复选框
保持Jenkins环境变量
保持Jenkins构建变量
在“脚本内容”部分中,运行以下命令来创建属性文件
echo "CurrentBranch=`ls /project/folder | grep my_name`" > /tmp/jenkins_job.prop
然后在“属性文件路径”部分中,为此属性文件指定完整路径名。
现在,CurrentBranch变量将在整个版本中可用,并且可以使用$ {CurrentBranch}进行访问。