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