今回実装する環境や設定内容は過去記事を参照ください。
取り敢えず今回はローカル環境からmasterブランチにpushすれば本番環境のサーバ(www.example.com)へデプロイ。
masterブランチ以外にpushすればテストサーバ(debug.example.com)へそれぞれデプロイされる事を目標にしています。
環境説明
本番サーバー:www.example.com
テストサーバ:debug.example.com
Gitリポジトリ:www.example.com
サーバ上Gitへフック設定
vim ~/repos/www.example.com/httpdocs.git/hooks/post-update # push されたブランチ名が BRANCH に入る BRANCH=$(git rev-parse --symbolic --abbrev-ref $1) if [ "${BRANCH}"="master" ]; then ( cd /var/www/vhosts/www.example.com/httpdocs git --git-dir=.git fetch git --git-dir=.git reset --hard origin/master git --git-dir=.git clean -fdx ) else ( cd ~/tmp git --git-dir=.git fetch git --git-dir=.git reset --hard origin/${BRANCH} git --git-dir=.git clean -fdx rsync -avr --delete --stats ./ /var/www/vhosts/debug.example.com/httpdocs ) fi
以上で完了です。