基于window下的jenkins php集成环境搭建分享(2)

 @build.xml (ant构建配置文件) 

<?xml version="1.0" encoding="UTF-8"?>
<project name="name-of-project" default="build">
    <!-- By default, we assume all tools to be on the $PATH -->
    <property name="toolsdir" value=""/>

    <!--改成您相应的应用目录和测试目录-->
    <property name="testdir" value="${basedir}/Test"/>
    <property name="appdir" value="${basedir}/PHPCbping"/>
    <available file="${basedir}/build" property="build_path"/>
    <available file="${basedir}/App/TestControllers1" property="TestControllers1_exist"/>


    <!--<property name="version-m"  value="1.1" />-->
    <!--<property name="version"    value="1.1.0" />-->
    <!--<property name="stability"  value="stable" />-->
    <!--<property name="releasenotes" value="" />-->
    <!--<property name="tarfile"     value="${phing.project.name}.${buildnumber}.${buildid}.tar.gz" />-->
    <!--<property name="pkgfile"     value="${phing.project.name}.${version}.tgz" />-->
    <!--<property name="distfile"    value="dist/${tarfile}" />-->
    <!--<property name="tests.dir" value="test" />-->
    <!-- -->
    <!--<fileset id="api.tar.gz" dir=".">-->
        <!--<include name="test/**"/>-->
        <!--<include name="*.php"/>-->
        <!--<include name="*.xml"/>-->
    <!--</fileset>-->

    <!--<target name="check" description="Check variables" >-->
        <!--<fail unless="version" message="Version not defined!" />-->
        <!--<fail unless="buildnumber" message="buildnumber not defined!" />-->
        <!--<fail unless="buildid" message="buildid not defined!" />-->
        <!--<delete dir="dist" failonerror="false" />-->
        <!--<mkdir dir="dist" />-->
    <!--</target>-->

    <!--<target name="tar" depends="check" description="Create tar file for release">-->
        <!--<echo msg="Creating distribution tar for ${phing.project.name} ${version}"/>-->
        <!--<delete file="${distfile}" failonerror="false"/>-->
        <!--<tar destfile="${distfile}" compression="gzip">-->
            <!--<fileset refid="api.tar.gz"/>-->
        <!--</tar>-->
    <!--</target>-->

    <!-- Uncomment the following when the tools are in ${basedir}/vendor/bin -->
    <!-- <property name="toolsdir" value="${basedir}/vendor/bin/"/> -->

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

    <target name="build-parallel"
            depends="prepare,lint,tools-parallel,phpunit,phpdox"
            description=""/>

    <target name="tools-parallel" description="Run tools in parallel">
        <parallel threadCount="2">
            <sequential>
                <antcall target="pdepend"/>
                <antcall target="phpmd-ci"/>
            </sequential>
            <antcall target="phpcpd-ci"/>
            <!--<antcall target="phpcs-ci"/>-->
            <antcall target="phploc-ci"/>
        </parallel>
    </target>

    <target name="clean"
            unless="clean.done"
            if="build_path"
            description="Cleanup build artifacts">
        <delete includeEmptyDirs="true">
            <fileset dir="build" includes="**/*"/>
        </delete>
        <property name="clean.done" value="true"/>
    </target>

    <target name="prepare"
            unless="prepare.done"
            depends="clean,phpunit-init-clean"
            description="Prepare for build">
        <chmod dir="build" perm="0777"/>
        <mkdir dir="${basedir}/build/api"/>
        <mkdir dir="${basedir}/build/coverage"/>
        <mkdir dir="${basedir}/build/logs"/>
        <mkdir dir="${basedir}/build/pdepend"/>
        <mkdir dir="${basedir}/build/phpdox"/>
        <property name="prepare.done" value="true"/>
    </target>

    <target name="phpunit-init-clean" if="TestControllers1_exist" depends="clean">
        <move todir="${testdir}/TestControllers1" failonerror="">
            <fileset dir="${basedir}/App/TestControllers1"/>
        </move>
    </target>

    <target name="lint"
            unless="lint.done"
            description="Perform syntax check of sourcecode files">
        <apply executable="php" failonerror="true" taskname="lint">
            <arg value="-l"/>

            <fileset dir="${appdir}">
                <include name="**/*.php"/>
                <modified/>
            </fileset>

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

        <property name="lint.done" value="true"/>
    </target>

    <target name="phploc"
            unless="phploc.done"
            description="Measure project size using PHPLOC and print human readable output. Intended for usage on the command line.">
        <exec executable="${toolsdir}phploc.bat" taskname="phploc">
            <arg value="--count-tests"/>
            <arg path="${appdir}"/>
            <!--<arg path="${testdir}"/>-->
        </exec>
        <property name="phploc.done" value="true"/>
    </target>

    <target name="phploc-ci"
            unless="phploc.done"
            depends="prepare"
            description="Measure project size using PHPLOC and log result in CSV and XML format. Intended for usage within a continuous integration environment.">
        <exec executable="${toolsdir}phploc.bat" taskname="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="${appdir}"/>
            <!--<arg path="${testdir}"/>-->
        </exec>
        <property name="phploc.done" value="true"/>
    </target>

    <target name="pdepend"
            unless="pdepend.done"
            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.bat" taskname="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="${appdir}"/>
        </exec>
        <property name="pdepend.done" value="true"/>
    </target>

    <target name="phpmd"
            unless="phpmd.done"
            description="Perform project mess detection using PHPMD and print human readable output. Intended for usage on the command line before committing.">
        <exec executable="${toolsdir}phpmd.bat" taskname="phpmd">
            <arg path="${appdir}"/>
            <arg value="text"/>
            <arg path="${basedir}/phpmd.xml"/>
        </exec>

        <property name="phpmd.done" value="true"/>
    </target>

    <target name="phpmd-ci"
            unless="phpmd.done"
            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.bat" taskname="phpmd">
            <arg path="${appdir}"/>
            <arg value="xml"/>
            <arg path="${basedir}/phpmd.xml"/>
            <arg value="--reportfile"/>
            <arg path="${basedir}/build/logs/pmd.xml"/>
        </exec>

        <property name="phpmd.done" value="true"/>
    </target>


    <target name="phpcpd"
            unless="phpcpd.done"
            description="Find duplicate code using PHPCPD and print human readable output. Intended for usage on the command line before committing.">
        <exec executable="${toolsdir}phpcpd.bat" taskname="phpcpd">
            <arg path="${appdir}"/>
        </exec>

        <property name="phpcpd.done" value="true"/>
    </target>

    <target name="phpcpd-ci"
            unless="phpcpd.done"
            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.bat" taskname="phpcpd">
            <arg value="--log-pmd"/>
            <arg path="${basedir}/build/logs/pmd-cpd.xml"/>
            <arg path="${appdir}"/>
        </exec>

        <property name="phpcpd.done" value="true"/>
    </target>

    <target name="phpunit"
            unless="phpunit.done"
            depends="prepare"
            description="Run unit tests with PHPUnit">
        <exec executable="${toolsdir}phpunit.bat" failonerror="true" taskname="phpunit">
            <arg value="--configuration"/>
            <arg path="${basedir}/phpunit.xml.dist"/>
            <arg value="--include-path"/>
            <arg path="${appdir}"/>
        </exec>

        <property name="phpunit.done" value="true"/>
    </target>

    <target name="phpdox"
            unless="phpdox.done"
            depends="phploc-ci"
            description="Generate project documentation using phpDox">
        <exec executable="${toolsdir}phpdox.bat" dir="${basedir}" taskname="phpdox"/>

        <property name="phpdox.done" value="true"/>
    </target>
