Jenkins在构建shell步骤期间获取配置文件

时间:2013-05-03 20:43:11

标签: jenkins sh

我正在尝试在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

我不知道双加意味着什么,也许它被导出到不同的范围?如果是,为什么?

我还没有真正研究过EnvInject或EnvFile插件。我计划在这次演习之后感到沮丧,但我认为无论如何这都是一个很好的问题,因为我认为这可能只是抨击。

任何人都知道到底发生了什么事?

1 个答案:

答案 0 :(得分:0)

只是在黑暗中拍摄,但您是否尝试使用{}时使用${VAR_ONE}包围变量?

关于双加我也可以猜。我会说这是因为来自配置文件的变量声明被加载到当前的shell中......但这只是我的猜测。

希望这会有所帮助。