Skip to main content

Rsync

git push で本番サーバへの自動同期を実現する

前回の記事では git commit をトリガーに Ansible でローカルの Hugo を自動更新する仕組みを構築した。今回はその続きで、git push のタイミングで本番サーバへの同期も自動化した話を紹介する。 やりたいこと # これまでは本番反映を手動で実行していたが、git push に統合し、push するだけで本番まで反映されるようにしたかった。 git に post-push フックはない # git には post-commit のように「push 後」に処理を実行する post-push フックが存在しない。 代わりに pre-push フックを使う。これは push が実行される直前に呼ばれるフックで、処理が失敗(exit 1)すると push 自体を中止できる。 本番同期に失敗したまま GitHub へ push されるのを防げるため、むしろ都合がいい。 実装 # .githooks/pre-push に本番同期の処理を記述し、実行権限を付与してコミットする。