</project>

 @phpunit.xm.dist(相关信息可以查看官方文档)

<?xml version="1.0" encoding="UTF-8"?>
<phpunit
        colors="true"
        stopOnFailure="false"
        backupStaticAttributes="false"
        convertErrorsToExceptions="true"
        convertNoticesToExceptions="true"
        convertWarningsToExceptions="true"
        processIsolation="false"
        addUncoveredFilesFromWhitelist="true"
        syntaxCheck="false"
        cacheTokens="true"
        verbose="false"
        >
    <php>
        <includePath>PHPCbping/</includePath>
    </php>

    <testsuites>
        <testsuite name="TEST">
            <directory>Test/</directory>
            <!--<file phpVersion="5.3.0" phpVersionOperator=">=">Test/CommandTest.php</file>-->
            <exclude>PHPCbping/</exclude>
        </testsuite>
    </testsuites>

    <filter>
        <whitelist processUncoveredFilesFromWhitelist="true">
            <directory suffix=".php">PHPCbping/</directory>
        </whitelist>
    </filter>

    <logging>
        <log type="coverage-clover" target="build/logs/clover.xml"/>
        <log type="coverage-html" target="build/coverage"/>
        <log type="junit" target="build/logs/junit.xml" logIncompleteSkipped="false"/>
    </logging>
</phpunit>

@phpmd.xml(相关规则信息可以查看官方文档)

<?xml version="1.0" encoding="UTF-8"?>
<ruleset name="phpcbping-coding-standard"
         xmlns="http://pmd.sf.net/ruleset/1.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://pmd.sf.net/ruleset/1.0.0
                      http://pmd.sf.net/ruleset_xml_schema.xsd"
         xsi:noNamespaceSchemaLocation="http://pmd.sf.net/ruleset_xml_schema.xsd">
    <description>Description of your coding standard</description>
    <rule ref="rulesets/codesize.xml"/>
    <rule ref="rulesets/cleancode.xml"/>
    <rule ref="rulesets/unusedcode.xml"/>
    <rule ref="rulesets/design.xml"/>
    <rule ref="rulesets/naming.xml"/>
    <rule ref="rulesets/controversial.xml/Superglobals"/>
    <!-- ... -->
</ruleset>

@phpdox.xml(相关规则信息可以查看官方文档)

<?xml version="1.0" encoding="UTF-8"?>
<phpdox xmlns="http://xml.phpdox.net/config">
    <project name="phpdox-project" source="${basedir}/PHPCbping" workdir="${basedir}/build/api/xml">
        <collector publiconly="false" backend="parser">
            <include mask="*.php"/>
        </collector>
        <generator output="${basedir}/build/api">
            <enrich base="${basedir}/build/logs">
                <source type="build"/>
                <source type="pmd"/>
                <source type="phploc"/>
            </enrich>
            <build engine="html" enabled="true" output="html">
                <file extension="html"/>
            </build>
        </generator>
    </project>
</phpdox>


你可能感兴趣的:(基于window下的jenkins php集成环境搭建分享(2))