blob: 8a61290f27dc5fc67ad55b24f53f28b3403721f3 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<project name="mylyn" default="all" basedir=".">
<property file="${build.config}" />
<property file="local.properties" />
<import file="scripts/osHelper.xml" />
<property file="defaults.properties" />
<property file="scripts/defaults-all.properties" />
<import file="scripts/buildHelper.xml" />
<target name="all" depends="clean,build,standalone-tests,tests,performance-tests">
</target>
<target name="build" depends="init-build,init">
<antcall target="for-each-target">
<param name="call" value="mylyn-build-helper"/>
</antcall>
</target>
<target name="mylyn-build-helper">
<condition property="versionPostfix" value="e33" else="e3x"><equals arg1="${build.target}" arg2="3.3"/></condition>
<antcall target="build-helper">
<param name="build.extraBuildArgs" value="-DmylynQualifier=${qualifier}"/>
<param name="build.forceContextQualifier" value="${qualifier}-${versionPostfix}"/>
</antcall>
</target>
<target name="standalone-tests" depends="init-tests">
<antcall target="for-each-target">
<param name="call" value="standalone-tests-helper"/>
</antcall>
</target>
<target name="standalone-tests-helper">
<property name="install.dir" value="${build.home}/standalone-tests" />
<delete dir="${install.dir}"/>
<antcall target="install-tests-helper"/>
<property name="timeout" value="3600000" />
<property name="eclipse.home" value="${eclipse.base}/test-${eclipse.sdk.version}/eclipse" />
<property name="vmargs" value=" -Xms40m -Xmx256m"/>
<property name="log" value="${build.results}/test-standalone-${build.target}.log" />
<path id="tests.classpath">
<fileset dir="${install.dir}">
<include name="plugins/**/*.jar"/>
<exclude name="plugins/**/ui*.jar"/>
</fileset>
<dirset dir="${install.dir}/plugins">
<include name="*"/>
<exclude name="*ui*"/>
</dirset>
<fileset dir="${eclipse.home}/plugins">
<include name="org.junit_*/junit.jar"/>
<include name="org.eclipse.core.jobs_*.jar"/>
<include name="org.eclipse.core.net_*.jar"/>
<include name="org.eclipse.core.runtime_*.jar"/>
<include name="org.eclipse.equinox.common_*.jar"/>
<include name="org.eclipse.osgi_*.jar"/>
<!--
<include name="*.jar"/>
-->
</fileset>
</path>
<property name="output.dir" value="${build.results}/test-${build.target}"/>
<mkdir dir="${output.dir}"/>
<echo message="Testing standalone ${version}.${qualifier} on Eclipse ${eclipse.sdk.version}" />
<junit printsummary="yes" haltonfailure="no"
failureproperty="junit_test_failed" fork="true" forkmode="once" maxmemory="256m">
<classpath>
<path refid="tests.classpath"/>
</classpath>
<sysproperty key="mylyn.credentials" value="${build.credentials}"/>
<formatter type="xml" />
<test todir="${output.dir}" name="org.eclipse.mylyn.tests.AllHeadlessStandaloneTests"/>
</junit>
</target>
<target name="pack" depends="init">
<antcall target="for-each-target">
<param name="call" value="pack-sites"/>
</antcall>
</target>
<target name="pack-sites" depends="init">
<antcall target="pack-helper">
<param name="dir" value="${build.home}/${build.target}/standardUpdateSite"/>
</antcall>
<antcall target="pack-helper">
<param name="dir" value="${build.home}/${build.target}/extrasUpdateSite"/>
</antcall>
<antcall target="pack-helper">
<param name="dir" value="${build.home}/${build.target}/incubatorUpdateSite"/>
</antcall>
</target>
<target name="generate-metadata" depends="init">
<antcall target="for-each-target">
<param name="call" value="generate-metadata-sites"/>
</antcall>
</target>
<target name="generate-metadata-sites" depends="init">
<condition property="label" value="3.3" else="3.4 and 3.5"><equals arg1="${build.target}" arg2="3.3"/></condition>
<antcall target="generate-metadata-helper">
<param name="dir" value="${build.home}/${build.target}/standardUpdateSite"/>
<param name="name" value="Mylyn Weekly for Eclipse ${label}"/>
</antcall>
<antcall target="generate-metadata-helper">
<param name="dir" value="${build.home}/${build.target}/extrasUpdateSite"/>
<param name="name" value="Mylyn Weekly Extras"/>
</antcall>
<antcall target="generate-metadata-helper">
<param name="dir" value="${build.home}/${build.target}/incubatorUpdateSite"/>
<param name="name" value="Mylyn Weekly Incubator"/>
</antcall>
</target>
<target name="publish" depends="init">
<antcall target="for-each-target">
<param name="call" value="publish-helper"/>
<param name="skip3.3" value="true"/>
<param name="skip3.5" value="true"/>
</antcall>
<antcall target="for-each-target">
<param name="call" value="publish-helper-standalone"/>
</antcall>
</target>
<target name="publish-helper">
<antcall target="publish-helper-run">
<param name="file" value="org.eclipse.mylyn.tests.AllTests.xml"/>
<param name="tag" value="[e${build.target}]"/>
</antcall>
<antcall target="publish-helper-run">
<param name="file" value="org.eclipse.mylyn.tests.AllPerformanceTests.xml"/>
<param name="tag" value="[e${build.target}-perf]"/>
</antcall>
</target>
<target name="publish-helper-standalone">
<antcall target="publish-helper-run">
<param name="file" value="TEST-*.xml"/>
<param name="tag" value="[stdl]"/>
</antcall>
</target>
<target name="publish-helper-run">
<path id="file.id">
<fileset dir="${build.results}">
<include name="test-${build.target}/${file}"/>
</fileset>
</path>
<property name="file.path" refid="file.id"/>
<condition property="file.available"><not><equals arg1="${file.path}" arg2="" trim="true"/></not></condition>
<antcall target="publish-helper-report"/>
</target>
<target name="publish-helper-report" if="file.available">
<java jar="${build.reporter.jar}" failonerror="false" fork="true" jvm="${build.reporter.jvm}">
<arg value="-config" />
<arg value="${build.reporter.config}" />
<arg value="-build" />
<arg value="${qualifier}"/>
<arg value="-tag"/>
<arg value="${tag}"/>
<arg value="${file.path}" />
</java>
</target>
<target name="dist" depends="init,pack,generate-metadata,copy-to-archive">
</target>
<target name="copy-to-archive">
<property name="dist.dir" value="${dist.home}/update-archive/${version}/${qualifier}" />
<copy todir="${dist.dir}/e3.3">
<fileset dir="${build.home}/3.3/standardUpdateSite"/>
</copy>
<copy todir="${dist.dir}/e3.4">
<!-- need to use discovery plug-ins from the 3.5 site -->
<fileset dir="${build.home}/3.5/standardUpdateSite"/>
</copy>
<copy todir="${dist.dir}/extras">
<fileset dir="${build.home}/3.4/extrasUpdateSite"/>
</copy>
<copy todir="${dist.dir}/incubator">
<fileset dir="${build.home}/3.4/incubatorUpdateSite"/>
</copy>
<copy tofile="${dist.dir}/mylyn-${version}.${qualifier}-e3.3.zip" file="${build.home}/3.3/mylyn-${version}.${qualifier}-e33-standard.zip" />
<!-- need to use discovery plug-ins from the 3.5 site -->
<copy tofile="${dist.dir}/mylyn-${version}.${qualifier}-e3.4.zip" file="${build.home}/3.5/mylyn-${version}.${qualifier}-e3x-standard.zip" />
<copy tofile="${dist.dir}/mylyn-${version}.${qualifier}-extras.zip" file="${build.home}/3.4/mylyn-${version}.${qualifier}-e3x-extras.zip" />
<copy tofile="${dist.dir}/mylyn-${version}.${qualifier}-incubator.zip" file="${build.home}/3.4/mylyn-${version}.${qualifier}-e3x-incubator.zip" />
<copy tofile="${dist.dir}/mylyn-wikitext-standalone-${version}.${qualifier}.zip" file="${build.home}/3.4/mylyn-wikitext-standalone-${version}.${qualifier}.zip" />
<antcall target="fix-permissions">
<param name="dir" value="${dist.dir}"/>
</antcall>
</target>
<target name="weekly" depends="clean,build,dist">
<antcall target="promote">
<param name="todir" value="weekly"/>
</antcall>
</target>
<target name="dev" depends="clean,build,dist">
<antcall target="promote">
<param name="todir" value="dev"/>
</antcall>
</target>
<target name="sign" depends="init,init-scripts">
<exec executable="bin/sign-update-site.sh" failonerror="true">
<arg value="${version}"/>
<arg value="${qualifier}"/>
</exec>
</target>
<target name="galileo" depends="clean,build,generate-metadata,copy-to-archive">
<!-- promote unpacked version early for testing -->
<antcall target="promote">
<param name="todir" value="weekly"/>
</antcall>
<antcall target="sign"/>
<!-- re-promote signed and packed version -->
<antcall target="promote">
<param name="todir" value="weekly"/>
</antcall>
<echo>Run 'ant promote-galileo' to update the galileo site.</echo>
<echo>Ensure that the mylyn.build file is updated at the same time.</echo>
<!--
<antcall target="promote-main">
<param name="todir" value="galileo"/>
</antcall>
-->
</target>
<target name="promote-galileo">
<antcall target="promote-main">
<param name="todir" value="galileo"/>
</antcall>
</target>
<target name="promote" depends="init">
<fail message="Required property 'todir' not set" unless="todir"/>
<property name="dist.dir" value="${dist.home}/update-archive/${version}/${qualifier}" />
<property name="target.dir" value="${dist.home}/update/${todir}" />
<delete dir="${target.dir}.old" />
<move file="${target.dir}" todir="${target.dir}.old" failonerror="false"/>
<copy todir="${target.dir}">
<fileset dir="${dist.dir}"/>
</copy>
<!-- not supported on build.eclipse.org
<move todir="${target.dir}">
<fileset dir="${target.dir}">
<include name="*.zip"/>
</fileset>
<mapper type="regexp" from="(.*)${version}.${qualifier}(.*)" to="\1latest\2"/>
</move>
-->
<move tofile="${target.dir}/mylyn-latest-e3.3.zip" file="${target.dir}/mylyn-${version}.${qualifier}-e3.3.zip" />
<move tofile="${target.dir}/mylyn-latest-e3.4.zip" file="${target.dir}/mylyn-${version}.${qualifier}-e3.4.zip" />
<move tofile="${target.dir}/mylyn-latest-extras.zip" file="${target.dir}/mylyn-${version}.${qualifier}-extras.zip" />
<move tofile="${target.dir}/mylyn-latest-incubator.zip" file="${target.dir}/mylyn-${version}.${qualifier}-incubator.zip" />
<move tofile="${target.dir}/mylyn-wikitext-standalone-latest.zip" file="${target.dir}/mylyn-wikitext-standalone-${version}.${qualifier}.zip" />
<antcall target="fix-permissions">
<param name="dir" value="${target.dir}"/>
</antcall>
</target>
<target name="promote-main" depends="init">
<fail message="Required property 'todir' not set" unless="todir"/>
<property name="dist.dir" value="${dist.home}/update-archive/${version}/${qualifier}" />
<property name="target.dir" value="${dist.home}/update/${todir}" />
<copy todir="${target.dir}">
<fileset dir="${dist.dir}">
<include name="mylyn-${version}.${qualifier}-e3.4.zip"/>
</fileset>
<fileset dir="${dist.dir}/e3.4"/>
</copy>
<antcall target="fix-permissions">
<param name="dir" value="${target.dir}"/>
</antcall>
</target>
<target name="update-versions">
<loadfile property="version.mylyn" srcFile="../org.eclipse.mylyn/META-INF/MANIFEST.MF">
<filterchain>
<linecontains>
<contains value="Bundle-Version: "/>
</linecontains>
<striplinebreaks/>
<tokenfilter>
<filetokenizer/>
<replaceregex pattern="Bundle-Version: ([0-9.]*).qualifier"
flags="s"
replace="\1"/>
</tokenfilter>
</filterchain>
</loadfile>
<loadfile property="version.wikitext" srcFile="../org.eclipse.mylyn.wikitext.core/META-INF/MANIFEST.MF">
<filterchain>
<linecontains>
<contains value="Bundle-Version: "/>
</linecontains>
<striplinebreaks/>
<tokenfilter>
<filetokenizer/>
<replaceregex pattern="Bundle-Version: ([0-9.]*).qualifier"
flags="s"
replace="\1"/>
</tokenfilter>
</filterchain>
</loadfile>
<echo message="Current Mylyn version: ${version.mylyn}"></echo>
<echo message="Current WikiText version: ${version.wikitext}"></echo>
<fail message="Use -DnewVersion=x.y.z to set new version." unless="newVersion"/>
<fail message="Use -DnewWikiTextVersion=x.y.z to set new WikiText version." unless="newWikiTextVersion"/>
<echo message="New Mylyn version: ${newVersion}"></echo>
<echo message="New WikiText version: ${newWikiTextVersion}"></echo>
<replace dir="..">
<replacefilter
token="${version.mylyn}.qualifier"
value="${newVersion}.qualifier"/>
<replacefilter
token="${version.mylyn}.mylynQualifier"
value="${newVersion}.mylynQualifier"/>
<include name="org.eclipse.mylyn*/**/MANIFEST.MF"/>
<include name="org.eclipse.mylyn*/**/feature.xml"/>
</replace>
<replace dir="..">
<replacefilter
token="${version.wikitext}.qualifier"
value="${newWikiTextVersion}.qualifier"/>
<include name="org.eclipse.mylyn.wikitext*/**/MANIFEST.MF"/>
<include name="org.eclipse.mylyn.wikitext*/**/feature.xml"/>
</replace>
</target>
<target name="pre-build">
<delete>
<fileset dir="${build.home}/${build.target}/maps" includes="mylyn*.map">
<exclude name="*${build.target}.map"/>
</fileset>
</delete>
</target>
<target name="pre-tests">
<delete failonerror="false" includeemptydirs="true">
<fileset dir="${eclipse.home}">
<include name="features/org.eclipse.mylyn*/**"/>
<include name="plugins/org.eclipse.mylyn*/**"/>
</fileset>
</delete>
<!--
<exec executable="${build.test.x.command}" spawn="true" failifexecutionfails="false" failonerror="false">
<arg value="${build.test.x.display}"/>
</exec>
-->
</target>
<target name="post-report">
<junitreport todir="${results.home}" >
<fileset dir="${results.home}">
<include name="TEST-*.xml" />
</fileset>
<report format="noframes" todir="${results.home}"/>
</junitreport>
<move file="${results.home}/junit-noframes.html" tofile="${results.home}/standalone-tests.html"/>
</target>
<target name="discovery">
<cvs cvsRoot=":pserver:anonymous@dev.eclipse.org:/cvsroot/tools"
package="org.eclipse.mylyn/org.eclipse.mylyn.discovery-directory"
dest="${build.home}" />
<property name="discovery.dir" value="${build.home}/org.eclipse.mylyn/org.eclipse.mylyn.discovery-directory"/>
<extract-version property="discovery.version" file="${discovery.dir}/META-INF/MANIFEST.MF"/>
<echo>Detected discovery directory ${discovery.version}</echo>
<property name="discovery.jar" value="${dist.home}/discovery/org.eclipse.mylyn.discovery_${discovery.version}.jar"/>
<available property="discovery.exists" file="${discovery.jar}"/>
<antcall target="discovery-update"/>
<copy file="${discovery.jar}" tofile="${dist.home}/discovery/org.eclipse.mylyn.discovery.jar"/>
</target>
<target name="discovery-update" unless="discovery.exists">
<jar destfile="${discovery.jar}">
<fileset dir="${discovery.dir}"/>
</jar>
</target>
</project>