19
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

updated at

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

前回は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のマニュアルは日本語訳があります。感謝!

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
19
Help us understand the problem. What are the problem?