jenkinsでCheckstyle pluginを利用して、CakePHPのコーディング規約をチェックする

Phingをjenkinsと連携させてみるの続き

今回はCheckstyle pluginを利用して、自分が書いているコードがちゃんとコーディング規約に準拠した記述になっているか確認してみた。
※いつもCakePHPをメインに開発しているので、今回準拠させたコーディング規約はCakePHPのものです。 – Cookbook 2.0 coding standard

1.pearからPHP_CodeSnifferをインストール

$ sudo pear install PHP_CodeSniffer 

2.CakePHP用のコード規約をインストール

今回はCakePHPのコーディング規約をベースにチェックをかけたいので、jrbassoさんが開発しているこちらのものを利用させていただきました。

これを /path/to/pear/PHP/CodeSniffer/Standardsに配置することで、コーディング規約の一覧にCakePHPが追加された。

$ phpcs -i
The installed coding standards are PEAR, MySource, Squiz, Zend, CakePHP and PHPCS

3.PHP_CodeSnifferの動作の確認

jenkinsと連携させる前にPHP_CodeSniffer単体で動作を確認する。今回はapp配下のみをチェックの対象としたいので、そのように指定

phpcs --report=summary --report=checkstyle --report-checkstyle=phpcs.xml  --standard=CakePHP --extensions=php /path/to/app

phpcs.xmlというファイルが作成されていたら成功。

4.Jenkins側にプラグインをインストール

プラグインマネージャーから「Checkstyle Plug-in」をインストールする

5.ビルド用のファイルを用意する

前回用意したbuildファイルを以下のように修正して利用してみる。
/path/to/svn/projectname/trunk/build.xml

<?xml version="1.0" encoding="utf-8" ?>
<project name= "BuildTest" basedir= "." default= "main">

    <target name="main" depends= "init,phpcs"></target>

    <target name="init" >
        <delete dir= "./reports" includeemptydirs= "true" />
        <mkdir dir= "./reports" />
    </target>

    <!-- checksytle -->
    <target name="phpcs" description= "Generate phpcs.xml using PHP_CodeSniffer" >
        <exec executable= "phpcs" output= "${basedir}/reports/phpcs.xml" >
        <arg line= "
            --report=checkstyle
            --standard=CakePHP
            --extensions=php
            path/to/app" />
        </exec>
    </target>
</project>

6.プロジェクトの設定

設定>ビルド後の処理から、Checkstyle警告の集計にチェックを入れ、集計するファイルにreports/phpcs.xmlと記述

7.ビルドの実行をする

プロジェクトページから「ビルド実行」を選択

問題なくビルドされていれば、左ナビに「Checkstyle警告」へのリンクが表示され、2回以降のビルド後には、プロジェクトトップにCheckstyle警告の推移が表示される。

警告出まくり。。