当我在构建流中进一步从git中 check out 存储库时,我想访问git变量,例如GIT_COMMITGIT_BRANCH。目前,我找不到可用的变量来访问这两个参数。

node {
    git git+ssh://git.com/myproject.git
    echo "$GIT_COMMIT - $BRANCH_NAME"
}

这些变量是否可用,以防万一,在哪里可以找到它们。我不介意它们是否可以通过一些时髦的变量或在任何地方可用,只是我可以访问它们。

也许我缺乏Groovy的调试技能,这很容易找到,但是我有限的技能却找不到它。

最佳答案

根据您使用的SCM插件,checkout步骤可能返回有关修订的其他信息。这已在JENKINS-26100中解决。它已在2.6 version of the workflow-scm-step plugin中发布。

例如,使用Git插件,您可以执行以下操作:

final scmVars = checkout(scm)
echo "scmVars: ${scmVars}"
echo "scmVars.GIT_COMMIT: ${scmVars.GIT_COMMIT}"
echo "scmVars.GIT_BRANCH: ${scmVars.GIT_BRANCH}"

具体取决于您使用的插件,因此原始答案可能对您更好。

原始答案

使用Pipeline Nodes and Processes Plugin 2.4版本,您可以简单地执行以下操作:
def gitCommit = sh(returnStdout: true, script: 'git rev-parse HEAD').trim()

10-02 03:19
查看更多