无法从Jenkins环境变量读取GIT commitId、分支和URL

qoefvg9y  于 7个月前  发布在  Git
关注(0)|答案(3)|浏览(100)

当我从build.gradle访问时,我从下面的变量中获得了“null”值。只有当代码作为Jenkinsfile中git checkout阶段的一部分克隆到Jenkins Workspace时,GITSCM值才会为null。
System.getenv('GIT_BRANCH')
System.getenv('GIT_COMMIT')
系统.getenv('GIT_URL')

stage ('Check Out') {
            steps {
                echo 'Check-Out code from SCM'
                echo "Git Name : ${env.APP_NAME}"
                checkout([$class: 'GitSCM',
                    branches: [[name: '**/${BRANCH}']],
                    doGenerateSubmoduleConfigurations: false,
                    extensions: [],
                    submoduleCfg: [],
                    userRemoteConfigs: [[
                            credentialsId: 'GITHUB_KEY' ,
                            url: "[email protected]:tools-org/${env.APP_NAME}"]]])
            }
        }

字符串
你能帮助我们如何读取 checkout 块来获取build.gradle中的GIT(CommittId,分支,repo)详细信息吗?

zour9fqk

zour9fqk1#

它们应该分别作为env.BRANCH_NAMEenv.GIT_COMMIT_IDenv.GIT_URL提供。
您可以发出例如sh "printenv | sort"来查看所有变量。

s71maibg

s71maibg2#

我可以使用下面的代码在init.gradle中获取GIT分支名称。

def branchStdOut = new ByteArrayOutputStream()
    exec {
        commandLine 'git', 'name-rev', '--name-only', 'HEAD'
        standardOutput = branchStdOut
    }

字符串

wz8daaqr

wz8daaqr3#

请尝试def someVar = checkout scm
GIT_COMMIT、GIT_分支等应在定义的变量内。

相关问题