0

私はジェンキンスDSLの初心者です。fabfile で使用するために、資格情報を環境変数として設定しようとしています。まず、ラッパー ブロックでバインドするよりも、ステップ コンテキストで使用する資格情報を決定します。問題は、ステップ ブロックの前にラッパー ブロックが実行されるため、資格情報が見つからないというエラーが発生することでした。別の方法で値を設定する方法がわかりません。何か案は?私のコードを追加しました:

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')
}
4

1 に答える 1

0

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

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

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

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

于 2016-03-24T10:14:07.087 に答える