blob: e02ee73d12b4e2a06d672fa1dc7dd828e76ae469 [file] [log] [blame]
david_williams39c5f652008-01-02 07:08:39 +00001<project
2 name="cc_project_build"
3 default="Build"
4 basedir=".">
david_williamsc2f548c2008-07-21 04:06:47 +00005 <!--
6 Standard properties pattern. Note: to be cross-platform,
7 "environment variables" are only appropriate for some variables,
8 e.g. ones we set, since properties are case sensitive, even if
9 the environment variables on your operating system are not, e.g.
10 it will be ${env.Path} not ${env.PATH} on Windows
11 -->
david_williams39c5f652008-01-02 07:08:39 +000012 <property
david_williamsc2f548c2008-07-21 04:06:47 +000013 environment="env"/>
14 <!--
15 Let users override standard properties, if desired. If
16 directory, file, or some properties do not exist, then standard
17 properties will be used.
18 -->
david_williams39c5f652008-01-02 07:08:39 +000019 <property
david_williamsc2f548c2008-07-21 04:06:47 +000020 file="${env.LOCAL_BUILD_PROPERTIES_DIR}/${ant.project.name}.properties"/>
david_williams42f9b242006-11-27 18:45:14 +000021
david_williamsc2f548c2008-07-21 04:06:47 +000022 <!-- = = = end standard properties pattern = = = -->
david_williams42f9b242006-11-27 18:45:14 +000023
david_williamsc2f548c2008-07-21 04:06:47 +000024 <!-- if not otherwise set, build clean -->
david_williams39c5f652008-01-02 07:08:39 +000025 <property
26 name="build.clean"
david_williamsc2f548c2008-07-21 04:06:47 +000027 value="true"/>
28 <!--
29 set main builder file name, based on distribution, buildBranch
30 and build type
31 -->
david_williams0d90cde2008-01-05 05:59:43 +000032 <property
33 name="builder"
david_williamsc2f548c2008-07-21 04:06:47 +000034 value="${env.PROJECT_BUILDERS}/${projectname}/${env.RELENG_BUILDER}/build.xml"/>
35 <!--
36 If not set yet, by "caller", then fail fast. Normally this is
37 literally the project name from CruiseControl, but if running
38 "standalone", it would have to be set to something similar to
39 one of the cc_config project name, such as wtp-R3.0-I.
david_williams42f9b242006-11-27 18:45:14 +000040 -->
david_williams320c0332008-01-05 05:55:44 +000041 <fail
david_williams958e5832008-02-13 05:08:44 +000042 unless="projectname"
david_williamsc2f548c2008-07-21 04:06:47 +000043 message="projectname must be set by caller"/>
david_williams42f9b242006-11-27 18:45:14 +000044
david_williamsc2f548c2008-07-21 04:06:47 +000045 <!-- if not otherwise set, the following are good default values -->
david_williams39c5f652008-01-02 07:08:39 +000046 <property
47 name="mapVersionTag"
david_williamsc2f548c2008-07-21 04:06:47 +000048 value="HEAD"/>
49
david_williams1e71b282008-03-10 10:12:40 +000050 <!-- main -->
david_williams39c5f652008-01-02 07:08:39 +000051 <target
52 name="Build">
david_williamsc2f548c2008-07-21 04:06:47 +000053
david_williams320c0332008-01-05 05:55:44 +000054 <antcall
david_williamsc2f548c2008-07-21 04:06:47 +000055 target="doBuildPhase"/>
david_williams320c0332008-01-05 05:55:44 +000056 <antcall
david_williamsc2f548c2008-07-21 04:06:47 +000057 target="doTestPhase"/>
david_williams958e5832008-02-13 05:08:44 +000058 <antcall
david_williamsc2f548c2008-07-21 04:06:47 +000059 target="checkIfFailedTests"/>
60
david_williams320c0332008-01-05 05:55:44 +000061 </target>
62 <target
david_williams958e5832008-02-13 05:08:44 +000063 name="checkIfFailedTests"
64 depends="checkFailedFile"
65 if="failedMessage">
david_williamsa0c95f72008-02-13 05:14:14 +000066 <fail
david_williamsc2f548c2008-07-21 04:06:47 +000067 message="Build failed due to failing JUnits in the following test plugin(s):${line.separator}${failedMessage}"/>
david_williams958e5832008-02-13 05:08:44 +000068 </target>
david_williamsa0c95f72008-02-13 05:14:14 +000069 <target
70 name="checkFailedFile">
71 <loadresource
72 property="failedMessage"
73 quiet="true"
74 failonerror="false">
75 <file
david_williamsc2f548c2008-07-21 04:06:47 +000076 file="${env.PROJECT_PROJECTS}/${projectname}/workdir/junitFailureList.log"/>
david_williamsa0c95f72008-02-13 05:14:14 +000077 </loadresource>
78 </target>
david_williamsc2f548c2008-07-21 04:06:47 +000079 <!--
80 1) clean build if build.clean s set to true 2) retreive fresh
81 files from CVS 3) build and upload results
82 -->
83 <target
david_williamsd2fa7ee2008-02-03 21:32:17 +000084 name="doBuildPhase">
david_williams39c5f652008-01-02 07:08:39 +000085 <antcall
david_williamsc2f548c2008-07-21 04:06:47 +000086 target="doCleanBuild"/>
david_williams70831b52007-10-05 03:27:45 +000087
david_williamsc2f548c2008-07-21 04:06:47 +000088 <!-- Create preliminary download site files -->
david_williams39c5f652008-01-02 07:08:39 +000089 <ant
90 antfile="${builder}"
david_williamsc2f548c2008-07-21 04:06:47 +000091 target="site"/>
92
93 <!-- copy what we have so far
david_williams39c5f652008-01-02 07:08:39 +000094 <ant
david_williamsc2f548c2008-07-21 04:06:47 +000095 antfile="cc_copyArtifacts.xml"/> -->
david_williams39c5f652008-01-02 07:08:39 +000096 </target>
97 <target
98 name="doCleanBuild"
99 unless="skipCleanBuild">
david_williamsc2f548c2008-07-21 04:06:47 +0000100 <!-- clean previous build -->
david_williams39c5f652008-01-02 07:08:39 +0000101 <antcall
david_williamsc2f548c2008-07-21 04:06:47 +0000102 target="clean"/>
103 <!-- check out fresh set of appropriate files for the builder -->
david_williams39c5f652008-01-02 07:08:39 +0000104 <ant
david_williamsc2f548c2008-07-21 04:06:47 +0000105 antfile="checkout.xml"/>
106 <!-- build and create preliminary download site files -->
david_williams39c5f652008-01-02 07:08:39 +0000107 <ant
108 antfile="${builder}"
david_williamsc2f548c2008-07-21 04:06:47 +0000109 target="build"/>
david_williams39c5f652008-01-02 07:08:39 +0000110 </target>
david_williamsc2f548c2008-07-21 04:06:47 +0000111 <!--
112 test phase runs tests, creates test summary files, and uploads
113 results
114 -->
david_williams39c5f652008-01-02 07:08:39 +0000115 <target
116 name="doTestPhase"
117 unless="skipUnitTests">
david_williamsd84c2202008-01-05 06:45:17 +0000118 <delete
119 dir="${env.PROJECT_TESTS}/${projectname}"
david_williamsc2f548c2008-07-21 04:06:47 +0000120 failonerror="false"/>
david_williams39c5f652008-01-02 07:08:39 +0000121 <ant
122 antfile="${builder}"
david_williamsc2f548c2008-07-21 04:06:47 +0000123 target="test"/>
david_williams39c5f652008-01-02 07:08:39 +0000124 <ant
125 antfile="${builder}"
david_williamsc2f548c2008-07-21 04:06:47 +0000126 target="site"/>
127 <!-- <ant
128 antfile="cc_copyArtifacts.xml"/> -->
david_williams39c5f652008-01-02 07:08:39 +0000129 </target>
david_williamsc2f548c2008-07-21 04:06:47 +0000130
131 <!-- clean task -->
david_williams39c5f652008-01-02 07:08:39 +0000132 <target
133 name="clean"
134 depends="check.clean"
135 if="doClean">
136 <delete
david_williams320c0332008-01-05 05:55:44 +0000137 dir="${env.PROJECT_PROJECTS}/${projectname}"
david_williamsc2f548c2008-07-21 04:06:47 +0000138 failonerror="false"/>
david_williams39c5f652008-01-02 07:08:39 +0000139 <delete
david_williams320c0332008-01-05 05:55:44 +0000140 dir="${env.PROJECT_TESTS}/${projectname}"
david_williamsc2f548c2008-07-21 04:06:47 +0000141 failonerror="false"/>
142 <!--
143 deleting ant working will be complicated, since sometimes
144 same as releng.control
145 -->
146 <!--
147 <delete dir="${env.ANT_WORKING}" failonerror="false" />
148 -->
david_williams39c5f652008-01-02 07:08:39 +0000149 </target>
150
david_williamsc2f548c2008-07-21 04:06:47 +0000151 <!-- if build.clean is true, or does not exist, set doClean to true -->
david_williams39c5f652008-01-02 07:08:39 +0000152 <target
153 name="check.clean">
154 <condition
155 property="doClean">
156 <or>
157 <not>
158 <isset
david_williamsc2f548c2008-07-21 04:06:47 +0000159 property="build.clean"/>
david_williams39c5f652008-01-02 07:08:39 +0000160 </not>
161 <equals
162 arg1="${build.clean}"
david_williamsc2f548c2008-07-21 04:06:47 +0000163 arg2="true"/>
david_williams39c5f652008-01-02 07:08:39 +0000164 </or>
165 </condition>
166 </target>
167</project>