alexis-j
4/2/2012 - 6:32 PM

build.xml for Symfony 2 Jenkins job

build.xml for Symfony 2 Jenkins job

<?xml version="1.0" encoding="UTF-8"?>
<!--
    Ant build for Symfony 2 Jenkins job.
    This recipe is using the docblox Instead of phpdoc 

    @author Gilmar Pupo <g@g1mr.com>

-->

<project name="ObjectSmirnoff" default="build" basedir=".">
 <property name="source" value="src"/>

 <target name="clean" description="Clean up and create artifact directories">
  <delete dir="${basedir}/build/api"/>
  <delete dir="${basedir}/build/code-browser"/>
  <delete dir="${basedir}/build/coverage"/>
  <delete dir="${basedir}/build/logs"/>
  <delete dir="${basedir}/build/pdepend"/>

  <mkdir dir="${basedir}/build/api"/>
  <mkdir dir="${basedir}/build/code-browser"/>
  <mkdir dir="${basedir}/build/coverage"/>
  <mkdir dir="${basedir}/build/logs"/>
  <mkdir dir="${basedir}/build/pdepend"/>
 </target>


<target name="vendors"
         description="Update vendors">
         <exec executable="./bin/vendors" failonerror="true">
     <arg value="update" />
  </exec>
 </target>

 <target name="phpunit" description="Run unit tests using PHPUnit and generates junit.xml and clover.xml">
     <exec dir="${basedir}/app" executable="phpunit" failonerror="true"/>
 </target>

 <target name="parallelTasks" description="Run the pdepend, phpmd, phpcpd, phpcs, phpdoc and phploc tasks in parallel using a maximum of 2 threads.">
  <parallel threadCount="2">
   <sequential>
    <antcall target="pdepend"/>
    <antcall target="phpmd"/>
   </sequential>
   <antcall target="phpcpd"/>
   <antcall target="phpcs"/>
   <!--antcall target="phpdoc"/-->
   <antcall target="docblox"/>
   <antcall target="phploc"/>
  </parallel>
 </target>

 <target name="pdepend" description="Generate jdepend.xml and software metrics charts using PHP_Depend">
  <exec executable="pdepend">
   <arg line="--jdepend-xml=${basedir}/build/logs/jdepend.xml
              --jdepend-chart=${basedir}/build/pdepend/dependencies.svg
              --overview-pyramid=${basedir}/build/pdepend/overview-pyramid.svg
              ${source}" />
  </exec>
 </target>

 <target name="phpmd" description="Generate pmd.xml using PHPMD">
  <exec executable="phpmd">
   <arg line="${source}
              xml
              codesize,design,naming,unusedcode
              --reportfile ${basedir}/build/logs/pmd.xml" />
  </exec>
 </target>

 <target name="phpcpd" description="Generate pmd-cpd.xml using PHPCPD">
  <exec executable="phpcpd">
   <arg line="--log-pmd ${basedir}/build/logs/pmd-cpd.xml ${source}" />
  </exec>
 </target>

 <target name="phploc" description="Generate phploc.csv">
  <exec executable="phploc">
   <arg line="--log-csv ${basedir}/build/logs/phploc.csv ${source}" />
  </exec>
 </target>

 <target name="phpcs" description="Generate checkstyle.xml using PHP_CodeSniffer">
  <exec executable="phpcs" output="/dev/null">
   <arg line="--report=checkstyle
              --report-file=${basedir}/build/logs/checkstyle.xml
              --standard=PEAR
              ${source}" />
  </exec>
 </target>

 <target name="phpdoc" description="Generate API documentation using PHPDocumentor">
  <exec executable="phpdoc">
   <arg line="-d ${source} -t ${basedir}/build/api" />
  </exec>
 </target>

<target name="docblox">
  <exec executable="docblox">
    <arg line="project:run
               -d ${source}
               -t ${basedir}/build/api
               --ignore Acme*" />
  </exec>
</target>

 <target name="phpcb" description="Aggregate tool output with PHP_CodeBrowser">
  <exec executable="phpcb">
   <arg line="--log    ${basedir}/build/logs
              --source ${source}
              --output ${basedir}/build/code-browser" />
  </exec>
 </target>

 <target name="build" depends="clean,vendors,parallelTasks,phpunit,phpcb"/>
</project>