在 Jenkins 上获取 Gradle 中的 Git 工作分支
Get the Git Working Branch in Gradle on Jenkins
我想在我的 Android 应用程序的版本名称中包含当前的 Git 分支。我将 here 中的这个片段构建到我的 build.gradle
中:
def getWorkingBranch() {
// Triple double-quotes for the breaklines
def workingBranch = """git --git-dir=${rootDir}/git
--work-tree=${rootDir}/..
rev-parse --abbrev-ref HEAD""".execute().text.trim()
print "Working branch: " + workingBranch
return workingBranch
}
该片段已按照文章第一条评论中的建议稍作改动。
当我在本地构建我的应用程序时,它工作正常,但当应用程序是使用 Jenkins
构建时,它工作正常。我还尝试了片段的原始变体,在这两种情况下 workingBranch
字符串都是空的。
Jenkins 似乎是它构建的分支的 'aware',它列出了
下的分支
Git Build Data / Built Branches
,所以应该可以
如果这仅适用于 testers/downstream,使用 Jenkins 的 Git environment variables 怎么样,例如$GIT_BRANCH
?
在本地,当您构建时它不会显示 version/empty,但是当您在 Jenkins 上构建时它会在您的 'version' 字符串中显示正确的分支名称。
要避免本地构建生成空字符串,您可以使用上面的代码片段将分支设置为 GIT_BRANCH
。不完美,但应该可以。
我想在我的 Android 应用程序的版本名称中包含当前的 Git 分支。我将 here 中的这个片段构建到我的 build.gradle
中:
def getWorkingBranch() {
// Triple double-quotes for the breaklines
def workingBranch = """git --git-dir=${rootDir}/git
--work-tree=${rootDir}/..
rev-parse --abbrev-ref HEAD""".execute().text.trim()
print "Working branch: " + workingBranch
return workingBranch
}
该片段已按照文章第一条评论中的建议稍作改动。
当我在本地构建我的应用程序时,它工作正常,但当应用程序是使用 Jenkins
构建时,它工作正常。我还尝试了片段的原始变体,在这两种情况下 workingBranch
字符串都是空的。
Jenkins 似乎是它构建的分支的 'aware',它列出了
下的分支Git Build Data / Built Branches
,所以应该可以
如果这仅适用于 testers/downstream,使用 Jenkins 的 Git environment variables 怎么样,例如$GIT_BRANCH
?
在本地,当您构建时它不会显示 version/empty,但是当您在 Jenkins 上构建时它会在您的 'version' 字符串中显示正确的分支名称。
要避免本地构建生成空字符串,您可以使用上面的代码片段将分支设置为 GIT_BRANCH
。不完美,但应该可以。