blob: 34ac0680653df4354211546fd4cfbde44df4b70f [file] [log] [blame]
<project
default="main"
basedir=".">
<!--
Required inputs:
build.home
buildType
buildId
timestamp
env.BASEOS
env.BASEWS
env.BASEARCH
build.stream [optional]
build.committers [optional]
wtp.dir [optional]
-->
<!-- Note to be cross-platform, "environment variables" are only appropriate for
some variables, e.g. ones we set, since properties are case sensitive, even if
the environment variables on your operating system are not, e.g. it will
be ${env.Path} not ${env.PATH} on Windows -->
<property environment="env" />
<target name="main">
<property
file="${build.home}/${env.RELENG_BUILDER}/build.properties" />
<property
name="apiRoot"
value="${build.home}/adopterScanRoot" />
<delete
dir="${apiRoot}"
failonerror="false" />
<mkdir dir="${apiRoot}" />
<antcall target="getReleng" />
<property
file="${apiRoot}/${env.RELENG}/maps/dependencies.properties" />
<property
name="local.cache.dir"
value="${env.LOCAL_PREREQS_CACHE}" />
<property
name="wtp.dir"
value="${local.cache.dir}" />
<property
name="install.destination"
value="${apiRoot}" />
<antcall target="getDependencies" />
<condition
property="wtp-sdk"
value="wtp-sdk-${buildId}.zip"
else="wtp-sdk-${buildType}-${buildId}-${timestamp}.zip">
<available file="${wtp.dir}/wtp-sdk-${buildId}.zip" />
</condition>
<antcall target="run" />
<antcall target="upload" />
<antcall target="clean" />
</target>
<target name="getReleng">
<property
name="releng.tag"
value="v${buildType}${timestamp}" />
<cvs
cvsRoot=":pserver:anonymous@dev.eclipse.org:/cvsroot/webtools"
package="${env.RELENG}"
dest="${apiRoot}"
command="export"
tag="${releng.tag}"
quiet="${env.CVS_QUIET}"
reallyquiet="${env.CVS_REALLY_QUIET}" />
</target>
<target name="getDependencies">
<condition property="isLinux">
<equals
arg1="${baseos}"
arg2="linux" />
</condition>
<antcall target="getAndInstall">
<param
name="groupId"
value="eclipse" />
</antcall>
<antcall target="getAndInstall">
<param
name="groupId"
value="emf" />
</antcall>
<antcall target="getAndInstall">
<param
name="groupId"
value="gef" />
</antcall>
<antcall target="getAndInstall">
<param
name="groupId"
value="dtp" />
</antcall>
<!-- this appears to be pretty explict hard coding for windows machines.
I wonder why the usual "get dependencies" methods would not work?
-->
<antcall target="get">
<param
name="groupId"
value="eclipse" />
<param
name="baseos"
value="win32" />
<param
name="basews"
value="win32" />
<param
name="basearch"
value="x86" />
</antcall>
<antcall target="getAndInstallWTP">
<param
name="file"
value="wtp-sdk-${buildId}.zip" />
</antcall>
<antcall target="getAndInstallWTP">
<param
name="file"
value="wtp-sdk-${buildType}-${buildId}-${timestamp}.zip" />
</antcall>
<delete file="${local.cache.dir}/wtp-apiscanner.zip" />
<get
src="http://download.eclipse.org/webtools/downloads/wtp-apiscanner.zip"
dest="${local.cache.dir}/wtp-apiscanner.zip" />
<unzip
src="${local.cache.dir}/wtp-apiscanner.zip"
dest="${apiRoot}" />
<!-- get path to equinox jar inside ${eclipse.home} folder (copy/rename actual jar) -->
<copy
failonerror="false"
tofile="${apiRoot}/eclipse/startup.jar">
<fileset
dir="${apiRoot}/eclipse/plugins"
includes="**/org.eclipse.equinox.launcher_*.jar" />
</copy>
</target>
<target name="getAndInstall">
<property
name="dependencyTargets"
value="${build.home}/${env.RELENG_BUILDER}/scripts/dependency/build.xml" />
<ant
antfile="${dependencyTargets}"
target="checkDependency">
<property
name="groupId"
value="${groupId}" />
</ant>
<ant
antfile="${dependencyTargets}"
target="installDependency">
<property
name="groupId"
value="${groupId}" />
</ant>
</target>
<target name="get">
<property
name="dependencyTargets"
value="${build.home}/${env.RELENG_BUILDER}/scripts/dependency/build.xml" />
<ant
antfile="${dependencyTargets}"
target="checkDependency">
<property
name="groupId"
value="${groupId}" />
</ant>
</target>
<target name="getAndInstallWTP">
<available
file="${wtp.dir}/${file}"
property="file.exists" />
<antcall target="getWTP" />
<available
file="${wtp.dir}/${file}"
property="file.exists" />
<antcall target="installWTP" />
</target>
<target name="getWTP">
<condition
property="file.url.1"
value="http://download.eclipse.org/webtools/committers"
else="http://download.eclipse.org/webtools/downloads">
<isset property="build.committers" />
</condition>
<condition
property="file.url"
value="${file.url.1}/drops/${build.stream}/${buildType}-${buildId}-${timestamp}"
else="${file.url.1}/drops/${buildType}-${buildId}-${timestamp}">
<isset property="build.stream" />
</condition>
<antcall target="getWTP2" />
</target>
<target
name="getWTP2"
unless="file.exists">
<property
name="file.url"
value="http://download.eclipse.org/webtools/downloads/drops/${build.stream}/${buildType}-${buildId}-${timestamp}" />
<mkdir dir="${wtp.dir}" />
<get
dest="${wtp.dir}/${file}"
src="${file.url}/${file}"
ignoreerrors="true" />
</target>
<target
name="installWTP"
if="file.exists">
<unzip
src="${wtp.dir}/${file}"
dest="${install.destination}"
overwrite="true" />
</target>
<target name="run">
<cvs
cvsRoot=":pserver:anonymous@dev.eclipse.org:/cvsroot/webtools"
package="releng.wtptools/api/adopter_usages"
dest="${apiRoot}"
command="export"
tag="HEAD"
quiet="${env.CVS_QUIET}"
reallyquiet="${env.CVS_REALLY_QUIET}" />
<mkdir dir="${apiRoot}/adopters" />
<antcall target="runEclipseApp">
<param
name="application"
value="org.eclipse.wtp.releng.tools.component.core.APIRefCompatibilityScanner" />
<param
name="vmargs"
value="-Dsrc=${local.cache.dir}/${wtp-sdk},${local.cache.dir}/${eclipse.file.win32-win32-x86},${local.cache.dir}/${emf.file},${local.cache.dir}/${gef.file},${local.cache.dir}/${dtp.file} -Duse=${apiRoot}/releng.wtptools/api/adopter_usages -DoutputDir=${apiRoot}/adopters -Xmx512M" />
</antcall>
<copy
tofile="${apiRoot}/apiresults/api-ref-compatibility.html"
file="${apiRoot}/adopters/api-ref-compatibility.html" />
<copy
tofile="${apiRoot}/apiresults/api-ref-compatibility.xml"
file="${apiRoot}/adopters/api-ref-compatibility.xml" />
</target>
<target name="runEclipseApp">
<property
name="vmargs"
value="" />
<java
jar="${apiRoot}/eclipse/startup.jar"
fork="true"
failonerror="true"
timeout="3600000"
dir="${apiRoot}">
<jvmarg value="-Dosgi.ws=${env.BASEWS}" />
<jvmarg value="-Dosgi.os=${env.BASEOS}" />
<jvmarg value="-Dosgi.arch=${env.BASEARCH}" />
<jvmarg value="-Xmx512M" />
<jvmarg line="${vmargs}" />
<jvmarg value="-Djava.io.tmpdir=${env.RECOMMENDED_TMP_DIR}" />
<jvmarg
value="-Dprojectname=${projectname}" />
<arg value="-application" />
<arg value="${application}" />
</java>
</target>
<target
name="upload"
if="login">
<mkdir dir="${build.home}/archives" />
<zip
destfile="${build.home}/archives/${buildType}-${buildId}-${timestamp}.zip"
basedir="${apiRoot}/apiresults" />
<condition
property="upload.path.1"
else="${login}@build.eclipse.org:~/downloads/webtools/downloads"
value="${login}@build.eclipse.org:~/downloads/webtools/committers">
<isset property="build.committers" />
</condition>
<condition
property="upload.path"
else="${upload.path.1}/drops/${buildType}-${buildId}-${timestamp}"
value="${upload.path.1}/drops/${build.stream}/${buildType}-${buildId}-${timestamp}">
<isset property="build.stream" />
</condition>
<exec
executable="scp"
dir="${build.home}">
<arg line="-r ./adopterScanRoot/apiresults ${upload.path}" />
</exec>
</target>
<target
name="clean"
if="clean">
<delete failonerror="false">
<fileset
dir="${env.LOCAL_PREREQS_CACHE}"
includes="wtp-*" />
</delete>
</target>
</project>