当我使用新的共享库时,我无法访问任何由Jenkinsfile或通过var / *。groovy脚本直接执行的src类的环境变量。即使我将withEnv添加到var / * groovy脚本中,该问题仍然存在。
使环境变量传播到jenkins共享库src类执行的诀窍是什么?
詹金斯档案
withEnv(["FOO=BAR2"]) {
println "Jenkinsfile FOO=${FOO}"
library 'my-shared-jenkins-library'
lib.displayEnv()
Run Code Online (Sandbox Code Playgroud)
共享库var / lib.groovy
def displayEnv() {
println "Shared lib var/lib FOO=${FOO}"
MyClass c = new MyClass()
}
Run Code Online (Sandbox Code Playgroud)
共享库src / MyClass.groovy
class MyClass() {
MyClass() {
throw new Exception("Shared lib src/MyClass FOO=${System.getenv('FOO')")
}
}
Run Code Online (Sandbox Code Playgroud)
**运行结果**
Jenkinsfile FOO=BAR
Shared lib var/lib FOO=BAR
java.lang.Exception: Shared lib src/MyClass FOO=null
...
Run Code Online (Sandbox Code Playgroud)