| <project default="run" name="org.eclipse.wst.xml.xpath2.releng/build.xml - Run a PsychoPath build using the Athena CBI"> |
| <!-- load properties and set timestamp for the build --> |
| <property environment="env"/> |
| <property name="WORKSPACE" location="${env.WORKSPACE}"/> |
| <property file="build.properties" /> |
| <tstamp> |
| <format property="buildTimestamp" pattern="yyyyMMddHHmm" /> |
| </tstamp> |
| <property name="forceContextQualifier" value="v${buildTimestamp}" /> |
| <property name="fetchTag" value="HEAD" /> |
| |
| <!-- calculate workspaceDir as parent of this folder, the project's .releng folder (relengBuilderDir) --> |
| <property name="relengBuilderDir" value="${basedir}" /> |
| <import file="findbugs.xml"/> |
| <import file="pmd.xml"/> |
| <dirname file="${relengBuilderDir}" property="workspaceDir" /> |
| |
| <!-- |
| can build in /tmp, eg., in /tmp/build, or in workspace, eg., |
| ${WORKSPACE}/build |
| --> |
| <property name="writableBuildRoot" value="/tmp/build" /> |
| <property name="sdkzipUrl" value="https://build.eclipse.org/hudson/job/cbi-wtp-inc.vex/ws/build/athena/"/> |
| |
| <!-- |
| can be simple path, eg., |
| ${writableBuildRoot}/${buildType}${buildTimestamp} or longer, eg., |
| ${writableBuildRoot}/${topprojectName}/${projectName}/downloads/drops/${version}/${buildType}${buildTimestamp} or |
| ${writableBuildRoot}/${topprojectName}/${projectName}/${subprojectName}/downloads/drops/${version}/${buildType}${buildTimestamp} |
| --> |
| <property name="buildDir" value="${writableBuildRoot}/athena" /> |
| |
| <target name="init"> |
| <delete dir="${buildDir}" failonerror="false"/> |
| </target> |
| |
| <target name="run" depends="init"> |
| <echo message="Workspace: ${WORKSPACE}"/> |
| <echo message="Writable Build Root: ${writableBuildRoot}"/> |
| <mkdir dir="${writableBuildRoot}"/> |
| <!-- invoke a new Eclipse process and launch the build from the common.releng folder --> |
| <property name="relengCommonBuilderDir" value="${workspaceDir}/org.eclipse.dash.common.releng" /> |
| <ant antfile="${relengCommonBuilderDir}/buildAll.xml" target="runEclipse" dir="${relengCommonBuilderDir}" /> |
| <antcall target="findbugs" inheritall="true"/> |
| <cleanUpBuild/> |
| <antcall target="duplicateCode" inheritall="true"/> |
| </target> |
| |
| <macrodef name="cleanUpBuild"> |
| <sequential> |
| <delete dir="${buildDir}/eclipse" failonerror="false" /> |
| <delete dir="${buildDir}/testing" failonerror="false" /> |
| <delete dir="${buildDir}/compilelogs" failonerror="false"/> |
| <delete dir="${buildDir}/testResults/consolelogs" failonerror="false"/> |
| <delete dir="${buildDir}/testResults/html" failonerror="false"/> |
| <delete dir="${writableBuildRoot}/athena/findbugs"/> |
| <delete dir="${writableBuildRoot}/athena/findbugsclasses"/> |
| <delete> |
| <fileset dir="${buildDir}"> |
| <include name="*AllFeatures*.zip*"/> |
| <include name="*Master*.zip*"/> |
| </fileset> |
| </delete> |
| </sequential> |
| </macrodef> |
| |
| |
| <!-- ================================= |
| target: default |
| ================================= --> |
| <target name="findbugs" description="Run a find bugs analysis based on a ZIP file contents."> |
| <patternset id="vex"> |
| <include name="eclipse/plugins/org.eclipse.wst.xml.vex.*.jar"/> |
| </patternset> |
| <getFindBugs downloadDir="${writableBuildRoot}/downloads" destDir="${writableBuildRoot}/3rdPartyJars/findbugs"/> |
| <extractJarsForAnalysis src="${sdkzipUrl}${zipPrefix}-SDK${incubation}-${buildType}${buildTimestamp}.zip" refid="vex"/> |
| <findBugs outputfile="${writableBuildRoot}/athena/fb-vex.xml"/> |
| </target> |
| |
| <target name="duplicateCode" description="Run PMD duplicate code analysis"> |
| <getPMD downloadDir="${writableBuildRoot}/downloads" destDir="${writableBuildRoot}/3rdPartyJars/pmd"/> |
| <cpd outputfile="${writableBuildRoot}/athena/cpd-vex.xml" srcdir="${WORKSPACE}"/> |
| </target> |
| </project> |