Git

Gitで自動デプロイ!

どうも。

思ってた以上に今年の夏はバテずに済んでいて、
もしかして夏に強くなったのかも!?とはしゃいでるひそかです、こんにちは。

夏大好きだからね~もう暇さえあれば遊びたいよね~w(←

で、今回はGitのお話!

手動でPullするのっていちいちめんどくさいよね。。。

以前とあるサイトの公開時に
ローカル→リモートのGit→テスト環境
っていうかんじの構造で開発してたんですがローカルからリモートにcommitした後
いちいち手動でテスト環境でPullしていて非常にめんどくさかったので
そこ自動化できたら楽でいいよね?ってことで試してみました。

今回はWin+さくらVPSという環境でやってます。
(いちいち別画面で開くせいで黒い画面開きまくってウィンドウ整理超めんどかった・・・タブで開けるアプリ探そう・・・)

手順としては以下のとおりでやりました。
もしかしたら余計な手順踏んでるかもしれないけどそのへんはご容赦下さい・・・(^_^;)

実際にやってみる!

  1. リモートに作業用リポジトリを作成(hiso.git)
  2. 本番環境にもリポジトリを作成(test)
  3. 作業用リポジトリ(hiso.git)にhookを設定する。
  4. ローカルから作業用リポジトリ(hiso.git)へPushすると自動で本番環境も変更される!

1.リモートに作業用リポジトリを作成(hiso.git)

共有するかも?と思ったので一応「–bare –shared=group」にしておきましたが
それ以外は特別なことは何もせずいたって普通にGitのリポジトリを作成しました。

2.本番環境にもリポジトリを作成(test)

こちらも通常通りリポジトリを作成。
共有設定はしなかったけど、remote origin に作業用リポジトリ(hiso.git)を設定しています。

3.作業用リポジトリ(hiso.git)にhookを設定する。

これが今回一番大事なとこ!
作業用リポジトリ(hiso.git)内のhooksフォルダにある「post-receive.sample」をリネームして
post-receive」に変更するか、または新しく作ります。私は新しく作ってみました。

vi post-receive

で、早速できたファイルに以下を追加。

#!/bin/sh
cd /var/www/html/test/(本番環境のパス)
git --git-dir=.git pull origin master

参考サイト色々見てると1行目に書くのは/bin/bashと/bin/shの2パターンあるみたいです。
どう違うのかはいまいちわかってないんですが・・・(^_^;)

いちお参考サイト。

参考:『/bin/sh と /bin/bash の違い』
http://sechiro.hatenablog.com/entry/20120806/1344267619

2行目で本番環境ディレクトリに移動しています。
今回は同じサーバー上の別ディレクトリだったのでそのように。

3行目で動作の指定をしています。
「–git-dir=.git」を書いておかないと、gitリポジトリじゃない!って怒られるらしい?

作業はコレで終わり!超簡単(・ω<)☆
実際にローカルからPushすると、何もしなくても本番環境が更新されてました。
おー楽楽!

っても最初はちゃんと動かず
本番環境のディレクトリ指定とか3行目にorigin master書いてなかったりで
何度かつまづきましたけども・・・(-_-;)
でも参考サイト見ると3行目にorigin master書かなくても動いてる例もあるんだよね。謎・・・です。

これで作業も少し楽になるかな~♪

Categories: git, WEB。

コメントを残す