blob: 6ac3990259fce76ac394f83207a7f8bd714a39a0 [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_williams66ec93d2009-11-21 07:06:30 +000022 <!-- = = = end standard properties pattern = = = -->
david_williams42f9b242006-11-27 18:45:14 +000023
david_williams66ec93d2009-11-21 07:06:30 +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_williams66ec93d2009-11-21 07:06:30 +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_williams66ec93d2009-11-21 07:06:30 +000050 <!-- main -->
david_williams39c5f652008-01-02 07:08:39 +000051 <target
52 name="Build">
david_williams2c9dcbc2010-09-12 03:25:19 +000053 <echoproperties/>
54
david_williams320c0332008-01-05 05:55:44 +000055 <antcall
david_williamsc2f548c2008-07-21 04:06:47 +000056 target="doBuildPhase"/>
david_williams320c0332008-01-05 05:55:44 +000057 <antcall
david_williams8994edf2010-09-26 03:49:34 +000058 target="doPackagePhase"/>
59 <antcall
david_williamsc2f548c2008-07-21 04:06:47 +000060 target="doTestPhase"/>
david_williams958e5832008-02-13 05:08:44 +000061 <antcall
david_williamsc2f548c2008-07-21 04:06:47 +000062 target="checkIfFailedTests"/>
david_williams320c0332008-01-05 05:55:44 +000063 </target>
64 <target
david_williams958e5832008-02-13 05:08:44 +000065 name="checkIfFailedTests"
66 depends="checkFailedFile"
67 if="failedMessage">
david_williamsa0c95f72008-02-13 05:14:14 +000068 <fail
david_williamsc2f548c2008-07-21 04:06:47 +000069 message="Build failed due to failing JUnits in the following test plugin(s):${line.separator}${failedMessage}"/>
david_williams958e5832008-02-13 05:08:44 +000070 </target>
david_williamsa0c95f72008-02-13 05:14:14 +000071 <target
david_williams66ec93d2009-11-21 07:06:30 +000072 name="checkFailedFile"
73 unless="passBuildEvenIfFailedTests">
david_williamsa0c95f72008-02-13 05:14:14 +000074 <loadresource
75 property="failedMessage"
76 quiet="true"
77 failonerror="false">
78 <file
david_williamsc2f548c2008-07-21 04:06:47 +000079 file="${env.PROJECT_PROJECTS}/${projectname}/workdir/junitFailureList.log"/>
david_williamsa0c95f72008-02-13 05:14:14 +000080 </loadresource>
81 </target>
david_williamsc2f548c2008-07-21 04:06:47 +000082 <!--
83 1) clean build if build.clean s set to true 2) retreive fresh
84 files from CVS 3) build and upload results
85 -->
86 <target
david_williamsd2fa7ee2008-02-03 21:32:17 +000087 name="doBuildPhase">
david_williams39c5f652008-01-02 07:08:39 +000088 <antcall
david_williamsc2f548c2008-07-21 04:06:47 +000089 target="doCleanBuild"/>
david_williams70831b52007-10-05 03:27:45 +000090
david_williams66ec93d2009-11-21 07:06:30 +000091 <!-- Create preliminary download site files -->
david_williams39c5f652008-01-02 07:08:39 +000092 <ant
93 antfile="${builder}"
david_williamsc2f548c2008-07-21 04:06:47 +000094 target="site"/>
david_williamsdc269912010-08-22 23:08:44 +000095
96 <ant
david_williams66ec93d2009-11-21 07:06:30 +000097 antfile="cc_copyArtifacts.xml"/>
david_williamsdc269912010-08-22 23:08:44 +000098
david_williams39c5f652008-01-02 07:08:39 +000099 </target>
100 <target
101 name="doCleanBuild"
102 unless="skipCleanBuild">
david_williams66ec93d2009-11-21 07:06:30 +0000103 <!-- clean previous build -->
david_williams39c5f652008-01-02 07:08:39 +0000104 <antcall
david_williamsc2f548c2008-07-21 04:06:47 +0000105 target="clean"/>
david_williams66ec93d2009-11-21 07:06:30 +0000106 <!-- check out fresh set of appropriate files for the builder -->
david_williams39c5f652008-01-02 07:08:39 +0000107 <ant
david_williamsc2f548c2008-07-21 04:06:47 +0000108 antfile="checkout.xml"/>
david_williams66ec93d2009-11-21 07:06:30 +0000109 <!-- build and create preliminary download site files -->
david_williams39c5f652008-01-02 07:08:39 +0000110 <ant
111 antfile="${builder}"
david_williamsc2f548c2008-07-21 04:06:47 +0000112 target="build"/>
david_williams39c5f652008-01-02 07:08:39 +0000113 </target>
david_williamsc2f548c2008-07-21 04:06:47 +0000114 <!--
115 test phase runs tests, creates test summary files, and uploads
116 results
117 -->
david_williams39c5f652008-01-02 07:08:39 +0000118 <target
119 name="doTestPhase"
120 unless="skipUnitTests">
david_williamsd84c2202008-01-05 06:45:17 +0000121 <delete
david_williams14cadd12011-03-23 06:43:39 +0000122 quiet="true"
david_williamsd84c2202008-01-05 06:45:17 +0000123 dir="${env.PROJECT_TESTS}/${projectname}"
david_williamsc2f548c2008-07-21 04:06:47 +0000124 failonerror="false"/>
david_williams39c5f652008-01-02 07:08:39 +0000125 <ant
126 antfile="${builder}"
david_williamsc2f548c2008-07-21 04:06:47 +0000127 target="test"/>
david_williams39c5f652008-01-02 07:08:39 +0000128 <ant
129 antfile="${builder}"
david_williamsc2f548c2008-07-21 04:06:47 +0000130 target="site"/>
david_williamsc2f548c2008-07-21 04:06:47 +0000131
david_williams8994edf2010-09-26 03:49:34 +0000132 </target>
133 <target
134 name="doPackagePhase">
135 <ant
136 antfile="${builder}"
137 target="package"/>
david_williams3c47de32010-10-05 06:34:50 +0000138 <!-- TODO: we probably don't need to call "site" here ... just adding new zips/repos ... no prep required? -->
david_williamsc3f82352010-10-04 16:10:14 +0000139 <ant
140 antfile="${builder}"
141 target="site"/>
david_williams3c47de32010-10-05 06:34:50 +0000142 <ant
143 antfile="cc_copyArtifacts.xml"/>
david_williams8994edf2010-09-26 03:49:34 +0000144 </target>
david_williams66ec93d2009-11-21 07:06:30 +0000145 <!-- clean task -->
david_williams39c5f652008-01-02 07:08:39 +0000146 <target
147 name="clean"
148 depends="check.clean"
149 if="doClean">
david_williams14cadd12011-03-23 06:43:39 +0000150 <delete quiet="true"
david_williams320c0332008-01-05 05:55:44 +0000151 dir="${env.PROJECT_PROJECTS}/${projectname}"
david_williamsc2f548c2008-07-21 04:06:47 +0000152 failonerror="false"/>
david_williams39c5f652008-01-02 07:08:39 +0000153 <delete
david_williams14cadd12011-03-23 06:43:39 +0000154 quiet="true"
david_williams320c0332008-01-05 05:55:44 +0000155 dir="${env.PROJECT_TESTS}/${projectname}"
david_williamsc2f548c2008-07-21 04:06:47 +0000156 failonerror="false"/>
david_williamsb6058f52009-12-27 22:23:15 +0000157
david_williams39c5f652008-01-02 07:08:39 +0000158 </target>
159
david_williams66ec93d2009-11-21 07:06:30 +0000160 <!-- if build.clean is true, or does not exist, set doClean to true -->
david_williams39c5f652008-01-02 07:08:39 +0000161 <target
162 name="check.clean">
163 <condition
164 property="doClean">
165 <or>
166 <not>
167 <isset
david_williamsc2f548c2008-07-21 04:06:47 +0000168 property="build.clean"/>
david_williams39c5f652008-01-02 07:08:39 +0000169 </not>
170 <equals
171 arg1="${build.clean}"
david_williamsc2f548c2008-07-21 04:06:47 +0000172 arg2="true"/>
david_williams39c5f652008-01-02 07:08:39 +0000173 </or>
174 </condition>
175 </target>
176</project>