BEAR Blog

Because everything is a resource.

PHPもやらなきゃJenkins

| Comments

改名なのかフォークなのか、とにかくHudsonプロジェクトはHudsonとJenkinsに分かれました。(開発者はフォークではなく改名と主張していて、この辺りの話はinfoQが詳しいようです。http://www.infoq.com/jp/hudson )
※前回の記事で紹介したphp-hudson-template はphp-jenkins-template に変わっています。

またPHPUnitで有名なSebastian氏がbuld.xmlを自動で作成してくれるPPW (PHP Project Wizard )というツールをリリースして、面倒だったプロジェクトの設定ファイルbuld.xmlの作成がとても簡単になりました。

Sebastian氏はhttp://jenkins-php.org/というPHPでJenkinsを使うためのガイドをするサイトも用意しています。以下はその補足です。

Jenkins インストール

本体

  1. Jenkinsをインストール
    Jenkins公式サイト http://jenkins-ci.orgあらダウンロードしてインストールします。Windows/OSX/Ubuntu等のネイティブインストーラーもあるのでそれを利用するのがいいんじゃないでしょうか。自分はOSXのネイティブインストーラを使用しました。以下の例はOSXでのものです。

起動はCLIで行います。
$ java -jar /Applications/Jenkins/jenkins.war

http://localhost:8080%E3%81%A7Jenkins%E3%81%AE%E7%94%BB%E9%9D%A2%E3%81%8C%E7%A2%BA%E8%AA%8D%E3%81%A7%E3%81%8D%E3%82%8B%E3%81%AF%E3%81%9A%E3%81%A7%E3%81%99%E3%80%82

続いてJenkins用プラグインをインストールをします

wget http://localhost:8080/jnlpJars/jenkins-cli.jar java -jar jenkins-cli.jar -s http://localhost:8080 install-plugin checkstyle java -jar jenkins-cli.jar -s http://localhost:8080 install-plugin clover java -jar jenkins-cli.jar -s http://localhost:8080 install-plugin dry java -jar jenkins-cli.jar -s http://localhost:8080 install-plugin htmlpublisher java -jar jenkins-cli.jar -s http://localhost:8080 install-plugin jdepend java -jar jenkins-cli.jar -s http://localhost:8080 install-plugin plot java -jar jenkins-cli.jar -s http://localhost:8080 install-plugin pmd java -jar jenkins-cli.jar -s http://localhost:8080 install-plugin violations java -jar jenkins-cli.jar -s http://localhost:8080 install-plugin xunit java -jar jenkins-cli.jar -s http://localhost:8080 install-plugin git java -jar jenkins-cli.jar -s http://localhost:8080 safe-restart mv jenkins-cli.jar /Applications/Jenkins/

次はPHPのツールです。

sudo pear channel-discover pear.pdepend.org sudo pear channel-discover pear.phpmd.org sudo pear channel-discover pear.phpunit.de sudo pear channel-discover components.ez.no sudo pear channel-discover pear.symfony-project.com sudo pear install pdepend/PHP_Depend sudo pear install phpmd/PHP_PMD sudo pear install phpunit/phpcpd sudo pear install phpunit/phploc sudo pear install PHPDocumentor sudo pear install PHP_CodeSniffer sudo pear install --alldeps phpunit/PHP_CodeBrowser sudo pear install --alldeps phpunit/PHPUnit sudo pear install phpunit/ppw

PHP Project Wizard (PPW)を使ってbuild.xmlを作成

プロジェクト用の設定ファイルbuild.xmlファイルを作成します。リポジトリに対して一つ用意します。通常はパッケージのトップディレクトリに配置します。

作成はPPWというツールを使えば簡単です。

例えばzf2の場合はbuild.xmlが用意されていませんが、下記のようにppwコマンドでzf2/build.xmlとzf2/phpunit.xml.distが作成できます。

$ git clone git://git.zendframework.com/zf.git zf2 $ cd zf2 $ ppw -name zf2 --source library/Zend/Acl --tests tests/Zend/Acl/ --bootstrap tests/Bootstrap.php --phpcs Zend .

Wrote build script for Apache Ant to ./build.xml
Wrote configuration for PHPUnit to ./phpunit.xml.dist

$ cd zf2 $ ant
buildがうまくできると、zf2/build/に出力結果が保存されます。作成されたcode browserを開いてみましょう。
$ open build/code-browser/index.html

Jenkinsで試す前にまずantでbuildができるか試してみるのがいいと思います。

Jenkinsでプロジェクト作成

プロジェクトのテンプレート作成

jobフォルダにgitでプロジェクトテンプレートを用意します。

$ cd ~/.hudson/jobs $ git clone git://github.com/sebastianbergmann/php-jenkins-template.git php-template $ java -jar /Applications/Jenkins/jenkins-cli.jar -s http://localhost:8080 reload-configuration

新規プロジェクト作成

利用可能にしたプロジェクトテンプレートを指定して、新規プロジェクトを作成します。

次の画面で、ビルド無効化 のチェックを外し、ソースコード管理システムを編集してソースコードレポジトリ情報を設定します。プロジェクト設定を保存し、ビルドを実行します。

まとめ

  • HudsonはJenkinsに
  • Sebastian氏がppwというbuild.xml作成ツールとプロジェクトテンプレートを用意し利用が楽に
  • PHPコミュニティに多大な貢献をしてる氏に感謝
  • CIしよう