我试图在Jenkins管道脚本中读取一些应该由Git插件设置的环境变量,但似乎它们没有设置,因为当我尝试在脚本中使用时,它的值是空字符串,如果我使用sh ' printenv'我可以看到他们没有设置。
可能我错过了一些东西,但我找不到。
有什么想法吗?
答案 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')