1<project name="Build specific targets and properties" default="noDefault" basedir="."> 2 3<!-- ===================================================================== --> 4<!-- Run a given ${target} on all elements being built --> 5<!-- ===================================================================== --> 6<target name="allElements"> 7 8 <ant antfile="${genericTargets}" target="${target}" > 9 <property name="type" value="feature" /> 10 <property name="id" value="org.eclipse.ve.tests" /> 11 </ant> 12</target> 13 14<!-- ===================================================================== --> 15<!-- Targets to assemble the built elements for particular configurations --> 16<!-- These generally call the generated assemble scripts (named in --> 17<!-- ${assembleScriptName}) but may also add pre and post processing --> 18<!-- Add one target for each root element and each configuration --> 19<!-- ===================================================================== --> 20 21<target name="assemble.org.eclipse.ve.tests"> 22 <property name="archiveName" value="VE-junit-tests-${buildId}.zip"/> 23 <ant antfile="${assembleScriptName}"/> 24<!-- ADD POST STEPS --> 25</target> 26 27<!-- ===================================================================== --> 28<!-- Check out map files from correct repository --> 29<!-- Replace values for cvsRoot, package and mapVersionTag as desired. --> 30<!-- ===================================================================== --> 31<target name="checkLocal"> 32 <available property="mapsLocal" file="${buildDirectory}/maps/org.eclipse.ve.releng" /> 33</target> 34 35<target name="getMapFiles" depends="checkLocal" unless="mapsLocal"> 36 37 <!-- *** change the repo info --> 38 <property name="mapCvsRoot" value=":pserver:anonymous@dev.eclipse.org:/home/tools" /> 39 40 <property name="mapVersionTag" value="HEAD" /> 41 <cvs cvsRoot="${mapCvsRoot}" 42 package="org.eclipse.ve.releng" 43 dest="${buildDirectory}/maps" 44 tag="${mapVersionTag}" 45 /> 46 <!--tag the map files project--> 47 <antcall target="tagMapFiles" /> 48</target> 49 50<target name="tagMapFiles" if="tagMaps"> 51 <cvs dest="${buildDirectory}/maps/org.eclipse.ve.releng" command="tag v${timestamp}" /> 52</target> 53 54<!-- ===================================================================== --> 55<!-- Steps to do before setup --> 56<!-- ===================================================================== --> 57<target name="preSetup"> 58</target> 59 60<!-- ===================================================================== --> 61<!-- Steps to do after setup but before starting the build proper --> 62<!-- ===================================================================== --> 63<target name="postSetup"> 64</target> 65 66<!-- ===================================================================== --> 67<!-- Steps to do before fetching the build elements --> 68<!-- ===================================================================== --> 69<target name="preFetch"> 70</target> 71 72<!-- ===================================================================== --> 73<!-- Steps to do after the fetch --> 74<!-- ===================================================================== --> 75<target name="postFetch"> 76 <replace dir="${buildDirectory}/plugins" value="${buildId}" token="@buildid@"> 77 <include name="**/about.mappings" /> 78 </replace> 79</target> 80 81<!-- ===================================================================== --> 82<!-- Steps to do before generating build scripts --> 83<!-- ===================================================================== --> 84<target name="preGenerate"> 85 86</target> 87 88<!-- ===================================================================== --> 89<!-- Steps to do after generating the build scripts --> 90<!-- ===================================================================== --> 91<target name="postGenerate"> 92 <antcall target="clean" /> 93</target> 94 95<!-- ===================================================================== --> 96<!-- Steps to do before assembling --> 97<!-- ===================================================================== --> 98<target name="preAssemble"> 99 100</target> 101 102<!-- ===================================================================== --> 103<!-- Steps to do after assembling--> 104<!-- ===================================================================== --> 105<target name="postAssemble"> 106</target> 107 108 109<!-- ===================================================================== --> 110<!-- Steps to do before running the build.xmls for the elements being built. --> 111<!-- ===================================================================== --> 112<target name="preProcess"> 113 <replace dir="${buildDirectory}/plugins" value="${buildId}" token="@build@"> 114 <include name="**/about.mappings" /> 115 </replace> 116</target> 117 118<!-- ===================================================================== --> 119<!-- Steps to do after running the build.xmls for the elements being built. --> 120<!-- ===================================================================== --> 121<target name="postProcess"> 122 <condition property="logsAvailable"> 123 <istrue value="${javacVerbose}"/> 124 </condition> 125 <antcall target="gatherLogs" /> 126</target> 127 128<!-- ===================================================================== --> 129<!-- Steps to do after everything is built and assembled --> 130<!-- (e.g., testing, posting, emailing, ...) --> 131<!-- ===================================================================== --> 132<target name="postBuild"> 133 <antcall target="packageTestFramework" /> 134</target> 135 136<!-- ===================================================================== --> 137<!-- Helper targets --> 138<!-- ===================================================================== --> 139<target name="gatherLogs" if="logsAvailable"> 140 <mkdir dir="${buildDirectory}/${buildLabel}/compilelogs" /> 141 <antcall target="allElements"> 142 <param name="target" value="gatherLogs" /> 143 </antcall> 144 145 <unzip dest="${buildDirectory}/${buildLabel}/compilelogs" overwrite="true"> 146 <fileset dir="${buildDirectory}/features/org.eclipse.ve.tests"> 147 <include name="*.log.zip" /> 148 </fileset> 149 </unzip> 150</target> 151<target name="clean" unless="noclean"> 152 <antcall target="allElements"> 153 <param name="target" value="cleanElement" /> 154 </antcall> 155</target> 156 157<target name="packageTestFramework"> 158 <!--package automated test framework used in GEF builds--> 159 160 <property name="workingDirectory" value="${buildDirectory}/test.assembly" /> 161 162 <!--unzip the junit tests--> 163 <exec dir="${buildDirectory}/${buildLabel}" executable="unzip"> 164 <arg line="-o -qq VE*junit*.zip -d ${workingDirectory}" /> 165 </exec> 166 167 <!-- create top level testing directory--> 168 <delete dir="${workingDirectory}/ve-testing"/> 169 <mkdir dir="${workingDirectory}/ve-testing" /> 170 171 <!--compile the tool used to generate the test.properties file, then run it.--> 172 <!--test.properties maps test plugin id's to the name of the plugin directory--> 173 174 <!--eclipse.home is relative to the scripts directory in the org.eclipse.pde.build plugin. Assume the plugins used in the classpath are in the same directory as org.eclipse.pde.build--> 175 <property name="eclipse.home" value="../../.." /> 176 177 <property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter"/> 178 <javac verbose="true" failonerror="true" srcdir="${builderDirectory}/tools" destdir="${builderDirectory}/tools" classpath="${eclipse.home}/plugins/org.apache.xerces_4.0.13/xercesImpl.jar:${eclipse.home}/plugins/org.apache.xerces_4.0.13/xmlParserAPIs.jar"/> 179 180 <java classname="TestVersionTracker" > 181 <arg line="${workingDirectory}/eclipse/features/org.eclipse.ve.tests_0.5.0/feature.xml ${buildDirectory} ${workingDirectory}/ve-testing/test.properties" /> 182 <classpath> 183 <pathelement path="${eclipse.home}/plugins/org.apache.xerces_4.0.13/xercesImpl.jar:${eclipse.home}/plugins/org.apache.xerces_4.0.13/xmlParserAPIs.jar:${builderDirectory}/tools" /> 184 </classpath> 185 </java> 186 187 <!--load the property file created with the directory names for all test plugins--> 188 <property file="${workingDirectory}/ve-testing/test.properties" /> 189 190 <!-- Remove the plugin version number appended to the org.eclipse.test plugin directory. 191 This is so that contributors of test.xml's do not have to update their paths to 192 library.xml in org.eclipse.test whenever its version is updated. 193 --> 194 <move todir="${workingDirectory}/eclipse/plugins/org.eclipse.test"> 195 <fileset dir="${workingDirectory}/eclipse/plugins/${org.eclipse.test}" /> 196 </move> 197 198 <!--the Ant move task leaves behind an empty directory--> 199 <delete dir="${workingDirectory}/eclipse/plugins/${org.eclipse.test}" includeEmptyDirs="true" /> 200 201 <!-- rezip the JUnit plugin tests --> 202 <exec dir="${workingDirectory}" executable="zip"> 203 <arg line="-r -q VE-junit-tests-${buildId}.zip eclipse"/> 204 </exec> 205 206 <delete dir="${workingDirectory}/eclipse" includeEmptyDirs="true" /> 207 208 <!--Copy scripts and doc used in the automated testing to the testing directory--> 209 <copy todir="${workingDirectory}/ve-testing"> 210 <fileset dir="${buildDirectory}/plugins/org.eclipse.test" includes="testframework.html,JUNIT.XSL" /> 211 </copy> 212 <copy todir="${workingDirectory}/ve-testing"> 213 <fileset dir="${builderDirectory}/testScripts" /> 214 </copy> 215 <move file="${workingDirectory}/VE-junit-tests-${buildId}.zip" todir="${workingDirectory}/ve-testing"/> 216 217 <!--copy in the file containing the URL of the Eclipse build used for testing--> 218 <copy todir="${workingDirectory}/ve-testing" file="${buildDirectory}/maps/org.eclipse.ve.releng/maps/build.cfg" /> 219 220 <!--set execute permission on *nix shell script--> 221 <chmod file="${workingDirectory}/ve-testing/runtests" perm="755"/> 222 223 <!--create zip file of the automated testing framework--> 224 <exec dir="${workingDirectory}" executable="zip"> 225 <arg line="-r -q ${buildDirectory}/${buildLabel}/VE-Automated-Tests-${buildId}.zip ve-testing"/> 226 </exec> 227 228 <delete file="${buildDirectory}/${buildLabel}/VE-junit-tests-${buildId}.zip" /> 229</target> 230 231<!-- ===================================================================== --> 232<!-- Default target --> 233<!-- ===================================================================== --> 234<target name="noDefault"> 235 <echo message="You must specify a target when invoking this file" /> 236</target> 237 238</project>