相关疑难解决方法(0)

在jenkins共享库代码中访问环境变量

当我使用新的共享库时,我无法访问任何由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)

jenkins-shared-libraries

5
推荐指数
2
解决办法
6487
查看次数

标签 统计

jenkins-shared-libraries ×1