2016-03-20 19 views
0

私はjenkins dslのnubieです。 私はfabfileで使用するために資格情報を環境変数として設定しようとしています。 ステップコンテキストで使用するクレデンシャル をラッパーブロックでバインドするよりもまず決定します。 問題は、ラッパーブロックがstepsブロックの前に実行されているため、見つからないクレデンシャルのエラーが発生していたことです。 別の方法で値を設定する方法がわかりません。 アイデア? 自分のコードを追加しました:Jenkins dsl - 実行時のバインディングを決定します。

steps{ 
    shell('if [ "$my-variable" == "new" ]; then\n\ 
cred="new"\n\ 
echo "set cred to new" \n\ 
else\n\ 
cred="old"\n\ 
echo "set cred to old"\n\ 
fi;') 
} 

wrappers{ 
    credentialsBinding{ 
     usernamePassword('userVar', 'passwordVar', '${cred}') 
    } 
} 

steps { 
    shell(fab ${envName} start') 
} 

答えて

0

スクリプトには2つの問題があります。

1)ビルド・ラッパーは、ビルド・ステップの前に実行されます。 DSLでは、ステップとラッパーを任意の順序で定義できますが、ジョブは常にステップの前にラッパーを実行します。

2)設定したシェル変数は、シェルステップ内でのみ表示されます。シェル変数はJenkinsに公開されていません。

これは最初のシェルステップを使用せずに解決できると思いますが、そのシェルステップで何を達成しようとしているのかよく分かりません。たぶん、新しい質問を開いて、解決しようとしている上位レベルの問題を説明する必要があります。

関連する問題