指定`agent none`并分阶段使用`environment`

时间:2019-07-01 16:01:13

标签: jenkins jenkins-pipeline jenkins-groovy

我目前正在使用Jenkins管道声明性脚本,并指定了agent none来保持管道的轻量级。

在脚本的stages部分中,我指定一个agent dockerfile true并传递一个--buildarg ACCESS_KEY=$AWS_ACCESS_KEY_ID,它是在environment声明上方的agent中声明的。 [见下文]

我遇到一个错误:      groovy.lang.MissingPropertyException: No such property: AWS_ACCESS_KEY_ID for class: groovy.lang.Binding

解决此错误的唯一方法是在agent any部分之前指定stages

pipeline {
    agent none 
    stages {
        stage('deploy') {
            environment {
                AWS_CRED = credentials('aws-credentials')
            }
            agent {
               dockerfile {
                   additionalBuildArgs "--build-arg AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID --build-arg AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY"
               }
            }
            steps { sh 'echo "$AWS_CRED"' }
        } 

    }
}

是否有另一种方法可以在具有agent none预先指定的阶段中声明环境变量?

0 个答案:

没有答案