Hatena::ブログ(Diary)

大人でも自由研究 - Human is creative, Originaly...!!

2012.12.14

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

database.php などの CakePHP 設定ファイルの入れかえも行います。

具体的には、以下のファイルがテスト環境向けの定義という想定です。

  • app/Config/core.php.testing
  • app/Config/database.php.testing
ローカルマシン向けビルド
$ phing build-local

開発者が気にすべき検証を一括で行うための方法です。

具体的には以下のテスト・検証が一気に行われます。

  • CakePHP Test
  • PHP_CodeSniffer
  • PHPCPD
  • PHPMD(PHP Mess Detector)
単純に CakePHP Test だけしたい
$ app/Console/cake test app Model/Foo

テストだけを行う場合は、普通にテストコマンドを叩いてください。

カバレッジの計算を行わないので、時間が短縮され、待ちストレスが減ります。

最後に

駆け足で書かせていただきましたが、要は「CakePHP用の各種ビルド定義を公開しただけ」ということです。

まだまだ間違いや改善点もあるかとは思いますので、コメントや pull request などで情報を頂ければ幸いです。

p.s.

なかなかCakePHPイベントには参加できていませんが、今回はAdventに参加できてヨカッタです。

次回はリアルなイベントなどにもお邪魔させて頂きます。

はてなユーザーのみコメントできます。はてなへログインもしくは新規登録をおこなってください。

トラックバック - http://d.hatena.ne.jp/lifegood/20121214/p1