-
Notifications
You must be signed in to change notification settings - Fork 80
/
build.xml
126 lines (109 loc) · 3.92 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
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
<?xml version="1.0" encoding="UTF-8"?>
<project name="joomla-tracker" default="build" basedir=".">
<property name="source" value="src" />
<property name="cli" value="cli" />
<property name="joomlasource" value="cli,src" />
<property name="testsource" value="" />
<condition property="script-suffix" value=".bat" else="">
<os family="windows" />
</condition>
<condition property="script-null" value="NUL" else="/dev/null">
<os family="windows" />
</condition>
<target name="clean" description="Clean up and create artifact directories">
<delete dir="${basedir}/build/coverage" />
<delete dir="${basedir}/build/logs" />
<mkdir dir="${basedir}/build/coverage" />
<mkdir dir="${basedir}/build/logs" />
</target>
<target name="composerupdate" description="Composer self-update">
<exec executable="composer">
<arg value="self-update" />
</exec>
</target>
<target name="installdep" description="Install build dependencies using Composer and NPM">
<exec executable="composer">
<arg value="install" />
</exec>
<exec executable="npm">
<arg value="install" />
</exec>
</target>
<target name="parallelTasks" description="Run the phpmd and phpcs tasks in parallel using a maximum of 2 threads.">
<parallel threadCount="2">
<sequential>
<antcall target="phpmd" />
</sequential>
<antcall target="phpcs" />
</parallel>
</target>
<target name="phpmd" description="Generate pmd.xml using PHPMD">
<exec executable="phpmd${script-suffix}">
<arg path="${joomlasource}" />
<arg value="xml" />
<arg value="${basedir}/build/phpmd.xml" />
<arg value="--reportfile" />
<arg value="${basedir}/build/logs/pmd.xml" />
</exec>
</target>
<target name="phpcs" description="Generate checkstyle.xml using PHP_CodeSniffer">
<exec executable="phpcs${script-suffix}">
<arg value="--report=checkstyle" />
<arg value="--extensions=php" />
<arg value="-p" />
<arg value="--report-file=${basedir}/build/logs/checkstyle.xml" />
<arg value="--standard=${basedir}/build/phpcs/Joomla" />
<arg value="--ignore=${basedir}/*tmpl/*" />
<arg path="${source}" />
<arg path="${cli}" />
<arg path="${basedir}/tests" />
<arg path="www/index.php" />
</exec>
</target>
<target name="travis-phpcs" description="Generate codestyle report using PHP_CodeSniffer for output on Travis-CI builds">
<exec executable="phpcs${script-suffix}">
<arg value="--report=full" />
<arg value="--extensions=php" />
<arg value="-p" />
<arg value="--standard=${basedir}/build/phpcs/Joomla" />
<arg value="--ignore=${basedir}/*tmpl/*" />
<arg path="${source}" />
<arg path="${cli}" />
<arg path="www/index.php" />
</exec>
</target>
<target name="lint" description="Perform syntax check of sourcecode files">
<apply executable="php" failonerror="true">
<arg value="-l" />
<fileset dir="src">
<include name="**/*.php" />
<modified />
</fileset>
<fileset dir="cli">
<include name="**/*.php" />
<modified />
</fileset>
<fileset dir="www">
<include name="index.php" />
<modified />
</fileset>
</apply>
</target>
<target name="composervalidate" description="Perform validation of composer.json files.">
<exec executable="composer" failonerror="true">
<arg value="validate" />
</exec>
</target>
<target name="phpdoc" description="Generate API documentation using phpDocumentor">
<exec executable="phpdoc">
<arg value="--directory" />
<arg path="${basedir}/src/" />
<arg value="--target" />
<arg path="${basedir}/build/api/" />
<arg value="--title" />
<arg value="Joomla! Tracker API" />
</exec>
</target>
<target name="build" depends="clean,composerupdate,composervalidate,installdep,parallelTasks" />
<target name="travis-build" depends="clean,composerupdate,composervalidate,installdep,travis-phpcs,phpmd" />
</project>