我正在尝试在 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
在我看到的作业的詹金斯控制台输出中:
+ '[' -f /var/lib/hudson-slave/workspace/build_config ']'
+ source /var/lib/hudson-slave/workspace/build_config
++ VAR_ONE=foo
++ VAR_TWO=bar
+ echo
+ echo
我不知道双加是什么意思,也许它被导出到不同的范围?如果是,为什么?
我还没有真正研究过 EnvInject 或 EnvFile 插件。我打算在这个练习后沮丧地完成这个练习,但我认为无论如何这都是一个很好的问题,因为我认为这可能只是猛烈抨击。
有谁知道这到底是怎么回事?