テストでパスワードを取得して使用できる「ビルド環境」セクションのオプションを使用して、ジェンキンスでパスワードを設定しようとしています。これは、「環境変数としてビルドにパスワードを挿入する」でチェックしているオプションです。問題は、シード ジョブが実行されると、これらの値が失われることです。そのため、シードジョブの実行後に追加された値が消えています。誰かがこの問題に直面しましたか? テストコードでそれらのpwdを取得できるように、永続的にするにはどうすればよいですか?
21780 次
2 に答える
4
シード ジョブを実行すると、生成されたジョブに対するすべての手動変更が失われます。これは Job DSL プラグインの意図した動作です。
Job DSL で生成されたジョブでパスワードを使用するには、Credentials プラグインを使用してパスワード (またはシークレット) を Jenkins に保存します。次に、Credentials Binding プラグインを使用して、パスワードをジョブの環境変数にマップします。例としてJob DSL wiki を見てください。
于 2015-06-10T20:02:09.973 に答える
1
@daspilker、@JesseGlick、ご回答ありがとうございます。Jenkins で最初の構成ブロックを作成するのに役立ちました。同じ問題に直面している他の人のために、私の行動に言及すると役立つかもしれません。
Job DSL 1.27 を使用しているため、credentials-Binding を直接使用することはできません。したがって、構成ブロックを作成し、.groovy スクリプトを介して必要な変数を挿入しました。
注: 「credentialsId が見つかりませんでした」というエラーが発生した場合は、「*****/job/config.xml」から「credentialsId」の変換値を取得する必要があります。
static def credentialsBinding = { String userNameVar, String passwordVar, String credId, wrapperContext ->
def nodeBuilder = new NodeBuilder()
wrapperContext.wrapperNodes << nodeBuilder.'org.jenkinsci.plugins.credentialsbinding.impl.SecretBuildWrapper'(plugin: "credentials-binding@1.4") {
bindings {
'org.jenkinsci.plugins.credentialsbinding.impl.UsernamePasswordMultiBinding' {
usernameVariable userNameVar
passwordVariable passwordVar
credentialsId credId
}
}
}
}
于 2015-06-19T17:06:19.180 に答える