2012年11月1日木曜日

[git] pushしたらdeployしてほしいよね

背景

pushしたとき、自動でdeployしてくれるhookスクリプトが欲しかった。


post-update hook


git push した際、push先のレポジトリで実行される。
設定してあるhookスクリプトには、リファレンス名が引数として渡ってくる。
同じようなものでpost-receiveフックがあるが、
post-receiveは、更新されるリファレンスの数にかかわらず一回実行。
post-updateは、対象になるリファレンス毎に実行される模様。



ソース


すごく単純。いま使っているデプロイコマンドは引数にブランチ名を取るので、
pushされた時渡ってくる引数から、ブランチ名を取得して、引き渡している。
これをサーバ側レポジトリに、.git/hooks/post-updateという名前で保存して、
実行権限持たせておけば、OK
pushしたら自動でdeployしてくれる。

BRANCH=$(git rev-parse --symbolic --abbrev-ref $1)
echo ${BRANCH}
deploy ${BRANCH}

0 件のコメント:

コメントを投稿