Как использовать несколько учетных данных в withCredentials в Jenkins Pipeline

У меня есть следующий шаг в моем декларативном проекте jenkins: Я создаю script, который поступает из моей папки resources/, используя libraryResource. Этот script содержит учетные данные для моего пользователя 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. Должен ли я "вложить" его со второй частью withCredentials или я могу снова добавить массив usernamePassword?

Ответ 1

Конечно, вы можете использовать один блок withCredentials для назначения нескольких учетных данных для разных переменных.

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

Ответ 2

я пытался точно так же, но я получаю ошибку

org.codehaus.groovy.control.MultipleCompilationErrorsException: сбой запуска: WorkflowScript: 54: Аргументы "withCredentials" должны иметь явное имя.