2

テストでパスワードを取得して使用できる「ビルド環境」セクションのオプションを使用して、ジェンキンスでパスワードを設定しようとしています。これは、「環境変数としてビルドにパスワードを挿入する」でチェックしているオプションです。問題は、シード ジョブが実行されると、これらの値が失われることです。そのため、シードジョブの実行後に追加された値が消えています。誰かがこの問題に直面しましたか? テストコードでそれらのpwdを取得できるように、永続的にするにはどうすればよいですか?

4

2 に答える 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 に答える