基于window下的jenkins php集成環境搭建分享(2)
來自: http://my.oschina.net/u/1167564/blog/607045
@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>
本文由用戶 goiq3643 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!