blob: 3247cc0f0a2958cfebbd550a33927668a809e005 [file] [log] [blame]
<project default="main" basedir=".">
<!--
Required inputs:
build.home
buildType
buildId
date
time
env.BASEOS
env.BASEWS
env.BASEARCH
buildType.tests [optional]
buildId.tests [optional]
date.tests [optional]
time.tests [optional]
build.stream [optional]
build.committers [optional]
releng.tag [optional]
perf.target [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 name="perf.buildId" value="${buildType}${date}-${time}"/>
<property name="timestamp" value="${date}${time}"/>
<property name="buildType.tests" value="${buildType}"/>
<property name="buildId.tests" value="${buildId}"/>
<property name="date.tests" value="${date}"/>
<property name="time.tests" value="${time}"/>
<property name="timestamp.tests" value="${date.tests}${time.tests}"/>
<property file="${build.home}/releng.wtpbuilder/build.properties"/>
<property name="local.cache.dir" value="${env.LOCAL_PREREQS_CACHE}"/>
<property name="workDir" value="${build.home}/workDir"/>
<property name="perfRoot" value="${build.home}/perfRoot"/>
<delete dir="${workDir}" failonerror="false"/>
<delete dir="${perfRoot}" failonerror="false"/>
<mkdir dir="${local.cache.dir}"/>
<mkdir dir="${workDir}"/>
<mkdir dir="${perfRoot}"/>
<antcall target="getReleng"/>
<property file="${perfRoot}/releng/maps/dependencies.properties"/>
<antcall target="getDependencies"/>
<condition property="wtp-sdk" value="wtp-sdk-${buildId}.zip" else="wtp-sdk-${buildType}-${buildId}-${timestamp}.zip">
<available file="${local.cache.dir}/wtp-sdk-${buildId}.zip"/>
</condition>
<condition property="wtp-wst-tests" value="wtp-wst-Automated-Tests-${buildId}.zip" else="wtp-wst-Automated-Tests-${buildType}-${buildId}-${timestamp}.zip">
<available file="${local.cache.dir}/wtp-wst-Automated-Tests-${buildId}.zip"/>
</condition>
<condition property="wtp-jst-tests" value="wtp-jst-Automated-Tests-${buildId}.zip" else="wtp-jst-Automated-Tests-${buildType}-${buildId}-${timestamp}.zip">
<available file="${local.cache.dir}/wtp-jst-Automated-Tests-${buildId}.zip"/>
</condition>
<antcall target="setup"/>
<antcall target="run"/>
</target>
<target name="getReleng">
<property name="releng.tag" value="v${buildType}${timestamp}"/>
<cvs
cvsRoot=":pserver:anonymous@dev.eclipse.org:/cvsroot/webtools"
package="releng"
dest="${perfRoot}"
command="export"
tag="${releng.tag}"
/>
</target>
<target name="getDependencies">
<property name="install.destination" value="${workDir}/"/>
<antcall target="getAndInstall">
<param name="groupId" value="eclipse" />
<param name="clean" value="true" />
</antcall>
</target>
<target name="setup">
<property file="${build.home}/releng.wtpbuilder/build.properties"/>
<property file="${perfRoot}/releng/maps/dependencies.properties"/>
<property name="install.destination" value="${perfRoot}"/>
<antcall target="getAndInstall">
<param name="groupId" value="eclipse" />
<param name="clean" value="true" />
</antcall>
<antcall target="getAndInstall">
<param name="groupId" value="eclipseTestFramework" />
<param name="clean" value="true" />
</antcall>
<antcall target="getAndInstall">
<param name="groupId" value="emf" />
<param name="clean" value="true" />
</antcall>
<antcall target="getAndInstall">
<param name="groupId" value="gef" />
<param name="clean" value="true" />
</antcall>
<condition property="jem">
<equals arg1="R1.5" arg2="${build.stream}"/>
</condition>
<antcall target="getAndInstallJEM"/>
<antcall target="getAndInstall">
<param name="groupId" value="tomcat.5" />
</antcall>
<antcall target="getAndInstall">
<param name="groupId" value="tomcat.4" />
</antcall>
<antcall target="getAndInstall">
<param name="groupId" value="jonas.4" />
</antcall>
<antcall target="getAndInstall">
<param name="groupId" value="oagis.release" />
</antcall>
<antcall target="getAndInstall">
<param name="groupId" value="oagis.wsdl" />
</antcall>
<antcall target="getAndInstall">
<param name="groupId" value="derby" />
</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>
<antcall target="getAndInstallWTP">
<param name="file" value="wtp-wst-Automated-Tests-${buildId.tests}.zip" />
</antcall>
<antcall target="getAndInstallWTP">
<param name="file" value="wtp-wst-Automated-Tests-${buildType.tests}-${buildId.tests}-${timestamp.tests}.zip" />
</antcall>
<antcall target="getAndInstallWTP">
<param name="file" value="wtp-jst-Automated-Tests-${buildId.tests}.zip" />
</antcall>
<antcall target="getAndInstallWTP">
<param name="file" value="wtp-jst-Automated-Tests-${buildType.tests}-${buildId.tests}-${timestamp.tests}.zip" />
</antcall>
<antcall target="setup.derby"/>
<copy file="${build.home}/releng.wtpbuilder/distribution/wtp.perf/performance-tests.xml" tofile="${perfRoot}/performance-tests.xml"></copy>
</target>
<target name="getAndInstallJEM" if="jem">
<antcall target="getAndInstall">
<param name="groupId" value="jem" />
<param name="clean" value="true" />
</antcall>
</target>
<target name="getAndInstall">
<property name="dependencyTargets" value="${build.home}/releng.wtpbuilder/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="getAndInstallWTP">
<available file="${local.cache.dir}/${file}" property="file.exists"/>
<antcall target="getWTP"/>
<available file="${local.cache.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}"/>
<get dest="${local.cache.dir}/${file}" src="${file.url}/${file}" ignoreerrors="true"/>
</target>
<target name="installWTP" if="file.exists">
<unzip src="${local.cache.dir}/${file}" dest="${install.destination}" overwrite="true"/>
</target>
<target name="setup.derby">
<property name="derby" value="${install.destination}/eclipse/plugins/org.apache.derby"/>
<mkdir dir="${derby}"/>
<copy todir="${derby}" overwrite="true">
<fileset dir="${perfRoot}/incubating-derby-10.0.2.1-bin/lib">
<include name="**/*.jar"/>
</fileset>
</copy>
<copy tofile="${derby}/plugin.xml" file="${build.home}/releng.wtpbuilder/distribution/wtp.perf/derby.plugin.xml.template" overwrite="true"/>
<replace dir="${perfRoot}/eclipse/plugins" value="&lt;import plugin=&quot;org.apache.derby&quot;/&gt;">
<include name="org.eclipse.test.performance_*/plugin.xml"/>
<replacetoken><![CDATA[<import plugin="org.apache.derby" optional="true"/>]]></replacetoken>
</replace>
</target>
<target name="run">
<property name="perf.target" value="main"/>
<mkdir dir="${perfRoot}/results/consolelogs"/>
<java jar="${workDir}/eclipse/startup.jar" fork="true" failonerror="true" timeout="28800000" output="${perfRoot}/results/consolelogs/wtpperflog.txt" dir="${workDir}">
<jvmarg value="-Dosgi.ws=${env.BASEWS}" />
<jvmarg value="-Dosgi.os=${env.BASEOS}" />
<jvmarg value="-Dosgi.arch=${env.BASEARCH}" /> <jvmarg value="-Dnoclean=true" />
<jvmarg value="-DbuildType=${buildType}" />
<jvmarg value="-DbuildId=${buildId}" />
<jvmarg value="-Dtimestamp=${timestamp}"/>
<jvmarg value="-DbuildType.tests=${buildType.tests}" />
<jvmarg value="-DbuildId.tests=${buildId.tests}" />
<jvmarg value="-Dtimestamp.tests=${timestamp.tests}"/>
<arg value="-propertyfile" />
<arg value="${build.home}/releng.wtpbuilder/distribution/wtp.perf/perf.properties" />
<arg value="-application" />
<arg value="org.eclipse.ant.core.antRunner" />
<arg value="-file" />
<arg value="${build.home}/releng.wtpbuilder/distribution/wtp.perf/perf.xml" />
<arg value="-logger" />
<arg value="org.apache.tools.ant.DefaultLogger" />
<arg value="${perf.target}" />
<sysproperty key="eclipse-home" value="${perfRoot}/eclipse"/>
<sysproperty key="perf.buildId" value="${perf.buildId}"/>
<sysproperty key="build.home" value="${build.home}" />
<sysproperty key="local.cache.dir" value="${local.cache.dir}"/>
<sysproperty key="perfRoot" value="${perfRoot}"/>
<sysproperty key="testDir" value="${perfRoot}" />
</java>
</target>
<target name="graph">
<property name="perf.buildId" value="${buildType}${date}-${time}"/>
<property name="perfRoot" value="${build.home}/perfRoot"/>
<cvs
cvsRoot=":pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse"
package="org.eclipse.releng.basebuilder"
dest="${perfRoot}"
command="export"
tag="M5_32"
/>
<property file="${build.home}/releng.wtpbuilder/distribution/wtp.perf/perf.properties"/>
<antcall target="setup.derby">
<param name="derby" value="${perfRoot}/org.eclipse.releng.basebuilder/plugins/org.apache.derby"/>
</antcall>
<mkdir dir="${perfRoot}/results/graph"/>
<java jar="${perfRoot}/org.eclipse.releng.basebuilder/startup.jar" fork="true" failonerror="true" timeout="3600000" dir="${perfRoot}">
<jvmarg value="-Dosgi.ws=${env.BASEWS}" />
<jvmarg value="-Dosgi.os=${env.BASEOS}" />
<jvmarg value="-Dosgi.arch=${env.BASEARCH}" />
<jvmarg value="-Declipse.perf.dbloc=${build.home}/${perf.dbloc}"/>
<arg value="-application" />
<arg value="org.eclipse.test.performance.ui.resultGenerator" />
<arg value="-baseline"/>
<arg value="${perf.ref.buildId}"/>
<arg value="-baseline.prefix"/>
<arg value="${perf.ref.config}"/>
<arg value="-current"/>
<arg value="${perf.buildId}"/>
<arg value="-current.prefix"/>
<arg value="${perf.config}"/>
<arg value="-jvm"/>
<arg value="${perf.jvm}"/>
<arg value="-config"/>
<arg value="${perf.config}"/>
<arg value="-output"/>
<arg value="${perfRoot}/results/graph"/>
</java>
<copy file="${build.home}/releng.wtpbuilder/distribution/wtp.perf/performance.php" tofile="${perfRoot}/results/graph/performance.php"/>
</target>
<target name="upload" if="login">
<mkdir dir="${build.home}/archives"/>
<zip destfile="${build.home}/archives/${buildType}-${buildId}-${date}${time}.zip" basedir="${build.home}/perfRoot/results"/>
<condition property="upload.path.1"
else="~/downloads/webtools/downloads"
value="~/downloads/webtools/committers">
<isset property="build.committers"/>
</condition>
<condition property="upload.path"
else="${upload.path.1}/drops/${buildType}-${buildId}-${date}${time}/perfresults"
value="${upload.path.1}/drops/${build.stream}/${buildType}-${buildId}-${date}${time}/perfresults">
<isset property="build.stream"/>
</condition>
<exec executable="ssh" dir="${build.home}">
<arg line="${login}@download1.eclipse.org rm -rf ${upload.path}"/>
</exec>
<exec executable="ssh" dir="${build.home}">
<arg line="${login}@download1.eclipse.org mkdir ${upload.path}"/>
</exec>
<exec executable="scp" dir="${build.home}">
<arg line="-r ./perfRoot/results/consolelogs ${login}@download1.eclipse.org:${upload.path}"/>
</exec>
<exec executable="scp" dir="${build.home}">
<arg line="-r ./perfRoot/results/html ${login}@download1.eclipse.org:${upload.path}"/>
</exec>
<exec executable="scp" dir="${build.home}">
<arg line="-r ./perfRoot/results/xml ${login}@download1.eclipse.org:${upload.path}"/>
</exec>
<exec executable="scp" dir="${build.home}">
<arg line="-r ./perfRoot/results/graph ${login}@download1.eclipse.org:${upload.path}"/>
</exec>
</target>
<target name="clean" if="clean">
<property file="${build.home}/releng.wtpbuilder/build.properties"/>
<property name="local.cache.dir" value="${env.LOCAL_PREREQS_CACHE}"/>
<property name="workDir" value="${build.home}/workDir"/>
<property name="perfRoot" value="${build.home}/perfRoot"/>
<delete dir="${workDir}" failonerror="false"/>
<delete dir="${perfRoot}" failonerror="false"/>
<delete failonerror="false">
<fileset dir="${local.cache.dir}" includes="wtp-*"/>
</delete>
</target>
</project>