forked from Ecodev/gims
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild.xml
executable file
·121 lines (103 loc) · 5.79 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
<?xml version="1.0" encoding="UTF-8"?>
<project name="GIMS" default="build">
<taskdef classname="tasks.CreateDump" name="create-dump" />
<taskdef classname="tasks.LoadDump" name="load-dump" />
<taskdef classname="tasks.LoadRemoteDump" name="load-remote-dump" />
<taskdef classname="tasks.PurgeBackup" name="purge-backup" />
<taskdef classname="tasks.RsyncBackup" name="rsync-backup" />
<target name="dump-data">
<propertyprompt propertyName="dumpFile" defaultValue="db.backup.gz" promptText="Path to gzipped DB dump to be created" useExistingValue="true" />
<create-dump dumpfile="${dumpFile}" />
</target>
<target name="load-data">
<propertyprompt propertyName="dumpFile" defaultValue="db.backup.gz" promptText="Path to gzipped DB dump" useExistingValue="true" />
<load-dump dumpfile="${dumpFile}" />
</target>
<target name="set-permissions">
<echo msg="mkdir cache, logs, ..." />
<mkdir dir="data/cache" />
<mkdir dir="data/logs" />
<mkdir dir="htdocs/tmp" />
<mkdir dir="htdocs/css" />
<echo msg="setfacl default r/o for www-data" />
<exec command="sudo setfacl -R -m u:www-data:r-x -m d:u:www-data:r-x ./" />
<echo msg="setfacl r/w on cache,logs for www-data" />
<exec command="sudo setfacl -R -m u:www-data:rwx -m d:u:www-data:rwx data/logs data/cache" />
<exec command="sudo chmod 0770 ./" />
</target>
<target name="incremental-backup">
<tstamp />
<propertyprompt propertyName="numberOfVersions" defaultValue="30" promptText="Number of versions to keep" useExistingValue="true" />
<propertyprompt propertyName="backupDir" defaultValue="data/backup" promptText="Local backup directory" useExistingValue="true" />
<create-dump dumpFile="${backupDir}/pgdump-${DSTAMP}-${TSTAMP}.gz" />
<purge-backup backupDir="${backupDir}" numberOfVersions="${numberOfVersions}" />
<rsync-backup backupDir="${backupDir}" />
</target>
<target name="load-test-data" description="Load data for tests">
<load-dump dumpfile="tests/data/db.backup.gz" />
</target>
<target name="load-remote-data" description="Load data from a remote server into local database">
<propertyprompt propertyName="remote" defaultValue="gimsinitiative.org" promptText="Remote host (eg: remote.hostname.com)" useExistingValue="true" />
<load-remote-dump remote="${remote}" />
</target>
<!-- Install all PHP dependencies via composer -->
<target name="composer-install">
<composer command="install">
<arg value="--dev" />
<arg value="--prefer-source" />
</composer>
</target>
<!-- ============================================ -->
<!-- Target: build -->
<!-- ============================================ -->
<target name="build" depends="composer-install" description="Build all assets for a fully functionnal application (DB, CSS, JS)">
<exec command="./bin/build.sh" checkreturn="true" logoutput="/dev/stdout" passthru="true" />
</target>
<!-- ============================================ -->
<!-- Delete all temporary files -->
<!-- ============================================ -->
<target name="clean">
<echo msg="Clean..." />
<delete includeemptydirs="true" quiet="true">
<fileset dir="data/logs" includes="**/*" excludes="**/.gitkeep" />
</delete>
<delete quiet="true">
<fileset dir="data/cache">
<include name="*" />
</fileset>
</delete>
<delete dir="data/cache/DoctrineORMModule/" includeemptydirs="true" quiet="true"/>
<delete dir="data/cache/sass/" includeemptydirs="true" quiet="true"/>
<delete dir="data/docs/api/" includeemptydirs="true" quiet="true"/>
<delete dir="htdocs/css/" includeemptydirs="true" quiet="true"/>
<delete dir="htdocs/tmp/" includeemptydirs="true" quiet="true"/>
<delete dir="vendor/" includeemptydirs="true" quiet="true"/>
<delete dir="node_modules/" includeemptydirs="true" quiet="true"/>
</target>
<target name="test" depends="validate-schema,phpunit,karma-unit,protractor-e2e" description="Run all tests available">
<echo msg="Testing done" />
</target>
<target name="travis" depends="validate-schema,phpunit,karma-unit" description="Run all tests available">
<echo msg="Testing done" />
</target>
<target name="validate-schema" depends="build">
<echo msg="Validating schema..." />
<exec command="./vendor/bin/doctrine-module orm:validate-schema" checkreturn="true" logoutput="/dev/stdout" passthru="true" />
</target>
<target name="phpunit" depends="build, load-test-data">
<echo msg="Testing phpunit..." />
<exec command="cd tests/ ; ../vendor/bin/phpunit" checkreturn="true" logoutput="/dev/stdout" passthru="true" />
</target>
<target name="karma-unit" depends="build">
<echo msg="Testing karma-unit..." />
<exec command="./node_modules/.bin/karma start --no-auto-watch --single-run --browsers cli config/karma-unit.conf.js" checkreturn="true" logoutput="/dev/stdout" passthru="true" />
</target>
<target name="karma-e2e" depends="build">
<echo msg="Testing karma-e2e..." />
<exec command="./node_modules/.bin/karma start --no-auto-watch --single-run --browsers cli config/karma-e2e.conf.js" checkreturn="true" logoutput="/dev/stdout" passthru="true" />
</target>
<target name="protractor-e2e" depends="build">
<echo msg="Testing protractor-e2e..." />
<exec command="./node_modules/.bin/protractor config/protractor.conf.js --verbose" checkreturn="true" logoutput="/dev/stdout" passthru="true" />
</target>
</project>