2017-07-21 22 views
1

私のプロジェクトのビルドプロセス中に現在のgitブランチをプロパティに追加したいと思います。ジェンキンスのGradleを使ってプロパティとしてgitブランチを追加する

私のプロジェクトは、ローカルで作成することも、Jenkinsを使用して作成することもできます。プロジェクトをローカルに構築された場合、これは非常に簡単です、私は成功したブランチを取得し、次のタスク定義されている:

task getBranch { 
    def cmd = "git rev-parse --abbrev-ref HEAD" 
    def proc = cmd.execute() 
    def branch = proc.text.trim() 
    ext.branch = branch 
} 

をしかし、ジェンキンスの一部のプロセスを構築するには、最後には、独自にブランチにコミットチェックアウトが含まブランチ、取り外したヘッド状態でプロジェクトを残す:この時点で

commit_hash=${git rev-parse refs/remotes/origin/BRANCH^{commit}} 
git checkout -f ${commit_hash} 

私が取得するgit reflog show -n1を実行することができます:

[email protected]{0}: checkout: moving from BRANCH to $commit_hash 

私はその形式の文字列からBRANCHの値を取得するには、groovyのコードを書く必要があります。しかし、gitからBRANCHを得るもっと簡単な方法があるのだろうかと思っていましたか?

答えて

0

"How to find the current git branch in detached HEAD state"で説明したように、環境変数GIT_BRANCHに探しているものがないかどうか最初にチェックします。

(ジェンキンスGitのレポクローン化されたワークスペースは地元の支店を持っていないので)それ以外の場合は、あなたがREFLOGを解析する必要がある、またはリモートブランチ

git for-each-ref --format="%(objectname) %(refname:short)" refs/remotes/origin | awk "/^$(git rev-parse HEAD)/ {print $2}" 
関連する問題