jihoun/calendar

View on GitHub
build.xml

Summary

Maintainability
Test Coverage
<?xml version="1.0" encoding="UTF-8"?>
<project name="Calendar" default="build">
    <property name="toolsdir" value="${basedir}/vendor/bin/"/>
    <target name="setup" depends="clean,composer"/>

    <target name="build" depends="clean,composer,prepare,lint,phploc-ci,pdepend,phpmd-ci,phpcs-ci,phpcpd-ci,phpunit,sami" description=""/>

    <target name="clean" unless="clean.done" description="Cleanup build artifacts">
        <delete dir="${basedir}/build/api"/>
        <delete dir="${basedir}/build/cache"/>
        <delete dir="${basedir}/build/coverage"/>
        <delete dir="${basedir}/build/logs"/>
        <delete dir="${basedir}/build/pdepend"/>
        <delete dir="${basedir}/build/docs"/>
        <property name="clean.done" value="true"/>
    </target>

    <target name="composer" description="Update dependencies with Composer">
        <tstamp>
            <format property="thirty.days.ago" pattern="MM/dd/yyyy hh:mm aa" offset="-30" unit="day"/>
        </tstamp>
        <delete>
            <fileset dir="${basedir}">
                <include name="composer.phar" />
                <date datetime="${thirty.days.ago}" when="before"/>
            </fileset>
        </delete>

        <get src="https://getcomposer.org/composer.phar" dest="${basedir}/composer.phar" skipexisting="true"/>

        <exec executable="php">
            <arg value="composer.phar"/>
            <arg value="update"/>
        </exec>
    </target>

    <target name="prepare" unless="prepare.done" depends="clean" description="Prepare for build">
        <mkdir dir="${basedir}/build/api"/>
        <mkdir dir="${basedir}/build/cache"/>
        <mkdir dir="${basedir}/build/coverage"/>
        <mkdir dir="${basedir}/build/logs"/>
        <mkdir dir="${basedir}/build/pdepend"/>
        <mkdir dir="${basedir}/build/docs"/>
        <property name="prepare.done" value="true"/>
    </target>

    <target name="lint" description="Perform syntax check of sourcecode files">
        <apply executable="php" failonerror="false">
            <arg value="-l" />

            <fileset dir="${basedir}/src">
                <include name="**/*.php" />
                <modified />
            </fileset>
        </apply>
    </target>

    <target name="phploc-ci" depends="prepare" description="Measure project size using PHPLOC and print human readable output. Intended for usage on the command line.">
        <exec executable="${toolsdir}phploc">
            <arg value="--count-tests" />
            <arg value="--log-csv" />
            <arg path="${basedir}/build/logs/phploc.csv" />
            <arg value="--log-xml" />
            <arg path="${basedir}/build/logs/phploc.xml" />
            <arg path="${basedir}/src" />
            <arg path="${basedir}/tests" />
        </exec>
    </target>

    <target name="pdepend" depends="prepare" description="Calculate software metrics using PHP_Depend and log result in XML format. Intended for usage within a continuous integration environment.">
        <exec executable="${toolsdir}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 path="${basedir}/src" />
        </exec>
    </target>


    <target name="phpmd-ci" depends="prepare" description="Perform project mess detection using PHPMD and log result in XML format. Intended for usage within a continuous integration environment.">
        <exec executable="${toolsdir}phpmd">
            <arg path="${basedir}/src" />
            <arg value="xml" />
            <arg path="${basedir}/build/phpmd.xml" />
            <arg value="--reportfile" />
            <arg path="${basedir}/build/logs/pmd.xml" />
        </exec>
    </target>

    <target name="phpmd" depends="prepare" description="Perform project mess detection using PHPMD and log results.">
        <exec executable="${toolsdir}phpmd">
            <arg path="${basedir}/src" />
            <arg value="text" />
            <arg path="${basedir}/build/phpmd.xml" />
        </exec>
    </target>

    <target name="phpcs-ci" depends="prepare" description="Find coding standard violations using PHP_CodeSniffer and log result in XML format. Intended for usage within a continuous integration environment.">
        <exec executable="${toolsdir}phpcs" output="/dev/null">
            <arg value="--report=checkstyle" />
            <arg value="--report-file=${basedir}/build/logs/checkstyle.xml" />
            <arg value="--standard=PSR2" />
            <arg value="--extensions=php" />
            <arg value="--ignore=autoload.php" />
            <arg path="${basedir}/src" />
            <arg path="${basedir}/tests" />
            <!-- <arg path="${basedir}/fuel/app/migrations" /> -->
        </exec>
    </target>

    <target name="phpcs" depends="prepare" description="Find coding standard violations using PHP_CodeSniffer and log result in XML format. Intended for usage within a continuous integration environment.">
        <exec executable="${toolsdir}phpcs">
            <arg value="--standard=PSR2" />
            <arg value="--extensions=php" />
            <arg value="--ignore=autoload.php" />
            <arg path="${basedir}/src" />
            <arg path="${basedir}/tests" />
            <!-- <arg path="${basedir}/fuel/app/migrations" /> -->
        </exec>
    </target>

    <target name="phpcpd-ci" depends="prepare" description="Find duplicate code using PHPCPD and log result in XML format. Intended for usage within a continuous integration environment.">
        <exec executable="${toolsdir}phpcpd">
            <arg value="--log-pmd" />
            <arg path="${basedir}/build/logs/pmd-cpd.xml" />
            <arg path="${basedir}/src" />
        </exec>
    </target>

    <target name="phpunit" depends="prepare" description="Run unit tests with PHPUnit">
        <exec executable="${toolsdir}phpunit" failonerror="false">
            <arg value="--configuration"/>
            <arg path="${basedir}/build/phpunit.xml"/>
        </exec>
    </target>

    <target name="sami" depends="prepare" description="create doc with Sami">
        <exec executable="${toolsdir}sami.php" failonerror="false">
            <arg value="update"/>
            <arg path="${basedir}/build/sami_config.php"/>
        </exec>
    </target>
</project>