Phing を利用して CakePHP を継続的インテグレーション #cakeadvent2
CakeAdvent2012 の14日目を担当します。ハッシュタグは #cakeadvent2012
昨日は @k1LoW さんの「細かすぎて伝わらないCakePHP Pluginシリーズ」でした。
はじめに
継続的インテグレーション、テスト駆動開発、アジャイル開発 などなど、最近は開発手法の話題を目にする機会も多いかと思います。
私の所属する株式会社うるるでも、Jenkins を利用した継続的インテグレーションを採用しており、今回はこの分野で記事を書かせていただきます。
継続的インテグレーション@CakePHP(Jenkins+CakePHP)
こちらに関しては既に記事にされている方も多く、特に Ryuzee さんの
CakePHP2.0+Jenkinsで継続的インテグレーションを行う方法
が非常に参考になります。
なぜPhing?
Phing は、プロジェクトビルドシステムで、テストや検証などをPhingを経由して一括化することができます。
Jenkis 側にビルドコマンドを1つ1つ登録してもいいのですが、
- ローカルマシンでもテスト・検証を一括で行いたい
- 別プロジェクトを作る度に、Jenkinsにビルドコマンドを1つ1つ登録するのは面倒だな
なんてニーズは満たせません。
というわけで、今回は「 Phingを利用して CakePHP 2系プロジェクトを検証する際の設定を晒させていただこう 」と思っています。
コードの検証では、 CakePHP 向けに除外すべき部分なども入れ込んでみました。
宜しければ利用してみてください。
利用するPHPパッケージ
以下のパッケージを利用します。インストールは適当に行なってください。
CakePHP2.0+Jenkinsで継続的インテグレーションを行う方法
を参考にして頂くと、手早いかもしれません。
CakePHP 2.X 向け、build configs
github にビルドコンフィグを用意しました。
利用していただくと、スムーズに検証をする準備が整えられると思います。
https://github.com/uluru/phing-cakephp
以下、簡単に中身のご説明です。
利用準備(ビルドコンフィグの設置)
ダウンロードしてきた CakePHP のソースには、既に build.xml があると思います。
これは CakePHP Core 自体のビルド用ファイルなので、削除してしましましょう。
その後に、github にあるXMLファイル一式を、CakePHPプロジェクトのTOPディレクトリに配置してください。
また同様にTOPディレクトリへ build ディレクトリを作成してください。
※ git submodule add 出来る形式にしておけばヨカッタ… とBlogを書きながら気づきました。その内改善するかも!?デス。
使い方
ローカルマシン向けビルド
$ phing build-local
開発者が気にすべき検証を一括で行うための方法です。
具体的には以下のテスト・検証が一気に行われます。