我正在尝试在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
我以为我遵循了这些指示,并且将其JOB_NAME作为变量之一。
JOB_NAME
我决定尝试:
sh 'env'
在我的DSL中,结果显示为:
JOB_NAME = foo-bar
这是我所期望的。
另一个博客提到:
使用环境变量 我们有两种方法来获取它们的价值。-D=在启动过程中传递的属性,System.getProperty("key")由于Groovy与Java的紧密联系,我们可以理解为。 以Java方式读取普通环境变量是System.getenv("VARIABLE")…
使用环境变量
我们有两种方法来获取它们的价值。-D=在启动过程中传递的属性,System.getProperty("key")由于Groovy与Java的紧密联系,我们可以理解为。
-D=
System.getProperty("key")
以Java方式读取普通环境变量是System.getenv("VARIABLE")…
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脚本读入。我正在尝试管道作业,当我得到该工作时,将使它成为具有的多分支管道Jenkinsfile。
$JOB_NAME
Jenkinsfile
所有的环境变量使用访问env,如${env.JOB_NAME}。
env
${env.JOB_NAME}