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

hfyxw5xn  于 2022-09-20  发布在  Jenkins
关注(0)|答案(2)|浏览(226)

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

也许我错过了什么,但我找不到什么。

有什么主意吗?

v7pvogib

v7pvogib1#

每页内容如下:

http://JenkinsURL/pipeline-syntax/globals
特定于SCM的变量(如GIT_COMMIT)不会自动定义为环境变量;相反,您可以使用 checkout 步骤的返回值。

这个问题应该在Jenkins 2.60中得到解决,我相信:

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

请参阅Jenkins-45198的项目

您可以通过在外壳中运行适当的git命令并将它们赋给一个变量来解决问题:

GIT_REVISION = sh( script: 'git rev-parse HEAD', returnStdout: true )

在声明性管道中,您必须将其 Package 在脚本{}块中,并可能在管道外部声明变量以获得适当的作用域。

whitzsjs

whitzsjs2#

如果您像我一样使用checkout scm,您会注意到您没有任何与git相关的环境变量来帮助您,因此在本例中,您需要执行以下操作:

scm_variables = checkout scm

echo scm_variables.get('GIT_COMMIT')

相关问题