Git オートデプロイ環境

Gitでリモートリポジトリにプッシュしたときにリモートリポジトリの内容を開発環境に反映させるというやつを作ります。
正確にいうと開発者がpushしたタイミングで開発環境(として設定しているホスト)が自分でpullをするという仕組みです。

hook (post-receive)

リモートリポジトリの中にhooksというディレクトリがあって、その中にフックのサンプルが幾つか入っています。pushしたときに発動してくれるのが

REMOTE_REPOSITORY/hooks/post-receive

というやつになります。post-receive.sampleとなっているので、post-receiveにリネームして使います。中身見てみるとわかるのですが、ただのbashの実行ファイルです。pushしたタイミングで実行されるというだけで、ただのbashなので、

cd REMOTE_REPOSITORY/hooks/
bash post-receive

で実行できます。
なので、パーミッションで実行権限を与えておくと確実かと思います。

pushをメールで知らせる

メールで知らせるだけだとこんな感じ。

[REMOTE_REPOSITORY/hooks/post-receive]
#!/bin/bash
echo "Detected a push" | /usr/sbin/sendmail -i -t user@example.com

https://qiita.com/zaburo/items/8886be1a733aaf581045

Last update: 2017.12.25 (月)