WordPressで画像を一括変換するバッチ (4) パッケージ作成・githunにpush・デプロイ・本番実行

Image from Gyazo

前回は PHPUnit での単体テストの作成と実行方法を説明しました。
今回は 作成したコマンドを本番環境にデプロイし実行させます。
それには、やり方はいくつかあると思います。

デプロイの方法

1. シンプルな方法

bulk-convert-images-cli をフォルダごと 本番サーバーにアップし実行する。

2. CD (Continuous Delivery) を意識した方法

作成した bulk-convert-images-cli を composerパッケージ化し github に push して 本番サーバで composer install し 実行する。

今回は (2) の方法でやってみます。

composer パッケージの作成

プロジェクトフォルダの中のcliパッケージに入ります。

composer init

composer init してパッケージ定義をインタラクティブに作成します。

以下の質問に答えていくことで、composer.json を生成することができます。

パッケージ名は?

パッケージの説明文

作成者

最小限の安定性

パッケージタイプ

ライセンス

依存性定義

これで依存性定義は終了なので、エンターを押して次へ。

devの依存性定義(なし)

devの依存性定義はないので、エンターを押して次へ。

最終成果物

OKなので エンター押して終了させる。

すると、 bulk-convert-images/bulk-convert-images-cli/composer.json ファイルが作成されているかと思います。

composer install してコマンドを実行できるか試してみる

現在のディレクトリ (bulk-convert-images/bulk-convert-images-cli)で composer install して 作成した composer.json がうまく動くか試します。

以下のようになります。

インストールがうまくいけば、 bulk-convert-images/bulk-convert-images-cli/vendor というフォルダと
bulk-convert-images/bulk-convert-images-cli/composer.lock というファイルができます。

ちなみに、 bulk-convert-images/vendor フォルダは、 wordplate の開発環境の依存ライブラリなので、混同しないようにしましょう。

wpコマンドを実行してみる。

以下のように 作成したコマンドが表示されていればOK。

bulk-convert-images が実行できるか試す

現在のディレクトリで bulk-convert-images を実行してみます。

OK。
次に、作成した composer パッケージ を github に push します。

github に push

githubでリポジトリを新規作成

githubにブラウザでアクセスし 以下の New ボタンで作成できます。

Image from Gyazo

リポジトリ名は bulk-convert-images-cli とします。ほかは適宜いれて、createボタンをポチします。

Image from Gyazo

これでリポジトリのURLが割り当てられます。
[email protected]:yokada/bulk-convert-images-cli.git がgitリポジトリのURLです。

git init します

ターミナルに戻って以下を実行します。
pushしたいのは、自分で作った composerパッケージなので プロジェクトフォルダのcliパッケージに入ります。

初期化成功:

.gitignore の作成

不要なファイルはgitリポジトリに含めたくないので、それを git コマンドに伝えるため、 .gitignore ファイルを作成します。

以下を記述し保存します。

git add でファイルをステージングします。

git add の対象となるファイルを確認します。

↑ いらないファイルが除外されていることを確認します。
そして git add – git commitします。

push先のリモートリポジトリを定義します

remote が定義されたか確認。

ok

git push

実行結果:

これで、 composer パッケージを github にpushすることができました。

Image from Gyazo

本番サーバに composer パッケージを デプロイ

このステップは CircleCI などのデプロイサービスを利用することで自動化することができます。
その方法は別記事で説明するとして今回は、シンプルに本番サーバからcomposerを使って上で作ったパッケージをgithubからpullします。

本番サーバーにsshでログイン

インストールするためのフォルダの準備

インストール側の composer.json の作成

ソースをインストールするための composer.json を bulk-convert-images-cli フォルダの中に作成し保存します。

composer install

wp-cliの設定ファイル (wp-cli.yml) の作成

bulk-convert-images-cli/wp-cli.yml

自分の場合は以下のような設定となりました。

  • path は 一般的には wp-config.php の存在するディレクトリを指定します。
  • require は wpコマンドとしてロードしたPHPスクリプトを指定します。

実行

以下のように実行します。

結果:

1件警告でました。mimeType: image/jpeg で拡張子が jpg のケースが存在するようです。
どういう経緯でこのような mimeType となるのか調べる。

コードの更新の流れ

  • ローカルでコードの git add commit push
  • 本番サーバーで composer update

これだけでokです。

ToDos

  • デプロイの自動化: githubのmasterブランチにpushしたら circleci が起動して、自動でテストとデプロイが走るようにする。
  • wp-cli.yml を環境に合わせものを用意する。
  • 単体テストを追加する。
  • 機能追加。

以上です。

Filed under: コマンドラインTagged with:

よく読まれている投稿

No comment yet, add your voice below!


Add a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.