我试图读取Jenkins管道脚本中的一些环境变量,这些变量应该由Git插件设置,但似乎没有设置,因为当我试图在脚本中使用它的值为空字符串时,如果我使用sh‘printenv’,我可以看到它们没有设置。
也许我错过了什么,但我找不到什么。
有什么主意吗?
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 在脚本{}块中,并可能在管道外部声明变量以获得适当的作用域。
whitzsjs2#
如果您像我一样使用checkout scm,您会注意到您没有任何与git相关的环境变量来帮助您,因此在本例中,您需要执行以下操作:
checkout scm
scm_variables = checkout scm echo scm_variables.get('GIT_COMMIT')
2条答案
按热度按时间v7pvogib1#
每页内容如下:
http://JenkinsURL/pipeline-syntax/globals:
特定于SCM的变量(如GIT_COMMIT)不会自动定义为环境变量;相反,您可以使用 checkout 步骤的返回值。
这个问题应该在Jenkins 2.60中得到解决,我相信:
https://plugins.jenkins.io/pipeline-model-definition
请参阅Jenkins-45198的项目
您可以通过在外壳中运行适当的git命令并将它们赋给一个变量来解决问题:
在声明性管道中,您必须将其 Package 在脚本{}块中,并可能在管道外部声明变量以获得适当的作用域。
whitzsjs2#
如果您像我一样使用
checkout scm
,您会注意到您没有任何与git相关的环境变量来帮助您,因此在本例中,您需要执行以下操作: