FTPデプロイメント
- 本番環境はFTPしか利用できない。
- ステージング環境として仮想サーバー(a)を用意する。
- (a)に普通のGitリポジトリ(a-git)を作成する。
- (a-git)にはetckeeperを入れてパーミッションの管理を行う。
- (a)に共有Gitリポジトリ(a-git-shared)を作成する。
- Gitの操作方法を分からない人は(a-git)へFTPで更新を行う。
- (a-git)をcronにて一定間隔ごとに自動コミット、(a-git-shared)への自動プッシュを行う。
- 自分は(a-git-shared)をから最新のコードを取得し編集する。編集が終わったら(a-git)にマージさせる。
- (a-git)で自動テストを実行する。
- (a-git)をFTPで更新する人はパーミッションをFTP経由で変更することになるので、それをetckeeperで検知する。
- etckeeperで検知したパーミッションのdiffから、該当のファイル、ディレクトリに対してtouchコマンドを自動実行してタイムスタンプを更新する。(touchコマンドでタイムスタンプを更新するとlftpのmirrorコマンドが検知してくれる)
- 本番環境へのデプロイには lftp の mirror を利用する。