そんな大層なもんじゃ無いです。
ダウンタイムとか考えてないですし。
git pushでデプロイするには
gitのhooksの中でpost-updateを使います。
中身を、
post-update
BRANCH=$(git rev-parse --symbolic --abbrev-ref $1)
case $BRANCH in
"master" )
if [ "$USER" == "mainuser" ]; then
pm2 stop all
cd /sites/mainsite
git --git-dir=.git checkout $BRANCH
git --git-dir=.git pull origin $BRANCH
npm install
pm2 start bin/www
fi
;;
esac
- ブランチ名とってきて
- ブランチ名がmasterなら
- 現在のユーザーを調べてmainuserなら
- pm2で処理をすべて終わらせ、
- サイトのディレクトリに移動し、
- 取得
- 再起動
何も難しい事してませんな。
あ、bashでないと動かないので、それ以外の方は適宜修正してください。