Jenkins Git环境变量未在Pipeline中设置

时间:2017-09-20 09:07:13

标签: git jenkins jenkins-pipeline

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

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

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

根据此页面:

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 )

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

答案 1 :(得分:0)

如果像我一样使用checkout scm,您会注意到您没有任何GIT相关的环境变量可以帮助您,因此在这种情况下,您需要这样做:

scm_variables = checkout scm

echo scm_variables.get('GIT_COMMIT')