1

シェルビルドステップの一部として、以前のビルド中に生成された構成ファイル (存在する場合) を読み取る jenkins でビルドをセットアップしようとしています。ただし、構成ファイルで定義した変数は、現在のシェルの環境に配置されていないようで、その理由がわかりません。

最初のビルド ステップでは、上流のプロジェクトから構成ファイルが取り込まれます。

構成ファイルには、単純な変数定義のみがあります。

VAR_ONE=foo
VAR_TWO=bar
#etc...

2 番目のビルド ステップは、次のようなシェルです。

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 プラグインについては、まだ詳しく調べていません。私は欲求不満でこの演習の後にするつもりですが、これは単に打ちのめすことができると思ったので、とにかくこれは良い質問だと思いました.

いったい何が起こっているのか知っている人はいますか?

4

1 に答える 1

0

暗闇でのショットですが、変数を使用するときに、変数を{}like in で囲み${VAR_ONE}ましたか?

ダブルプラスについては、どちらかを推測できます。現在のシェルにロードされている構成ファイルからの変数宣言が原因だと思います...しかし、これは本当に私が推測しているだけです。

これが役立つことを願っています。

于 2013-08-29T09:20:08.490 に答える