如何在管线脚本中使用Jenkins节点环境变量?

j13ufse2  于 2022-12-22  发布在  Jenkins
关注(0)|答案(3)|浏览(148)

在Jenkins --〉管理Jenkins --〉管理节点--〉配置节点中,在节点属性下,可以配置节点的环境变量。
是否有办法在管道脚本中使用它们?
现在我必须做一些

...
environment {
    GITMIRRORS='/home/jenkins/git-mirrors'
    DLC117='/progress/117_64/dlc'
}
...

因此,我将在许多管道脚本中使用这些路径,但它们是在节点上定义的...

  • 是否有一种方法可以表示“使用该代理”和“使用来自主Jenkins节点配置的env变量”?
  • 如果没有,是否有办法说明GITMIRRORS=GetNodeEnvVariable('...','...')
bksxznpy

bksxznpy1#

可以,您可以通过以下方式使用它们:

echo"${GITMIRRORS}"

也可以在代码中将其用作:

gitMirrors = env.GITMIRRORS
cmssoen2

cmssoen22#

如何在管线脚本中使用Jenkins节点环境变量?
Jenkins问题(追溯至2017年5月......)
如果您负担得起更改:

  • 将任何冲突的envvar定义从全局设置移动到所有节点设置
  • 或加载脚本或在Jenkinsfile中定义适当的变量值

参考文献:https://issues.jenkins-ci.org/browse/JENKINS-44425https://issues.jenkins-ci.org/browse/JENKINS-44465

2w3kk1z5

2w3kk1z53#

我没有找到用纯Groovy实现这一点的方法,但是您可以在节点上执行一个命令,并在脚本块中捕获其输出:

def GITMIRRORS = bat(script: "@echo %GITMIRRORS%", returnStdout: true).trim()

在Windows代理上或

def GITMIRRORS = sh(script: "echo ${GITMIRRORS}", returnStdout: true).trim()

Linux代理上。

相关问题