pushしたら自動でdeployする仕組みを作る方法についてメモをまとめます。仕組みの全体像このエントリでは以下のような仕組みを作ることにします。deployサーバは、大きく以下の2つのモジュールで構成します。以下のようなphpスクリプトを配置します。apacheの実行ユーザに書き込み権限を与えておきます。(以下の例では「/home/deploy/webhook/event/」ディレクトリ)SECRET_KEYには、パスワードツールなどで生成した文字列を指定しておきます。touch('/home/deploy/webhook/event/hookfile');}?>okGitHubのリポジトリ画面から、以下のようにたどってWebhookの管理画面を表示します。URL」と「Secret」を指定して設定を追加します。PayloadURLは先ほどのphpのURL、SecretはSECRET_KEYに設定した文字列です。ここまでの手順を終えた後、githubの「deploy/staging」ブランチにpushすると、deployイベントファイル「/home/deploy/webhook/event/hookfile」が作られることを確認します。Deliveries」に表示されるリクエストの結果を見ながら、原因を調べます。deployスクリプトの構築deployサーバに、以下のようなスクリプトを配置します。scriptに実行権を与えたら、以下のようにcrontabに設定します。/home/deploy/webhook/deploy.shここまでの手順を終えた後、もう一度githubの「deploy/staging」ブランチにpushすると、デプロイ手続きが実行され、slackに通知が送られます。後は使いやすいように。deployの成功/失敗でslackのメッセージを変えるとか、deploy時のログをメールで送るとか、shellscriptを変更したりなどすれば良いかと思います。