Webhook】WordPressの子テーマのデプロイを自動化はじめにこの度WordPressで新規にブログを開設しました。BLOGという無料のテーマが好評だったので、こちらのテーマを使用させてもらっているのですが、デザインを微妙にカスタマイズしたくなったので、Dockerでサクッとローカル環境を構築して、子テーマをgitで管理する体制を整えたのでメモっておきます。WordPressに関しては、未知なことばかりなので、変なことやってたらすみません。ちなみに、本番環境はXServerを使っています。Dockerで開発環境を作成ローカル環境は、Dockerで構築しています。WordPressテーマ開発環境を構築しよう」を参考にさせていただきました。略WordPressのライオンブログというテーマを用います。テーマをそのまま使うのは味気ないのでlionblog-childというディレクトリを切って、デザインをカスタマイズしていきます。詳しい方法は、「子テーマを作ってWordPressの既存テーマをカスタマイズする方法」をご覧になっていただくと良いかと思います。サイトデザインをカスタマイズするためにlionblog-child内のファイルを編集してデザインの調整を行います。したがって、このディレクトリをgitで管理します。./db-data:/var/lib/mysql.envWORDPRESS_DB_NAME=wordpressWORDPRESS_DB_USER=blogWORDPRESS_DB_PASSWORD=blog_dbMYSQL_RANDOM_ROOT_PASSWORD=yesMYSQL_DATABASE=wordpressMYSQL_USER=blogMYSQL_PASSWORD=blog_dbテーマは好みを自由に用いてください。編集するファイルは、lionblog-child/なので、このディレクトリをgitで管理しておきましょう。一般的かもしれませんが、なんだか普段使い慣れたgitを使ってdeployまでしたいものです。Webhookを導入そこで、便利な機能Webhookを利用します。->自動でデプロイというサイクルを作ることができます。リモートリポジトリにPushしたタイミングで、自動で本番のレポジトリにPullさせます。Webhookってまず、Webhookとは何かについて簡単に説明します。Webhookとは、何らかのアクションを検出した際に、指定したURLなど他のアプリケーションにHTTPリクエストを送ることで通知を送る仕組みのことです。今回は、GitHubにWebhookの設定をしたいと思います。GitHubでは、上のような手順でリポジトリにWebhookを設定できます。今回は、リポジトリへのPushを検出すると、登録しておいたURLにリクエストを送ります。やりたいことこの仕組みを利用してやりたいことを、イメージとして図示するなら次のようになります。GitHubでWebhookがpushを感知してリクエストを送る私の場合、Webhookで走るURLを次のように設定しています。https://tanaken.me/wp_hook.php/?key=passwordだれでも実行できると困るので、クエリパラメーターでパスワードを加えます。みていただければわかるように、webhookのリクエストによって、/直下に配置したwp_hook.phpが実行されます。次のようなスクリプトを記述しました。このスクリプトをSSH接続なり、FTPなり手動なりして本番のpublic_htmlいかに配置します。master`;}パスワードが、一致してかつ、masterブランチの時のみ、子テーマをリモートのブランチからプルします。4.本番環境にPullローカルで変更した子テーマのデザインが本番にも反映されるはずです。私は、プルの成功、失敗に応じてSlackに通知させるように設定をしましたが、今回は割愛させてもらいます。以上で、ローカルで編集してPushするだけで、子テーマの変更が本番に反映される環境が作られたはずです。まとめWordPressの開発環境をかなり我流で作ってみました。子テーマで結構デザインとか作り込んでいきたいって方にオススメしときます。