web-dev-qa-db-ja.com

Jenkins PipelineのwithCredentialsで複数の資格情報を使用する方法

宣言的なjenkinsパイプラインには次のステップがあります。libraryResourceを使用して、resources/フォルダーからスクリプトを作成します。このスクリプトには、私のautobuildユーザーと一部のadmintestユーザーの資格情報が含まれています。

stage('Build1') {
                steps {
                    node{
                        def script = libraryResource 'tests/test.sh'
                        writeFile file: 'script.sh', text: script
                        sh 'chmod +x script.sh'
                        withCredentials([usernamePassword(credentialsId: xxx, usernameVariable: 'AUTOBUILD_USER', passwordVariable: 'AUTOBUILD_PASSWD')]){
                            sh './script.sh "
                        }

                    }

                }   

これは正常に機能します。 autobuildユーザーを使用できます。現在、admintestユーザーのクレデンシャルも含めることができる最適な方法を探しています。 2番目のwithCredentials部分で「ネスト」する必要がありますか、それともusernamePassword「配列」を再度追加できますか?

35
lvthillo

もちろん、1つのwithCredentialsブロックを使用して、複数の資格情報を異なる変数に割り当てることができます。

withCredentials([
    usernamePassword(credentialsId: credsId1, usernameVariable: 'USER1', passwordVariable: 'PASS1'),
    usernamePassword(credentialsId: credsId2, usernameVariable: 'USER2', passwordVariable: 'PASS2')
]){
    //...
}
69

また、これを$ classで使用できます

                    withCredentials([[
                      $class: 'AmazonWebServicesCredentialsBinding',
                      credentialsId: 'awsID',
                      accessKeyVariable: 'AWS_ACCESS_KEY_ID',
                      secretKeyVariable: 'AWS_SECRET_ACCESS_KEY'],

                    [$class: 'UsernamePasswordMultiBinding',
                      credentialsId: 'myID',
                      usernameVariable: 'USR',
                      passwordVariable: 'PWD']])
1
Max