parent
f0893fb8fe
commit
03f4250ce6
@ -0,0 +1,28 @@ |
||||
How to setup build.xml on your local machine? |
||||
|
||||
1.) Install ant |
||||
e.g. apt-get install ant |
||||
|
||||
2.) Install jslint |
||||
Get the latest distribution from http://code.google.com/p/jslint4java/ and |
||||
place jslint4java-*.jar in your home under .ant/lib/ |
||||
|
||||
3.) Install PHP qa tools |
||||
Run as root: |
||||
pear config-set auto_discover 1 |
||||
pear install pear.phpqatools.org/phpqatools pear.netpirates.net/phpDox |
||||
|
||||
Alternative: |
||||
pear install pear.phpunit.de/phploc |
||||
pear install pear.phpunit.de/phpcpd |
||||
pear install pear.phpmd.org/PHP_PMD |
||||
pear install pear.pdepend.org/PHP_Depend |
||||
pear install pear.php.org/PHP_CodeSniffer |
||||
pear install PHP_CodeSniffer |
||||
pear install pear.phpqatools.org/PHP_CodeBrowser |
||||
|
||||
|
||||
How to call this ant script? |
||||
ant -f build/build.xml -Dbasedir=. |
||||
|
||||
|
@ -0,0 +1,179 @@ |
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<project name="ownCloud" default="build" xmlns:jsl="antlib:com.googlecode.jslint4java"> |
||||
|
||||
<!-- the target 'build' can be used by developers for command line builds --> |
||||
<target name="build" depends="prepare,lint,jslint,phploc,pdepend,phpmd,phpcs,phpcpd,phpdoc,phpunit"/> |
||||
|
||||
<!-- the target 'build-ci' is used within our Jenkins CI-server http://ci.tmit.eu --> |
||||
<target name="build-ci" depends="prepare,lint,jslint-ci,phploc,pdepend,phpmd-ci,phpcs-ci,phpcpd-ci,phpdoc,phpunit,phpcb-ci"/> |
||||
|
||||
<!-- the target 'build-pullrequests' is used within our Jenkins CI-server for pull request analysis --> |
||||
<target name="build-pullrequests" depends="prepare,lint,jslint-ci"/> |
||||
|
||||
<target name="clean" description="Cleanup build artifacts"> |
||||
<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"/> |
||||
</target> |
||||
|
||||
<target name="prepare" depends="clean" |
||||
description="Prepare for build"> |
||||
<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> |
||||
|
||||
<!-- php syntax analysis --> |
||||
<target name="lint"> |
||||
<apply executable="php" failonerror="true"> |
||||
<arg value="-l" /> |
||||
|
||||
<fileset dir="${basedir}"> |
||||
<include name="**/*.php" /> |
||||
<exclude name="**/3rdparty/**" /> |
||||
<exclude name="**/l10n/**" /> |
||||
<!-- modified / --> |
||||
</fileset> |
||||
|
||||
</apply> |
||||
</target> |
||||
|
||||
<!-- javascript lint --> |
||||
<target name="jslint-ci" description="Run the JSLint tool on JS files"> |
||||
<jsl:jslint options="white,sloppy,vars,bitwise,eqeq,browser" haltOnFailure="false"> |
||||
<jsl:predef> |
||||
jQuery,$$,OC,$,oc_webroot,oc_appswebroots,oc_current_user,t,Files,FileList,FileActions,localStorage,OCCategories,EventSource,OCdialog,SVGSupport,dragOptions,dragOptions,folderDropOptions,formatDate,humanFileSize,procesSelection,relative_modified_date,scanFiles,simpleFileSize,simpleSize |
||||
</jsl:predef> |
||||
<!-- jsl:formatter type="plain" / --> |
||||
<jsl:formatter type="xml" destfile="build/logs/jslint.xml" /> |
||||
<fileset dir="${basedir}" includes="**/*.js" excludes="**/*.min.js,**/3rdparty/**" /> |
||||
</jsl:jslint> |
||||
</target> |
||||
|
||||
<target name="jslint" description="Run the JSLint tool on JS files"> |
||||
<jsl:jslint options="white,sloppy,vars,bitwise,eqeq,browser" haltOnFailure="false"> |
||||
<jsl:predef> |
||||
jQuery,$$,OC,$,oc_webroot,oc_appswebroots,oc_current_user,t,Files,FileList,FileActions,localStorage,OCCategories,EventSource,OCdialog,SVGSupport,dragOptions,dragOptions,folderDropOptions,formatDate,humanFileSize,procesSelection,relative_modified_date,scanFiles,simpleFileSize,simpleSize |
||||
</jsl:predef> |
||||
<jsl:formatter type="plain" /> |
||||
<fileset dir="${basedir}" includes="**/*.js" excludes="**/*.min.js,**/3rdparty/**" /> |
||||
</jsl:jslint> |
||||
</target> |
||||
|
||||
<target name="phploc" description="Measure project size using PHPLOC"> |
||||
<exec executable="phploc"> |
||||
<arg value="--log-csv" /> |
||||
<arg value="${basedir}/build/logs/phploc.csv" /> |
||||
<arg path="${basedir}" /> |
||||
<arg value="--exclude" /> |
||||
<arg value="${basedir}/3rdparty/" /> |
||||
</exec> |
||||
</target> |
||||
|
||||
<target name="pdepend" |
||||
description="Calculate software metrics using PHP_Depend"> |
||||
<exec executable="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}/3rdparty/"/> |
||||
<arg path="${basedir}" /> |
||||
</exec> |
||||
</target> |
||||
|
||||
<target name="phpmd-ci" |
||||
description="Perform project mess detection using PHPMD creating a log file for the continuous integration server"> |
||||
<exec executable="phpmd"> |
||||
<arg path="${basedir}" /> |
||||
<arg value="xml" /> |
||||
<arg value="${basedir}/build/phpmd.xml" /> |
||||
<arg value="--reportfile" /> |
||||
<arg value="${basedir}/build/logs/pmd.xml" /> |
||||
<arg value="--exclude" /> |
||||
<arg value="${basedir}/3rdparty/" /> |
||||
</exec> |
||||
</target> |
||||
|
||||
<target name="phpmd" |
||||
description="Perform project mess detection using PHPMD creating a log file for the continuous integration server"> |
||||
<exec executable="phpmd"> |
||||
<arg path="${basedir}" /> |
||||
<arg value="xml" /> |
||||
<arg value="${basedir}/build/phpmd.xml" /> |
||||
<arg value="--exclude" /> |
||||
<arg value="${basedir}/3rdparty/" /> |
||||
</exec> |
||||
</target> |
||||
|
||||
<target name="phpcs-ci" |
||||
description="Find coding standard violations using PHP_CodeSniffer creating a log file for the continuous integration server"> |
||||
<exec executable="phpcs" > |
||||
<arg value="-p" /> |
||||
<arg value="-v" /> |
||||
<arg value="--tab-width=4" /> |
||||
<arg value="--report=checkstyle" /> |
||||
<arg value="--report-file=${basedir}/build/logs/checkstyle.xml" /> |
||||
<arg value="--standard=${basedir}/build/phpcs.xml" /> |
||||
<arg path="${basedir}" /> |
||||
</exec> |
||||
</target> |
||||
|
||||
<target name="phpcs" |
||||
description="Find coding standard violations using PHP_CodeSniffer creating a log file for the continuous integration server"> |
||||
<exec executable="phpcs" > |
||||
<arg value="-p" /> |
||||
<arg value="-v" /> |
||||
<arg value="--tab-width=4" /> |
||||
<arg value="--standard=${basedir}/build/phpcs.xml" /> |
||||
<arg path="${basedir}" /> |
||||
</exec> |
||||
</target> |
||||
|
||||
<target name="phpcpd" description="Find duplicate code using PHPCPD"> |
||||
<exec executable="phpcpd"> |
||||
<arg value="--exclude" /> |
||||
<arg value="${basedir}/3rdparty/" /> |
||||
<arg path="${basedir}" /> |
||||
</exec> |
||||
</target> |
||||
|
||||
<target name="phpcpd-ci" description="Find duplicate code using PHPCPD"> |
||||
<exec executable="phpcpd"> |
||||
<arg value="--log-pmd" /> |
||||
<arg value="${basedir}/build/logs/pmd-cpd.xml" /> |
||||
<arg value="--exclude" /> |
||||
<arg value="${basedir}/3rdparty/" /> |
||||
<arg path="${basedir}" /> |
||||
</exec> |
||||
</target> |
||||
|
||||
<!-- No idea if we need this within this build file. This is part of the release which is not contained within this script. --> |
||||
<target name="phpdoc" |
||||
description="Generate API documentation using PHPDocumentor"> |
||||
<!-- exec executable="phpdox"/ --> |
||||
</target> |
||||
|
||||
<!-- currently we use autotest.sh for executing the unit tests against 3 different database setups --> |
||||
<target name="phpunit" description="Run unit tests with PHPUnit"> |
||||
<echo message="TODO: phpunit goes here"/> |
||||
<!-- exec executable="phpunit" failonerror="true"/ --> |
||||
</target> |
||||
|
||||
<target name="phpcb-ci" |
||||
description="Aggregate tool output with PHP_CodeBrowser"> |
||||
<exec executable="phpcb"> |
||||
<arg value="--log" /> |
||||
<arg path="${basedir}/build/logs" /> |
||||
<arg value="--source" /> |
||||
<arg path="${basedir}" /> |
||||
<arg value="--output" /> |
||||
<arg path="${basedir}/build/code-browser" /> |
||||
<arg value="--exclude" /> |
||||
<arg value="${basedir}/3rdparty/" /> |
||||
</exec> |
||||
</target> |
||||
</project> |
@ -0,0 +1,80 @@ |
||||
<?xml version="1.0"?> |
||||
<ruleset name="PHP_CodeSniffer"> |
||||
<description>The coding standard for PHP_CodeSniffer itself.</description> |
||||
<exclude-pattern>*/Tests/*</exclude-pattern> |
||||
<exclude-pattern>*/lib/MDB2/*</exclude-pattern> |
||||
<exclude-pattern>*/3rdparty/*</exclude-pattern> |
||||
<exclude-pattern>*.min.*</exclude-pattern> |
||||
<exclude-pattern>*/l10n/*</exclude-pattern> |
||||
<exclude-pattern>*/files_texteditor/js/aceeditor/*</exclude-pattern> |
||||
<exclude-pattern>*/files_pdfviewer/js/pdfjs/*</exclude-pattern> |
||||
<exclude-pattern>*/files_odfviewer/src/*</exclude-pattern> |
||||
<exclude-pattern>*/files_svgedit/svg-edit/*</exclude-pattern> |
||||
<exclude-pattern>*jquery-ui-1.8.16.custom.css</exclude-pattern> |
||||
<extensions>php</extensions> |
||||
|
||||
<!-- Include the whole PEAR standard --> |
||||
<rule ref="PEAR"> |
||||
<exclude name="PEAR.Commenting.FileComment.InvalidAuthors" /> |
||||
<exclude name="PEAR.Commenting.FileComment.TagIndent" /> |
||||
<exclude name="PEAR.Commenting.FileComment.MissingVersion" /> |
||||
<exclude name="PEAR.Commenting.FileComment.MissingTag" /> |
||||
<exclude name="PEAR.Commenting.ClassComment.TagIndent" /> |
||||
<!-- exclude name="PEAR.WhiteSpace.ScopeIndent.Incorrect" /--> |
||||
<exclude name="PEAR.Commenting.ClassComment.WrongTagOrder" /> |
||||
<exclude name="Generic.WhiteSpace.DisallowTabIndent.TabsUsed" /> |
||||
<exclude name="PEAR.Functions.FunctionCallSignature.SpaceBeforeOpenBracket" /> |
||||
<exclude name="PEAR.Functions.FunctionCallSignature.SpaceAfterOpenBracket" /> |
||||
<exclude name="Generic.ControlStructures.InlineControlStructure.Discouraged" /> |
||||
<exclude name="PEAR.Commenting.FunctionComment.ParameterCommentsNotAligned" /> |
||||
<exclude name="PEAR.Commenting.FunctionComment.MissingParamTag" /> |
||||
<exclude name="PEAR.ControlStructures.ControlSignature" /> |
||||
|
||||
<!-- ident and alignment stuff --> |
||||
<!-- exclude name="PEAR.ControlStructures.MultiLineCondition.Alignment" /> |
||||
<exclude name="PEAR.WhiteSpace.ScopeClosingBrace.BreakIdent" / --> |
||||
|
||||
<!-- allow curly on classes and functions --> |
||||
<exclude name="PEAR.Functions.FunctionDeclaration.BraceOnSameLine" /> |
||||
<exclude name="PEAR.Classes.ClassDeclaration.OpenBraceNewLine" /> |
||||
|
||||
<exclude name="PEAR.NamingConventions.ValidFunctionName.PrivateNoUnderscore" /> |
||||
<exclude name="PEAR.NamingConventions.ValidVariableName.PrivateNoUnderscore" /> |
||||
<exclude name="PEAR.WhiteSpace.ScopeIndent"/> |
||||
</rule> |
||||
|
||||
<rule ref="Zend.Files.ClosingTag" /> |
||||
|
||||
<rule ref="Generic.WhiteSpace.ScopeIndent"> |
||||
<properties> |
||||
<property name="indent" value="4"/> |
||||
</properties> |
||||
</rule> |
||||
|
||||
<rule ref="Generic.Files.LineLength"> |
||||
<properties> |
||||
<property name="lineLimit" value="120"/> |
||||
<property name="absoluteLineLimit" value="160"/> |
||||
</properties> |
||||
</rule> |
||||
|
||||
<!-- Include most of the Squiz standard --> |
||||
<!-- rule ref="Squiz"> |
||||
<exclude name="Squiz.Classes.ClassFileName"/> |
||||
<exclude name="Squiz.Classes.ValidClassName"/> |
||||
<exclude name="Squiz.Commenting.ClassComment"/> |
||||
<exclude name="Squiz.Commenting.FileComment"/> |
||||
<exclude name="Squiz.Commenting.FunctionComment"/> |
||||
<exclude name="Squiz.Commenting.VariableComment"/> |
||||
<exclude name="Squiz.ControlStructures.SwitchDeclaration"/> |
||||
<exclude name="Squiz.Files.FileExtension"/> |
||||
<exclude name="Squiz.NamingConventions.ConstantCase"/> |
||||
<exclude name="Squiz.Operators.ComparisonOperatorUsage"/> |
||||
</rule --> |
||||
|
||||
<!-- We allow variables to be used inside double quoted strings --> |
||||
<!-- rule ref="Squiz.Strings.DoubleQuoteUsage.ContainsVar"> |
||||
<severity>0</severity> |
||||
</rule --> |
||||
|
||||
</ruleset> |
@ -0,0 +1,9 @@ |
||||
<?xml version="1.0"?> |
||||
<ruleset name="My first PHPMD rule set" 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> My custom rule set that checks my code... </description> |
||||
<!-- Import the entire unused code rule set --> |
||||
<rule ref="rulesets/unusedcode.xml" /> |
||||
|
||||
<!-- Import the entire cyclomatic complexity rule --> |
||||
<rule ref="rulesets/codesize.xml/CyclomaticComplexity" /> |
||||
</ruleset> |
Loading…
Reference in new issue