2013-05-03 91 views
1

我試圖在jenkins中設置一個構建,它將先前構建(如果存在)中生成的配置文件作爲構建步驟的一部分讀取。然而,我在配置文件中定義的變量似乎並沒有被放入當前shell的環境中,我找不到原因。Jenkins在構建shell步驟期間採購配置文件

第一個構建步驟將從上游項目中提取配置文件。

配置文件具有隻是簡單的變量DEFS:

VAR_ONE=foo 
VAR_TWO=bar 
#etc... 

第二生成步驟是外殼,它看起來像這樣:

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 

我不知道雙加的意思是什麼,也許它被導出到不同的s應付?如果是這樣,爲什麼?

我還沒有真正查看過EnvInject或EnvFile插件。我計劃在挫折之後進行這個練習,但我認爲這是一個很好的問題,因爲我認爲這可能只是一場暴風雨罷了。

任何人都知道這是怎麼回事?

回答

0

只是在黑暗中拍攝,但你有沒有試圖用{}圍繞變量,如${VAR_ONE}使用它們時?

關於雙加我只是可以猜測。我會說這是因爲變量聲明來自加載到當前shell中的配置文件...但是這實際上只是我猜測。

希望這可以幫助。

相關問題