Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jenkins在构建shell步骤中寻找配置文件_Jenkins_Sh - Fatal编程技术网

Jenkins在构建shell步骤中寻找配置文件

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

我试图在jenkins中建立一个构建,如果它作为shell构建步骤的一部分存在,它将读取在上一个构建期间生成的配置文件。然而,我在配置文件中定义的变量似乎没有被放入当前shell的环境中,我也不知道为什么

第一个构建步骤将从上游项目中提取配置文件

配置文件只有简单的变量defs:

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中的配置文件。。。但这真的只是我的猜测

希望这能有所帮助