david_williams | 39c5f65 | 2008-01-02 07:08:39 +0000 | [diff] [blame] | 1 | <project |
| 2 | name="cc_project_build" |
| 3 | default="Build" |
| 4 | basedir="."> |
david_williams | 42f9b24 | 2006-11-27 18:45:14 +0000 | [diff] [blame] | 5 | |
david_williams | 39c5f65 | 2008-01-02 07:08:39 +0000 | [diff] [blame] | 6 | <!-- = = = standard properties pattern = = = --> |
| 7 | <!-- |
| 8 | Note to be cross-platform, "environment variables" are only appropriate for |
david_williams | 42f9b24 | 2006-11-27 18:45:14 +0000 | [diff] [blame] | 9 | some variables, e.g. ones we set, since properties are case sensitive, even if |
| 10 | the environment variables on your operating system are not, e.g. it will |
| 11 | be ${env.Path} not ${env.PATH} on Windows --> |
david_williams | 39c5f65 | 2008-01-02 07:08:39 +0000 | [diff] [blame] | 12 | <property |
| 13 | environment="env" /> |
david_williams | 70831b5 | 2007-10-05 03:27:45 +0000 | [diff] [blame] | 14 | |
david_williams | 39c5f65 | 2008-01-02 07:08:39 +0000 | [diff] [blame] | 15 | <!-- |
| 16 | Let users override standard properties, if desired. |
| 17 | If directory, file, or some properties do not exist, |
| 18 | then standard properties will be used. |
david_williams | 42f9b24 | 2006-11-27 18:45:14 +0000 | [diff] [blame] | 19 | --> |
david_williams | 39c5f65 | 2008-01-02 07:08:39 +0000 | [diff] [blame] | 20 | <property |
| 21 | file="${env.LOCAL_BUILD_PROPERTIES_DIR}/${ant.project.name}.properties" /> |
david_williams | 42f9b24 | 2006-11-27 18:45:14 +0000 | [diff] [blame] | 22 | |
david_williams | 39c5f65 | 2008-01-02 07:08:39 +0000 | [diff] [blame] | 23 | <!-- = = = end standard properties pattern = = = --> |
david_williams | 42f9b24 | 2006-11-27 18:45:14 +0000 | [diff] [blame] | 24 | |
david_williams | 39c5f65 | 2008-01-02 07:08:39 +0000 | [diff] [blame] | 25 | <!-- if not otherwise set, build clean --> |
| 26 | <property |
| 27 | name="build.clean" |
| 28 | value="true" /> |
david_williams | 70831b5 | 2007-10-05 03:27:45 +0000 | [diff] [blame] | 29 | |
david_williams | 0d90cde | 2008-01-05 05:59:43 +0000 | [diff] [blame] | 30 | <!-- set main builder file name, based on distribution, buildBranch and build type --> |
| 31 | <property |
| 32 | name="builder" |
| 33 | value="${env.PROJECT_BUILDERS}/${projectname}/${env.RELENG_BUILDER}/build.xml" /> |
| 34 | |
david_williams | 39c5f65 | 2008-01-02 07:08:39 +0000 | [diff] [blame] | 35 | <!-- |
david_williams | 320c033 | 2008-01-05 05:55:44 +0000 | [diff] [blame] | 36 | If not set yet, by "caller", then fail fast. |
david_williams | 39c5f65 | 2008-01-02 07:08:39 +0000 | [diff] [blame] | 37 | Normally this is literally the project name from CruiseControl, but |
david_williams | 320c033 | 2008-01-05 05:55:44 +0000 | [diff] [blame] | 38 | if running "standalone", it would have to be set to something similar |
| 39 | to one of the cc_config project name, such as wtp-R3.0-I. |
david_williams | 42f9b24 | 2006-11-27 18:45:14 +0000 | [diff] [blame] | 40 | --> |
david_williams | 320c033 | 2008-01-05 05:55:44 +0000 | [diff] [blame] | 41 | <fail |
david_williams | 958e583 | 2008-02-13 05:08:44 +0000 | [diff] [blame] | 42 | unless="projectname" |
| 43 | message="projectname must be set by caller" /> |
david_williams | 42f9b24 | 2006-11-27 18:45:14 +0000 | [diff] [blame] | 44 | |
david_williams | 39c5f65 | 2008-01-02 07:08:39 +0000 | [diff] [blame] | 45 | <!-- if not otherwise set, the following are good default values --> |
| 46 | <property |
| 47 | name="mapVersionTag" |
| 48 | value="HEAD" /> |
david_williams | 1e71b28 | 2008-03-10 10:12:40 +0000 | [diff] [blame] | 49 | |
| 50 | <!-- main --> |
david_williams | 39c5f65 | 2008-01-02 07:08:39 +0000 | [diff] [blame] | 51 | <target |
| 52 | name="Build"> |
david_williams | 320c033 | 2008-01-05 05:55:44 +0000 | [diff] [blame] | 53 | <antcall |
| 54 | target="doBuildPhase" /> |
| 55 | <antcall |
| 56 | target="doTestPhase" /> |
david_williams | 958e583 | 2008-02-13 05:08:44 +0000 | [diff] [blame] | 57 | <antcall |
| 58 | target="checkIfFailedTests" /> |
david_williams | 320c033 | 2008-01-05 05:55:44 +0000 | [diff] [blame] | 59 | </target> |
| 60 | <target |
david_williams | 958e583 | 2008-02-13 05:08:44 +0000 | [diff] [blame] | 61 | name="checkIfFailedTests" |
| 62 | depends="checkFailedFile" |
| 63 | if="failedMessage"> |
david_williams | a0c95f7 | 2008-02-13 05:14:14 +0000 | [diff] [blame] | 64 | <fail |
david_williams | b9f8405 | 2008-02-13 05:18:54 +0000 | [diff] [blame] | 65 | message="Build failed due to failing JUnits in the following test plugin(s):${line.separator}${failedMessage}" /> |
david_williams | 958e583 | 2008-02-13 05:08:44 +0000 | [diff] [blame] | 66 | </target> |
david_williams | 1e71b28 | 2008-03-10 10:12:40 +0000 | [diff] [blame] | 67 | |
david_williams | a0c95f7 | 2008-02-13 05:14:14 +0000 | [diff] [blame] | 68 | <target |
| 69 | name="checkFailedFile"> |
| 70 | <loadresource |
| 71 | property="failedMessage" |
| 72 | quiet="true" |
| 73 | failonerror="false"> |
| 74 | <file |
| 75 | file="${env.PROJECT_PROJECTS}/${projectname}/workdir/junitFailureList.log" /> |
| 76 | </loadresource> |
| 77 | </target> |
david_williams | 1e71b28 | 2008-03-10 10:12:40 +0000 | [diff] [blame] | 78 | |
| 79 | <!-- |
| 80 | 1) clean build if build.clean s set to true |
| 81 | 2) retreive fresh files from CVS |
| 82 | 3) build and upload results |
| 83 | --> |
| 84 | <target |
david_williams | d2fa7ee | 2008-02-03 21:32:17 +0000 | [diff] [blame] | 85 | name="doBuildPhase"> |
david_williams | 39c5f65 | 2008-01-02 07:08:39 +0000 | [diff] [blame] | 86 | <antcall |
| 87 | target="doCleanBuild" /> |
david_williams | 70831b5 | 2007-10-05 03:27:45 +0000 | [diff] [blame] | 88 | |
david_williams | 320c033 | 2008-01-05 05:55:44 +0000 | [diff] [blame] | 89 | <!-- and create preliminary download site files --> |
david_williams | 39c5f65 | 2008-01-02 07:08:39 +0000 | [diff] [blame] | 90 | <ant |
| 91 | antfile="${builder}" |
| 92 | target="site" /> |
david_williams | 320c033 | 2008-01-05 05:55:44 +0000 | [diff] [blame] | 93 | <!-- upload what we have so far --> |
david_williams | 39c5f65 | 2008-01-02 07:08:39 +0000 | [diff] [blame] | 94 | <ant |
| 95 | antfile="${builder}" |
| 96 | target="upload" /> |
david_williams | 39c5f65 | 2008-01-02 07:08:39 +0000 | [diff] [blame] | 97 | </target> |
| 98 | <target |
| 99 | name="doCleanBuild" |
| 100 | unless="skipCleanBuild"> |
| 101 | <!-- clean previous build --> |
| 102 | <antcall |
| 103 | target="clean" /> |
david_williams | 39c5f65 | 2008-01-02 07:08:39 +0000 | [diff] [blame] | 104 | <!-- check out fresh set of appropriate files for the builder --> |
| 105 | <ant |
| 106 | antfile="checkout.xml" /> |
david_williams | 39c5f65 | 2008-01-02 07:08:39 +0000 | [diff] [blame] | 107 | <!-- build and create preliminary download site files --> |
| 108 | <ant |
| 109 | antfile="${builder}" |
| 110 | target="build" /> |
| 111 | </target> |
david_williams | 320c033 | 2008-01-05 05:55:44 +0000 | [diff] [blame] | 112 | |
| 113 | <!-- test phase runs tests, creates test summary files, and uploads results --> |
david_williams | 39c5f65 | 2008-01-02 07:08:39 +0000 | [diff] [blame] | 114 | <target |
| 115 | name="doTestPhase" |
| 116 | unless="skipUnitTests"> |
david_williams | d84c220 | 2008-01-05 06:45:17 +0000 | [diff] [blame] | 117 | <delete |
| 118 | dir="${env.PROJECT_TESTS}/${projectname}" |
| 119 | failonerror="false" /> |
david_williams | 39c5f65 | 2008-01-02 07:08:39 +0000 | [diff] [blame] | 120 | <ant |
| 121 | antfile="${builder}" |
| 122 | target="test" /> |
| 123 | <ant |
| 124 | antfile="${builder}" |
| 125 | target="site" /> |
david_williams | 39c5f65 | 2008-01-02 07:08:39 +0000 | [diff] [blame] | 126 | <ant |
| 127 | antfile="${builder}" |
| 128 | target="upload" /> |
| 129 | </target> |
david_williams | 320c033 | 2008-01-05 05:55:44 +0000 | [diff] [blame] | 130 | |
| 131 | <!-- clean task --> |
david_williams | 39c5f65 | 2008-01-02 07:08:39 +0000 | [diff] [blame] | 132 | <target |
| 133 | name="clean" |
| 134 | depends="check.clean" |
| 135 | if="doClean"> |
| 136 | <delete |
david_williams | 320c033 | 2008-01-05 05:55:44 +0000 | [diff] [blame] | 137 | dir="${env.PROJECT_PROJECTS}/${projectname}" |
david_williams | 39c5f65 | 2008-01-02 07:08:39 +0000 | [diff] [blame] | 138 | failonerror="false" /> |
| 139 | <delete |
david_williams | 320c033 | 2008-01-05 05:55:44 +0000 | [diff] [blame] | 140 | dir="${env.PROJECT_TESTS}/${projectname}" |
| 141 | failonerror="false" /> |
david_williams | 8f7802c | 2008-01-05 09:09:47 +0000 | [diff] [blame] | 142 | <!-- deleting ant working will be complicated, since sometimes same as releng.control --> |
| 143 | <!-- |
david_williams | 320c033 | 2008-01-05 05:55:44 +0000 | [diff] [blame] | 144 | <delete |
| 145 | dir="${env.ANT_WORKING}" |
david_williams | 39c5f65 | 2008-01-02 07:08:39 +0000 | [diff] [blame] | 146 | failonerror="false" /> |
david_williams | 8f7802c | 2008-01-05 09:09:47 +0000 | [diff] [blame] | 147 | --> |
david_williams | 39c5f65 | 2008-01-02 07:08:39 +0000 | [diff] [blame] | 148 | </target> |
| 149 | |
david_williams | 1e71b28 | 2008-03-10 10:12:40 +0000 | [diff] [blame] | 150 | <!-- if build.clean is true, or does not exist, set doClean to true --> |
david_williams | 39c5f65 | 2008-01-02 07:08:39 +0000 | [diff] [blame] | 151 | <target |
| 152 | name="check.clean"> |
| 153 | <condition |
| 154 | property="doClean"> |
| 155 | <or> |
| 156 | <not> |
| 157 | <isset |
| 158 | property="build.clean" /> |
| 159 | </not> |
| 160 | <equals |
| 161 | arg1="${build.clean}" |
| 162 | arg2="true" /> |
| 163 | </or> |
| 164 | </condition> |
| 165 | </target> |
| 166 | </project> |