通过评估命令设置Jenkins环境变量值

时间:2015-10-01 02:30:43

标签: shell jenkins command environment-variables evaluate

任何人都知道如何使用inject变量或其他方式在jenkins中基于unix终端命令设置环境变量值。例如,CurrentBranch = ls /project/folder | grep my_name。这似乎不起作用。我想要这个命令,ls / project / folder | grep my_name,要进行评估,结果应设置为CurrentBranch。

某些原因,CurrentBranch变量值永远不会被评估,而是总是有一个值:ls /project/folder | grep my_name

任何人都知道我做错了什么。

感谢。

3 个答案:

答案 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}进行访问。