【发布时间】:2016-10-19 12:07:12
【问题描述】:
我们正在使用 Jenkins Pipeline 在 jenkins 中配置作业。对于一堆工作,我们需要用户输入,我们使用参数化构建,用户可以在其中输入参数值,然后我们在 sh 中使用 .jenkinsfile 中的值,如
sh "./build-apply.sh ${accountnumber} ${volumename} ${vpcname} services ${snapshotid}"
这曾经与
- 詹金斯 2.16
- 管道 2.3
- Groovy 2.15
但是,当我将 Jenkins 重建为:
- 2.16 或最新的 2.26
- 管道 2.5
- 管道:Groovy 2.19
上述sh 停止工作。出错了
groovy.lang.MissingPropertyException: No such property: accountnumber for class: groovy.lang.Binding
知道我错过了什么吗?语法不正确吗?
参考全文Jenkinsfile参考
node {
// Mark the code checkout 'stage'....
stage 'Checkout'
git branch: '****', credentialsId: '***', url: '****'
stage 'Provision Volume'
withCredentials([[$class: 'AmazonWebServicesCredentialsBinding', accessKeyVariable: '*****',
credentialsId: '****',
secretKeyVariable: '*****']]) {
// Run the terraform build
env.PATH = "${env.PATH}:/jenkins/terraform"
sh "./build-apply.sh ${accountnumber} ${volumename} ${vpcname} services ${snapshotid}"
}
}
【问题讨论】:
-
您希望
accountnumber、volumename、vpcname和snapshotid来自哪里?您是否使用正确的参数运行作业? -
这些被设置为作业的参数,该作业具有这些名称的参数。所以这来自用户输入并被设置。
-
你能分享这个 Jenkinsfile 中的参数定义吗?
标签: jenkins groovy jenkins-plugins jenkins-pipeline