Jenkins Git 环境变量未在管道中设置

lor*_*ars 2 git jenkins jenkins-pipeline

我试图在 Jenkins 管道脚本中读取一些应该由 Git 插件设置的环境变量,但它们似乎没有设置,因为当我尝试在脚本中使用它的值是空字符串时,如果我使用 sh 'printenv'我可以看到它们没有设置。

可能我错过了一些东西,但我找不到什么。

任何的想法?

Rob*_*les 5

每页:

http://JenkinsURL/pipeline-syntax/globals

SCM 特定的变量(例如 GIT_COMMIT)不会自动定义为环境变量;相反,您可以使用结帐步骤的返回值。

这应该在 Jenkins 2.60 中解决,我相信:

https://plugins.jenkins.io/pipeline-model-definition

查看 JENKINS-45198 的项目

您可以通过在 shell 中运行适当的 git 命令并将它们分配给变量来解决:

GIT_REVISION = sh( script: 'git rev-parse HEAD', returnStdout: true )
Run Code Online (Sandbox Code Playgroud)

在声明式管道中,您必须将其包装在一个 script{} 块中,并可能在管道之外声明变量以获得适当的范围。