har*_*ish 6 git plugins branch inverse jenkins
我们有一个Jenkins工作,当有新的提交时,它会构建除master之外的每个分支.可以通过git plugin的"选择策略:反向"来配置此行为,以便它侦听除指定分支之外的每个分支.
这个功能非常好.但问题是GIT_BRANCH环境变量总是引用排除的分支(在我们的例子中是'origin/master').如何查询Jenkins构建的实际分支?
目前我正在使用一种解决方法,我从生成的changelog.xml中获取它.但有时候,当Jenkins在不同的分支之间切换时,changelog.xml为空,我找不到这个信息.从Jenkins检索/查询实际构建的分支的正确方法是什么?
Pio*_*ski 17
我成功使用了这种语法:
GIT_BRANCH=`git rev-parse HEAD | git branch -a --contains | grep remotes | sed s/.*remotes.origin.//`
Run Code Online (Sandbox Code Playgroud)
因为 git 从不直接检出分支,而只是直接检出提交,所以您必须执行以下操作:
要获取已签出提交的 sha:
git rev-parse HEAD
Run Code Online (Sandbox Code Playgroud)
要获取提交的所有分支,请执行以下操作:
git branch -a --contains SHA
Run Code Online (Sandbox Code Playgroud)
第二个命令的输出可能如下所示
master
remotes/origin/HEAD -> origin/master
remotes/origin/develop
Run Code Online (Sandbox Code Playgroud)