Jenkins:Jenkinsfile 管道中的 env 为空

Dav*_*est 1 jenkins jenkins-pipeline

请帮忙。env一片空白。

詹金斯文件:

node {
  println "Your ENV:"
  println env.dump
  println "Your params:"
  println params.dump
}
Run Code Online (Sandbox Code Playgroud)

詹金斯输出:

[Pipeline] properties
[Pipeline] node
Running on foobarquux in c:\workspace\123abc
[Pipeline] {
[Pipeline] echo
Your ENV:
[Pipeline] echo
null
[Pipeline] echo
Your params:
[Pipeline] echo
null
Run Code Online (Sandbox Code Playgroud)

我希望我的环境变量不会为空。我希望不为空并在执行时env.dump看到超出的内容。Your ENV:println env.dump


在阅读了 @mkobit 的非常有用的评论后,我意识到我需要括号dump,即使使用它们,Jenkins 也会抛出安全异常。

Max*_*one 7

${WORKSPACE}仅当在代理(节点)中使用时才有效!否则它会显示为null.

agent none在管道的顶部,因为我有几个input步骤我不想使用重量级执行器。environment {}我在使用的顶级块中设置了一个环境变量${WORKSPACE}。我一生都无法弄清楚为什么它被设置为空。其他一些线程提到了代理上的工作区,因此我将该定义移至代理上的一个步骤中,您瞧,当您在代理上运行时使用 WORKSPACE 设置 var 时,一切都会按预期工作。

这里的侧边栏是,如果您使用的是顶级agent noneenvironment则 和可能的其他前置阶段块不会在代理中运行。因此,任何依赖代理的行为都会出现意外行为。