Несколько с withCredentials (субъект службы Azure) не работает - PullRequest
0 голосов
/ 15 мая 2018

Мне нужно ввести учетные данные Azure, а также другие вещи. Как мне заставить это работать?

stage('provision') {
    withCredentials([
        [azureServicePrincipal('azsrvprincipaldev')],
        [$class: 'FileBinding', credentialsId: 'id_rsa', variable: 'RSA_PATH'],
        [$class: 'FileBinding', credentialsId: 'id_rsa.pub', variable: 'RSA_PUB_PATH']
        ]) {

        sh './jenkins.sh'
    }
}

Ошибка:

java.lang.ClassCastException:
org.jenkinsci.plugins.credentialsbinding.impl.BindingStep.bindings expects 
class org.jenkinsci.plugins.credentialsbinding.MultiBinding but received class java.util.ArrayList

Caused: java.lang.IllegalArgumentException: Could not instantiate 
{bindings=[[@azureServicePrincipal(<anonymous>=azsrvprincipaldev)], 
{$class=FileBinding, credentialsId=id_rsa, variable=RSA_PATH}, 
{$class=FileBinding, credentialsId=id_rsa.pub, variable=RSA_PUB_PATH}]} 
for BindingStep(bindings:    
MultiBinding{AzureCredentialsBinding(credentialsId: String,   
clientIdVariable?: String, clientSecretVariable?: String,   
subscriptionIdVariable?: String, tenantIdVariable?: String)
... 

1 Ответ

0 голосов
/ 15 мая 2018

Не упаковывать azureServicePrincipal() с дополнительными [].
Это должно работать

stage('provision') {
    withCredentials([
        azureServicePrincipal('azsrvprincipaldev'),
        [$class: 'FileBinding', credentialsId: 'id_rsa', variable: 'RSA_PATH'],
        [$class: 'FileBinding', credentialsId: 'id_rsa.pub', variable: 'RSA_PUB_PATH']
        ]) {

        sh './jenkins.sh'
    }
}
...