とあるエンジニアの作業ブログ

CI JavaScript Web製作 運用

GulpでWordPressのCI 〜設計編〜

投稿日:2019年1月17日 更新日:

WordPressのテーマファイルをローカルで開発してgithubにpush、そのままサーバーまでデプロイするCIを実現しようと考えています。自分の環境とか踏まえてまずはどうやって実現するか設計しました。

やりたいこと

以下のような流れを実現したい。

  1. ローカルでテーマファイル(~/wordpress/wp-content/themes/[テーマ名称]/配下の.phpや.cssなど)を修正
  2. featureブランチまでpush
  3. masterにmergeする際に開発と本番で設定値が異なる箇所を置換(AdSenseやGTA設定など)
  4. masterにpush
  5. ビルドワークスペースにmasterをcloneしてbuild。その際にコメント削除、ファイル圧縮
  6. 本番環境の資源バックアップ(git管理しているものの念のため)
  7. 本番デプロイ

動作環境・前提

サーバーは各人状況が違うとは思いますが、私の動作環境をベースに考えます。
全体のタスクランナーは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から先を自動化しようと考えてます。

wordpressでci 全体設計
 
作り始めたら色々見直し必要だと思いますが、とりあえずこれで進めてみます。
 
 
実装編を公開しました。

-CI, JavaScript, Web製作, 運用
-, ,

執筆者:


comment

メールアドレスが公開されることはありません。

関連記事

DMM電子書籍の広告を自動出し分けするショートコード

DMM電子書籍のアフィリエイト広告は、そのままだとiframe使ってたり味気なかったりで使い勝手が悪いので、自分でカスタマイズしてみました。 ついでに、前に作ったアフィリエイト自動出し分けショートコー …

Google Apps ScriptでG DriveのExcelをスプレッドシートに変換

GASでG Driveに保存されているExcelをGoogle スプレッドシートに一括変換する仕組みを作った。 目次 実現したいこと ソースコードと解説 実現したいこと G Driveに保存されている …

【Stinger8】ページング(page-numbersクラス),サイドバーリストのレイアウト修正

Stinger8の細かなレイアウト修正をします。 目次 トップ下部の投稿一覧をページングする部分(page-numbersクラス)のレイアウト崩れの修正 サイドバーに表示される最近の投稿やアーカイブな …

Cloud DataprepでExcelをBigQueryに定期取込みしようとしたけどできなかったはなし

GCPのCloud Dataprep by TrifactaでExcelデータをBQに取り込む試行錯誤をあれやこれやした時のメモ。 結局やりたかったことは実現できなかった。。。 目次 実現したいこと: …

【WordPress】サーバーのテーマファイルをFTPで自動バックアップ

私みたいに趣味でWordPressを使ってる人はレンタルサーバーを借りてサイトを公開していると思います。 最近のレンタルサーバーにはバックアップ機能が標準/オプションで用意されているものがほとんどです …