Gitのフックでカジュアルにデプロイする
Gitのフックを使って、commitしたときに検証環境に自動的に反映させるようにしました。
検証環境でレビューしてもらうことは、日々の開発で多々あることと思います。
これまでcommitしてリポジトリにpushした後、手動で検証環境にデプロイしていたのですが、段々面倒くさくなってきました。
pushしたら自動で検証環境に反映されるようにしたい。
Jenkinsでやるのもなんだか大げさな気がして、カジュアルにGitのフックを使う事にしました。
Gitのフックを用意する
.git/hooks/post-commit
を作成します。
post-commitはcommitプロセスが完了したときに実行されるフックです。
#!/bin/sh # commitが完了したときに実行する # 検証環境にデプロイする # branch="$(git rev-parse --abbrev-ref HEAD)" if [ "$branch" = "development" ]; then echo "検証環境にデプロイします" git push cd ~/mnt/develop_dir && git pull & fi
if文でブランチを判定して、デプロイ対象のブランチであれば、デプロイを行います。
ちなみに僕の環境では、検証環境がマウントしてあるので、cdで移動してgit pullしています。
commitしてみると、メッセージが表示されて(git pullを実行したときのメッセージ)結果を確認することができます。
とてもシンプルなフックですが、検証環境にcdしてgit pullしなくてよくなるのでなかなか便利です。
今回はcommitが完了したら実行するフックを利用しましたが、commitが完了する前やmergeを実行したときなど、様々なフックが用意されています。