我目前正在使用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
预先指定的阶段中声明环境变量?