Jenkins在构建shell步骤中寻找配置文件
我试图在jenkins中建立一个构建,如果它作为shell构建步骤的一部分存在,它将读取在上一个构建期间生成的配置文件。然而,我在配置文件中定义的变量似乎没有被放入当前shell的环境中,我也不知道为什么 第一个构建步骤将从上游项目中提取配置文件 配置文件只有简单的变量defs:Jenkins在构建shell步骤中寻找配置文件,jenkins,sh,Jenkins,Sh,我试图在jenkins中建立一个构建,如果它作为shell构建步骤的一部分存在,它将读取在上一个构建期间生成的配置文件。然而,我在配置文件中定义的变量似乎没有被放入当前shell的环境中,我也不知道为什么 第一个构建步骤将从上游项目中提取配置文件 配置文件只有简单的变量defs: VAR_ONE=foo VAR_TWO=bar #etc... 第二个构建步骤是shell,如下所示: if [ -f $WORKSPACE/build_config ]; then source $WORKSP
VAR_ONE=foo
VAR_TWO=bar
#etc...
第二个构建步骤是shell,如下所示:
if [ -f $WORKSPACE/build_config ];
then
source $WORKSPACE/build_config
echo $VAR_ONE
echo $VAR_TWO
fi
在作业的jenkins控制台输出中,我看到:
+ '[' -f /var/lib/hudson-slave/workspace/build_config ']'
+ source /var/lib/hudson-slave/workspace/build_config
++ VAR_ONE=foo
++ VAR_TWO=bar
+ echo
+ echo
我不知道double plus是什么意思,也许它正在被导出到一个不同的范围?如果是,为什么
我还没有真正研究EnvInject或EnvFile插件。我计划沮丧地做完这个练习,但我想这是一个很好的问题,因为我认为这可能会让你大吃一惊
有人知道这到底是怎么回事吗?这只是一个偶然的机会,但是在使用变量时,您是否尝试过用{}像${VAR__ONE}中的{}来包围变量 关于双倍加,我只能猜测其中之一。我想说这是因为变量声明来自加载到当前shell中的配置文件。。。但这真的只是我的猜测 希望这能有所帮助