wake-up-neo.com

So verwenden Sie mehrere Berechtigungsnachweise in withCredentials in Jenkins Pipeline

Ich habe den folgenden Schritt in meiner deklarativen Jenkins-Pipeline: Ich erstelle ein Skript, das aus meinem resources/-Ordner stammt, mithilfe von libraryResource. Dieses Skript enthält Anmeldeinformationen für meinen autobuild-Benutzer und für einige admintest-Benutzer.

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 "
                        }

                    }

                }   

Das funktioniert gut. Ich kann meinen autobuild-Benutzer verwenden. Jetzt suche ich nach dem besten Weg, wie ich auch die krendentiellen Elemente meines admintest-Benutzers einbeziehen kann. Muss ich ihn mit einem zweiten withCredentials-Teil "verschachteln" oder kann ich wieder ein usernamePassword-Array hinzufügen?

18
lvthillo

Natürlich können Sie einen withCredentials-Block verwenden, um verschiedenen Variablen mehrere Berechtigungsnachweise zuzuweisen.

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

Sie können dies auch mit $ class verwenden

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

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