如何在Travis Build中回显当前的git分支

问题描述

我无法在travis版本中获得分支。 如果我在脚本中回显$(git branch)并在Travis中运行它。 它回显 (HEAD在82abe25分离)master

无论如何,我可以得到分支名称吗? 我强调这是在特拉维斯。

我也尝试了git symbolic-ref --short HEAD,但是徒劳。

解决方法

您可以通过读取TRAVIS_BRANCH环境变量来获取正在构建的分支的名称。

来自documentation

TRAVIS_BRANCH:

  • 对于推送构建,或者不是由拉取请求触发的构建,这是分支的名称。
  • 对于由拉取请求触发的构建,这是拉取请求所针对的分支的名称。
  • 对于由标签触发的构建,这与标签(TRAVIS_TAG)的名称相同。

在阅读your comment时,我了解到您也想运行相同的脚本in Jenkins。大多数CI服务器在运行构建时都会签出特定的提交(即分离的HEAD ),因此您将无法使用Git来确定您所在的分支。

最好只检查脚本中的不同环境变量:

if [[ -v $TRAVIS_BRANCH ]]; then
    branch=$TRAVIS_BRANCH
elif [[ -v $GIT_BRANCH ]]; then
    branch=$GIT_BRANCH
fi