是否可以使用全局变量在声明性管道中设置环境变量的值?
以下示例按预期工作。
#!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!"
}
}
}
}
以下代码失败。它使用var
中定义的全局ASharedLibrary
。
#!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
将采用适当的值。
有什么想法吗?我做错了什么?