読者です 読者をやめる 読者になる 読者になる

tsukarooohi's diary

CakePHP,CentOS,AWSなど勉強中の技術的記録として利用中。

フック処理を使った自動デプロイ

環境+設定内容は過去の記事を読んで頂ければと思います。
取り敢えずの目標
ローカルからmasterブランチにpushすればサーバの本番環境(www.example.com)
その他ブランチにpushすればサーバのテスト環境(debug.example.com)
それぞれにデプロイされる。


【作業ツリー】
サーバー
www.example.com
debug.example.com

ローカル
www.example.com

フック設定

vim ~/repos/www.example.com/httpdocs.git/hooks/post-update
# push されたブランチ名が BRANCH に入る
BRANCH=$(git rev-parse --symbolic --abbrev-ref $1)
#BRANCH="test"
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

以上で完了。

広告を非表示にする