【发布时间】:2016-07-26 20:50:07
【问题描述】:
我正在尝试在 Jenkins 中使用 DSL 管道。我认为如果我可以将项目名称用作我的脚本的一部分会很好。
git credentialsId: 'ffffffff-ffff-ffff-ffff-ffffffffffffff',\
url: "${repo_root}/${JOB_NAME}.git"
我得到错误:
groovy.lang.MissingPropertyException: \
No such property: JOB_NAME for class: groovy.lang.Binding
我以为我关注了these directions,他们提到JOB_NAME 作为变量之一。
我决定试试:
sh 'env'
在我的 DSL 中,打印出来:
JOB_NAME = foo-bar
这是我所期望的。
另一个blog mentions:
环境变量的使用
我们有两种方法来获得它们的价值。在启动期间-D=传递的属性我们可以读为System.getProperty("key"),这要归功于 Groovy 与 Java 的密切关系。用Java方式读取普通环境变量是
System.getenv("VARIABLE")...
让我们试试这个:
println "JOB_NAME = " + System.getenv('JOB_NAME');
现在,我明白了:
java.lang.NullPointerException: Cannot get property 'System' on null object
空对象?但是,我可以看到JOB_NAME 是一个环境变量!
如何将$JOB_NAME 读入管道作业中的 DSL 脚本。我正在尝试一个 Pipeline 工作,当我开始工作时,它将使它成为一个带有 Jenkinsfile 的 Multibranch Pipeline。
【问题讨论】:
标签: jenkins jenkins-workflow jenkins-pipeline