<?xml version="1.0" encoding="UTF-8"?> <project name="gitlist" default="build"> <property name="vendordir" value="${basedir}/vendor/bin" /> <target name="build" depends="prepare,lint,phploc,pdepend,phpmd,phpcpd,phpunit,phpcs" /> <target name="build-package" depends="prepare-package,package" /> <target name="clean" description="Clean build artifacts"> <delete dir="${basedir}/build"/> </target> <target name="get-composer" description="Get Composer"> <exec executable="/bin/bash"> <arg value="-c" /> <arg value="curl -s https://getcomposer.org/installer | php" /> </exec> </target> <target name="prepare" depends="clean,get-composer" description="Prepare for build"> <mkdir dir="${basedir}/build/logs"/> <mkdir dir="${basedir}/build/pdepend"/> <copy file="config.ini-example" tofile="config.ini"/> <exec executable="${basedir}/composer.phar" failonerror="true"> <arg value="install" /> <arg value="--dev" /> </exec> </target> <target name="prepare-package" description="Prepare for build"> <delete dir="${basedir}/vendor"/> <exec executable="${basedir}/composer.phar" failonerror="true"> <arg value="install" /> <arg value="--optimize-autoloader" /> </exec> </target> <target name="lint" description="Perform syntax check of sourcecode files"> <apply executable="php" failonerror="true"> <arg value="-l" /> <fileset dir="${basedir}/"> <include name="**/*.php" /> <exclude name="vendor/" /> <exclude name="cache/" /> <modified /> </fileset> </apply> </target> <target name="phploc" description="Measure project size using PHPLOC"> <exec executable="${vendordir}/phploc"> <arg value="--log-csv" /> <arg value="${basedir}/build/logs/phploc.csv" /> <arg path="${basedir}/src" /> </exec> </target> <target name="pdepend" description="Calculate software metrics using PHP_Depend"> <exec executable="${vendordir}/pdepend"> <arg value="--jdepend-xml=${basedir}/build/logs/jdepend.xml" /> <arg value="--jdepend-chart=${basedir}/build/pdepend/dependencies.svg" /> <arg value="--overview-pyramid=${basedir}/build/pdepend/overview-pyramid.svg" /> <arg value="--ignore=${basedir}/cache,${basedir}/vendor" /> <arg path="${basedir}/src" /> </exec> </target> <target name="phpmd" description="Perform project mess detection using PHPMD creating a log file for the continuous integration server"> <exec executable="${vendordir}/phpmd"> <arg path="${basedir}/src" /> <arg value="xml" /> <arg value="codesize,design,unusedcode,naming" /> <arg value="--reportfile" /> <arg value="${basedir}/build/logs/pmd.xml" /> </exec> </target> <target name="phpcpd" description="Find duplicate code using PHPCPD"> <exec executable="${vendordir}/phpcpd"> <arg value="--log-pmd" /> <arg value="${basedir}/build/logs/pmd-cpd.xml" /> <arg path="${basedir}/src" /> </exec> </target> <target name="phpunit" description="Run unit tests with PHPUnit"> <exec executable="${vendordir}/phpunit" failonerror="true"/> </target> <target name="phpcs" description="Find coding standard violations using PHP_CodeSniffer creating a log file for the continuous integration server"> <exec executable="${vendordir}/php-cs-fixer" output="${basedir}/build/logs/cs.xml"> <arg value="fix" /> <arg value="--dry-run" /> <arg value="--format=junit" /> </exec> </target> <target name="package" description="Package the application for distribution"> <copy todir="${basedir}/build/gitlist/"> <fileset dir="${basedir}" excludes="cache/**, build/**, tests/**, pkg_builder/**, phpunit.xml.dist, cache.properties, .gitignore, .travis.yml, build.xml, composer.json, composer.lock, composer.phar, config.ini, .php_cs, .php_cs.cache" /> </copy> <tar destfile="${basedir}/build/gitlist-master.tar.gz" basedir="${basedir}/build/" compression="gzip" longfile="gnu" excludes="gitlist-master.tar.gz, **/logs/**, **/pdepend/**" /> </target> </project>