1. Qiita
  2. 投稿
  3. Jenkins

build.xmlの作成と説明 | Jenkins で PHP_CodeSniffer と PHPUnit を動かすまで vol.2

  • 19
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

前回はJenkinsでプロジェクトを作成するところまでをやりました。
今回はAntでのビルドに必須のbuild.xmlを作成してその中身を説明します。

http://jenkins-php.org/
こちらにJenkinsでPHPをCIする際のテンプレートがあります。

かなりたくさんの項目があるのですが、今回はPHPUnitとCodeSnifferを使いたいだけなので必要な部分だけ残します。

<?xml version="1.0" encoding="UTF-8"?>

<project name="FizzBuzz" default="build">
 <target name="build" depends="phpcs, phpunit"/>

 <target name="phpcs"
         description="Find coding standard violations using PHP_CodeSniffer and print human readable output. Intended for usage on the command line before committing.">
  <exec executable="/usr/local/opt/php53/bin/phpcs">
   <arg value="--standard=PSR2" />
   <arg path="${basedir}" />
  </exec>
 </target>

 <target name="phpunit" description="Run unit tests with PHPUnit">
  <exec dir="${basedir}/Test" executable="/usr/local/opt/php53/bin/phpunit" failonerror="true">
    <arg line="--colors --log-junit ${basedir}/build/logs/phpunit.xml ./"/>
  </exec>
 </target>

</project>

一行目
<?xml version="1.0" encoding="UTF-8"?>
はおなじみxmlの開始の宣言ですね。

三行目
<project name="FizzBuzz" default="build">
name属性は任意のプロジェクト名、defaultはデフォルトで実行するターゲット名

四行目
<target name="build" depends="phpcs, phpunit"/>
target要素:nameはターゲットの名前、dependsは依存しているターゲット
project default属性で指定しているのでこのターゲットが呼び出され、依存しているphpcs, phpunitというタスクも実行されます。

六行目
<target name="phpcs" description="Find coding...
phpcsというタスクを実行します。descriptionはタスクの説明です。

七から十行目

  <exec executable="/usr/local/opt/php53/bin/phpcs">
   <arg value="--standard=PSR2" />
   <arg path="${basedir}" />
  </exec>

ターゲットのタスクを記述します。
<タスク名 属性1=""...>という形で書いていきます。
execはコマンドを実行するタスクです。executableは実行するコマンド。
phpcsを呼び出していますが、Mac OS Xの環境ではパスを指定しないとエラーが出ました。

argはコマンドの引数を記述します。
phpunitも同じように記述します。failonerror属性はコマンドが失敗を意味するリターンコードで終了する場合は、ビルドプロセスを止める。 デフォルトは false。

ググってもごちゃごちゃ色々書いてあり分からないビルドファイルですが、これだけでphpcsとphpunitを同時に動かすことができます。便利ですね!

PHPのビルドツールでPhingというものがありますが、日本語情報が少ないのでAntを使用しました。
Antのマニュアルは日本語訳があります。感謝!