Jenkins DSL管道问题

时间:2017-11-23 16:25:48

标签: jenkins jenkins-pipeline jenkins-job-dsl

所以我有这个groovy脚本应该播放我的DSL作业,但是我不知道在获取凭据并将它们分配给env vars时我做错了什么:

RunWait()

}

我还尝试使用另一种方法失败:

for(job in product_base_jobs) {
pipelineJob("${job}") {
    definition{
        cpsScm {
            scm {
                git {
                    branches('staging')
                    remote {
                        credentials('jenkins-git')
                        url("git@gitty.local/${job}.git")
                    }
                }
            }
            scriptPath("./Jenkinsfile")
        }
        triggers {
        }
    }
    wrappers{
        colorizeOutput()
        timestamps()
        credentialsBinding{
            usernamePassword('ARTIFACTORY_USER','ARTIFACTORY_PASS','JenkinsArtifactoryCredentials')
            usernamePassword('ACCESS_KEY','SECRET_KEY','Jenkins_S3')
        }
    }
    environmentVariables{
        env('ARTIFACTORY_USER',"${ARTIFACTORY_USER}")
        env('ARTIFACTORY_PASS',"${ARTIFACTORY_PASS}")
        env('ACCESS_KEY',"${ACCESS_KEY}")
        env('SECRET_KEY',"${SECRET_KEY}")
    }
}

以下是我遇到的错误:

        credentialsBinding{
            usernamePassword{
                usernameVariable('ARTIFACTORY_USER')
                passwordVariable('ARTIFACTORY_PASS')
                credentialsId('JenkinsArtifactoryCredentials')
            }
            usernamePassword{
                usernameVariable('ACCESS_KEY')
                passwordVariable('SECRET_KEY')
                credentialsId('Jenkins_S3')
            }
        }
        environmentVariables{
            env('ARTIFACTORY_USER',"${ARTIFACTORY_USER}")
            env('ARTIFACTORY_PASS',"${ARTIFACTORY_PASS}")
            env('ACCESS_KEY',"${ACCESS_KEY}")
            env('SECRET_KEY',"${SECRET_KEY}")
        }
    }

是否存在我正在处理的错误,或者它只是一种错误的方法。通常情况下,我会使用WitchCredentials作为脚本时尚的一部分,但我想整合一些有许多相似之处的工作。

1 个答案:

答案 0 :(得分:1)

管道作业类型不支持wrappersenvironmentVariables。在Job DSL中存在这些方法的问题,请参阅JENKINS-31832

不使用Job DSL添加凭据,而是使用Jenkinsfile中的管道代码访问任何凭据。见Credentials Binding

node {
  withCredentials([usernameColonPassword(credentialsId: 'mylogin', variable: 'USERPASS')]) {
    sh '''
      set +x
      curl -u $USERPASS https://private.server/ > output
    '''
  }
}
相关问题