WordPressのテーマファイルをローカルで開発してgithubにpush、そのままサーバーまでデプロイするCIを実現しようと考えています。自分の環境とか踏まえてまずはどうやって実現するか設計しました。
やりたいこと
以下のような流れを実現したい。
- ローカルでテーマファイル(~/wordpress/wp-content/themes/[テーマ名称]/配下の.phpや.cssなど)を修正
- featureブランチまでpush
- masterにmergeする際に開発と本番で設定値が異なる箇所を置換(AdSenseやGTA設定など)
- masterにpush
- ビルドワークスペースにmasterをcloneしてbuild。その際にコメント削除、ファイル圧縮
- 本番環境の資源バックアップ(git管理しているものの念のため)
- 本番デプロイ
動作環境・前提
サーバーは各人状況が違うとは思いますが、私の動作環境をベースに考えます。
全体のタスクランナーはgulpを使う予定です。
- 【共通】
-
- repositoryはgithub
- 本番資源はmaster、開発資源はfeatureブランチで管理
- 【ローカル環境】
-
- Mac OS X High Sierra
- git version 2.20.1
- bash
- node v8.14.0
- npm v6.4.1
- gulp CLI version 2.0.1
- gulp Local version 4.0.0
- 【サーバー環境(本番)】
-
- レンタルサーバー
- SFTP / SSH利用可能
- npmが使えるかどうかは不明(動かなかったら嫌なので今回は使わない。npmが使えるならサーバー側でgulp動かしても良い気がする)
全体設計
Develop(ローカルでの開発)、Commit(masterへのpushまで)、Build(workspaceでのビルド)、Deploy(バックアップと本番へのデプロイ)の4段階で考えます。
それぞれの段階を1ジョブ(タスク)的に考え、Developは開発作業なので手作業ですが、Commitから先を自動化しようと考えてます。
作り始めたら色々見直し必要だと思いますが、とりあえずこれで進めてみます。
実装編を公開しました。