This repository has been archived by the owner on Jul 11, 2018. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
/
build.xml
108 lines (95 loc) · 4.43 KB
/
build.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
<?xml version="1.0" encoding="UTF-8"?>
<project name="OpenConext Engineblock Metadata-ci" default="build">
<target name="build"
depends="prepare,php-lint-ci,phpmd-ci,phpcs-ci,phpcpd-ci,php-security-checker,phpunit-ci"/>
<target name="clean" description="Cleanup build artifacts">
<delete dir="build/artifacts/coverage"/>
<delete dir="build/artifacts/logs"/>
</target>
<target name="prepare" depends="clean" description="Prepare for build">
<mkdir dir="build/artifacts/coverage"/>
<mkdir dir="build/artifacts/logs"/>
</target>
<target name="get-changeset.php.raw"
description="creates a list of changed php files separated by newline">
<pathconvert property="changeset.php.raw" pathsep="${line.separator}">
<fileset dir="src">
<include name="**/*.php"/>
<modified/>
</fileset>
</pathconvert>
<!--Check if files are modified-->
<condition property="changeset.php.notempty">
<not>
<equals arg1="${changeset.php.raw}" arg2="" trim="true"/>
</not>
</condition>
</target>
<target name="get-changeset.php.spacesep" depends="get-changeset.php.raw" if="changeset.php.notempty"
description="Creates a quoted list of changed php files separated by spaces">
<loadresource property="changeset.php.spacesep">
<propertyresource name="changeset.php.raw"/>
<filterchain>
<tokenfilter delimoutput=" ">
<linetokenizer/>
<replaceregex pattern="^" replace='"'/>
<replaceregex pattern="$" replace='"'/>
</tokenfilter>
</filterchain>
</loadresource>
</target>
<target name="php-lint-ci" depends="get-changeset.php.spacesep" if="changeset.php.notempty"
description="Perform syntax check of sourcecode files in parallel">
<exec executable="sh" failonerror="true">
<arg value="-c"/>
<arg value="echo '${changeset.php.spacesep}' | xargs -n 1 -P 4 php -l 1>/dev/null"/>
</exec>
<echo message="OK"/>
</target>
<target name="php-security-checker" description="Check your composer dependencies for insecure components">
<exec executable="vendor/bin/security-checker" failonerror="true">
<arg value="security:check"/>
<arg value="--verbose"/>
<arg value="--end-point=http://security.sensiolabs.org/check_lock" />
<arg value="composer.lock"/>
</exec>
</target>
<target name="phpmd-ci"
description="Perform project mess detection using PHPMD creating a log file for the continuous integration server">
<exec executable="vendor/bin/phpmd" failonerror="true">
<arg path="src"/>
<arg value="xml"/>
<arg value="tools/phpmd/phpmd.xml"/>
<arg value="--reportfile"/>
<arg value="build/artifacts/logs/pmd.xml"/>
</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="vendor/bin/phpcs" failonerror="true">
<arg value="--report-checkstyle=build/artifacts/logs/checkstyle-php.xml"/>
<arg value="--report=full"/>
<arg value="--standard=tools/phpcs/ruleset.xml"/>
<!-- Don't show warnings-->
<arg value="--warning-severity=0"/>
<arg value="--extensions=php"/>
<arg path="src"/>
</exec>
</target>
<target name="phpcpd-ci" description="Find duplicate code using PHPCPD">
<exec executable="vendor/bin/phpcpd" failonerror="false">
<arg value="--log-pmd"/>
<arg value="build/artifacts/logs/pmd-cpd.xml"/>
<arg path="src"/>
</exec>
</target>
<target name="phpunit-ci" description="Run unit tests with PHPUnit">
<exec executable="vendor/bin/phpunit" failonerror="true">
<arg line="--configuration=${basedir}/tests/"/>
<arg line="--coverage-html=build/artifacts/coverage"/>
<arg line="--log-junit=build/artifacts/logs/junit.xml"/>
<arg line="--coverage-clover=build/artifacts/coverage/clover.xml"/>
<arg line="--coverage-text"/>
</exec>
</target>
</project>