【问题标题】:Jenkins Groovy Error For Credentials in Pipeline管道中凭证的 Jenkins Groovy 错误
【发布时间】:2021-09-13 20:14:25
【问题描述】:

我有一个脚本,其中一部分是:

              stage('plan') {
                withCredentials([
                    [$class: 'AmazonWebServicesCredentialsBinding', credentialsId: aws_cred_id,
                      accessKeyVariable: 'AWS_ACCESS_KEY_ID', secretKeyVariable: 'AWS_SECRET_ACCESS_KEY']]) {
                    string(credentialsId: 'xxxxcredx', variable: 'TF_VAR_token') {
                  docker.withRegistry('https://registry-1.docker.io/', 'dockerhub-creds') {

现在在 Jenkins 中运行时,我看到的输出为:

java.lang.IllegalArgumentException: Expected named arguments but got [{credentialsId=xxxxcredx, variable=TF_VAR_token}, org.jenkinsci.plugins.workflow.cps.CpsClosure2]

我怎样才能修复或修改我的脚本以不出现此错误但实际上让 jenkins 选择凭据和 var 值。

【问题讨论】:

标签: jenkins groovy syntax jenkins-pipeline jenkins-groovy


【解决方案1】:

我认为应该是这样的(无法检查)

凭据绑定文档:https://www.jenkins.io/doc/pipeline/steps/credentials-binding/

withCredentials([
    aws(credentialsId: aws_cred_id, accessKeyVariable: 'AWS_ACCESS_KEY_ID', secretKeyVariable: 'AWS_SECRET_ACCESS_KEY'),
    string(credentialsId: 'xxxxcredx', variable: 'TF_VAR_token'),
]) {
    docker.withRegistry ...
}

【讨论】: