Jenkins 声明性管道中环境变量声明中的全局变量
是否可以使用globals在声明性管道中设置环境变量的值 下面的示例按预期工作Jenkins 声明性管道中环境变量声明中的全局变量,jenkins,jenkins-pipeline,Jenkins,Jenkins Pipeline,是否可以使用globals在声明性管道中设置环境变量的值 下面的示例按预期工作 #!groovy @Library("SomeSharedLibrary@1.0.0") _ pipeline { agent none environment { FOO = "World" BAR = "Hello ${FOO}!" } stages{ stage("Simple test") { steps
#!groovy
@Library("SomeSharedLibrary@1.0.0") _
pipeline {
agent none
environment {
FOO = "World"
BAR = "Hello ${FOO}!"
}
stages{
stage("Simple test") {
steps {
echo BAR //prints "Hello World!"
}
}
}
}
以下代码失败。它使用ASharedLibrary
中定义的全局var
#!groovy
@Library("ASharedLibrary@1.0.0") _
pipeline {
agent none
environment {
FOO = "World"
BAR = glovalvar.greet(FOO)
}
stages{
stage("Simple test") {
steps {
echo BAR //fails telling that BAR is not defined.
}
}
}
}
在上一个示例中,如果我将FOO
替换为条中的实际值,BAR
将采用正确的值
有什么想法吗?我做错什么了吗?考虑到管道语法支持这一点:如果您使用
字符串FOO
=>显式地键入FOO
,该怎么办。。。还是带有…greet(FOO.toString())
的参数?注:在“中”之后缺少了一些东西,不是吗?你确定glovavar
没有打字错误吗?@StefanHanke我也这么想,但是管道不应该在'glovavar'未找到的情况下提前失败吗?@GeroldBroser-Jenkins 2.67默默地忽略错误,并且没有定义变量。使用时会抛出错误。@StefanHanke我明白了。谢谢你的信息。