build.xml
5.63 KB
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
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
<?xml version="1.0"?>
<!--
- Configurações para o processo de build Phing
-
- Este arquivo de build precisa de alguns ajustes antes da criação de uma
- release. Mude a propriedade project.conf.version para o número de versão
- desejado e a propriedade project.conf.buildin para apontar para o diretório
- de build desejado (o padrão é /tmp).
-
- Dois pacotes compactados serão criados, um Gzip e outro Zip.
-
- Este build não executa os testes unitários e funcionais.
-
- Arquivo codificado em UTF-8 para maior compatibilidade com o utilitário
- CLI phing.
-
- @author Eriksen Costa Paixão <eriksen.paixao_bs@cobra.com.br>
- @license http://creativecommons.org/licenses/GPL/2.0/legalcode.pt CC GNU GPL
- @link http://phing.info/docs/guide/current/ Phing Documentation
- @version $Id$
-->
<project name="i-Educar" description="Sistema de gestão de escolas" default="release" basedir="../">
<property name="project.conf.version" value="1.1.0alpha1" />
<property name="project.conf.curdir" value="" />
<property name="project.conf.buildin" value="/tmp" />
<property name="project.conf.builddir" value="${project.conf.buildin}/release-${project.conf.version}" />
<property name="project.conf.buildgzip" value="${project.conf.buildin}/ieducar-${project.conf.version}.tar.gz" />
<property name="project.conf.buildzip" value="${project.conf.buildin}/ieducar-${project.conf.version}.zip" />
<!-- Apenas para saber quanta memória o build consome -->
<property name="build.report.memory_peak" value="" />
<!-- Pega o diretório atual como workaround ao chdir das classes de teste base -->
<php function="getcwd" returnProperty="project.conf.curdir" />
<!-- Inclui todos os arquivos do projeto, ignorando arquivos e diretórios -->
<fileset dir="${project.basedir}" id="allfiles">
<include name="**" />
<exclude name=".svn/" />
<exclude name="**/build.xml" />
<exclude name="**/coverage.db" />
<exclude name="tests/" />
<exclude name="spikes/" />
</fileset>
<!-- Inclui todos os arquivos de testes -->
<fileset dir="${project.conf.curdir}/tests" id="alltests">
<include name="**" />
<exclude name="selenese/*" />
</fileset>
<!-- Inclui apenas os arquivos de unit test -->
<fileset dir="${project.conf.curdir}/tests" id="unittests">
<include name="**" />
<exclude name="functional/*" />
<exclude name="selenese/*" />
</fileset>
<!-- Inclui apenas os arquivos de functional test -->
<fileset dir="${project.conf.curdir}/tests" id="functests">
<include name="**" />
<exclude name="unit/*" />
<exclude name="selenese/*" />
</fileset>
<!-- Prepara o ambiente para a o processo de build -->
<target name="prepare">
<echo msg="Preparando o build para a release ${project.conf.version}" />
<echo msg="Apagando diretório alvo ${project.conf.builddir}" />
<delete dir="${project.conf.builddir}" verbose="on" includeemptydirs="on" failonerror="on" />
<echo msg="Apagando pacotes gzip e zip ${project.conf.buildgzip} e ${project.conf.buildzip}" />
<delete file="${project.conf.buildgzip}" verbose="on" failonerror="on" />
<delete file="${project.conf.buildzip}" verbose="on" failonerror="on" />
<echo msg="Criando diretório do build ${project.conf.builddir}" />
<delete dir="${project.conf.builddir}" verbose="on" includeemptydirs="on" failonerror="on" />
</target>
<!-- Executa todos os testes disponíveis -->
<target name="tests">
<echo msg="Executando todos os testes em ${project.conf.curdir}/tests" />
<phpunit printsummary="true" haltonfailure="true" haltonerror="on" >
<formatter todir="${project.conf.buildin}" type="xml"/>
<batchtest>
<fileset refid="alltests" />
</batchtest>
</phpunit>
</target>
<!-- Executa apenas os unit tests -->
<target name="unittest">
<echo msg="Executando todos os unit tests em ${project.conf.curdir}/tests/unit" />
<phpunit printsummary="true" haltonfailure="true" haltonerror="on" >
<batchtest>
<fileset refid="unittests" />
</batchtest>
</phpunit>
</target>
<!-- Executa apenas os functional tests -->
<target name="functest">
<echo msg="Executando todos os functional tests em ${project.conf.curdir}/tests/functional" />
<phpunit printsummary="true" haltonfailure="true" haltonerror="on" >
<batchtest>
<fileset refid="functests" />
</batchtest>
</phpunit>
</target>
<!-- Copia os arquivos do projeto para o diretório de build -->
<target name="build" depends="prepare">
<echo msg="Criando o build" />
<mkdir dir="${project.conf.builddir}" />
<copy todir="${project.conf.builddir}">
<fileset refid="allfiles" />
</copy>
</target>
<!-- Empacota o build com Gzip -->
<target name="gzip" depends="build">
<echo msg="Gzipping ${project.conf.builddir}" />
<tar destfile="${project.conf.buildgzip}" compression="gzip">
<fileset dir="${project.conf.builddir}">
<include name="**" />
</fileset>
</tar>
</target>
<!-- Empacota o build com Zip -->
<target name="zip" depends="build">
<echo msg="Zipping ${project.conf.builddir}" />
<zip destfile="${project.conf.buildzip}">
<fileset dir="${project.conf.builddir}">
<include name="**" />
</fileset>
</zip>
</target>
<!-- Cria uma nova release -->
<target name="release" depends="build, tests, gzip, zip">
<echo msg="OK! Build construído com sucesso." />
<php function="memory_get_peak_usage" returnProperty="build.report.memory_peak" />
<echo msg="Pico de memória: ${build.report.memory_peak}." />
</target>
</project>