多个 withCredentials(Azure 服务主体)不工作
Multiple withCredentials (Azure Service Principal) not working
我必须注入 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)
...
不要用额外的 []
包裹 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'
}
}
我必须注入 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)
...
不要用额外的 []
包裹 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'
}
}