| <?xml version="1.0"?> |
| <!-- |
| Copyright (c) 2011-2016 Eike Stepper (Berlin, Germany) and others. |
| All rights reserved. This program and the accompanying materials |
| are made available under the terms of the Eclipse Public License v1.0 |
| which accompanies this distribution, and is available at |
| http://www.eclipse.org/legal/epl-v10.html |
| |
| Contributors: |
| Eike Stepper - initial API and implementation |
| --> |
| <project name="CDO" default="all"> |
| |
| <property file="local.properties" /> |
| <property file="build.properties" /> |
| <property environment="env" /> |
| |
| <taskdef resource="net/sf/antcontrib/antlib.xml"> |
| <classpath> |
| <pathelement location="${ant.contrib}" /> |
| </classpath> |
| </taskdef> |
| |
| <!-- ========= --> |
| <!-- Clean Dir --> |
| <!-- ========= --> |
| |
| <macrodef name="cleandir"> |
| <attribute name="dir" /> |
| <attribute name="mkdir" default="true" /> |
| <sequential> |
| <delete includeemptydirs="true" failonerror="false" verbose="false"> |
| <fileset dir="@{dir}" defaultexcludes="false"> |
| <include name="**" /> |
| </fileset> |
| </delete> |
| <if> |
| <equals arg1="@{mkdir}" arg2="true" /> |
| <then> |
| <mkdir dir="@{dir}" /> |
| </then> |
| </if> |
| </sequential> |
| </macrodef> |
| |
| <!-- ======= --> |
| <!-- Eclipse --> |
| <!-- ======= --> |
| |
| <macrodef name="eclipse"> |
| <attribute name="app" /> |
| <element name="properties" optional="true" /> |
| <element name="args" optional="true" /> |
| <sequential> |
| <!-- Find launcher --> |
| <property name="@{app}.deploy.dir" value="${tools}/@{app}" /> |
| <pathconvert property="@{app}.launcher"> |
| <first count="1"> |
| <sort> |
| <fileset dir="${@{app}.deploy.dir}/plugins" includes="**/org.eclipse.equinox.launcher_*.jar" /> |
| <reverse xmlns="antlib:org.apache.tools.ant.types.resources.comparators"> |
| <date /> |
| </reverse> |
| </sort> |
| </first> |
| </pathconvert> |
| |
| <!-- Run launcher --> |
| <java fork="true" jar="${@{app}.launcher}" dir="${@{app}.deploy.dir}" failonerror="true"> |
| <env key="no_proxy" value="${no.proxy}" /> |
| <properties /> |
| <args /> |
| </java> |
| </sequential> |
| </macrodef> |
| |
| <!-- =========== --> |
| <!-- Buckminster --> |
| <!-- =========== --> |
| |
| <macrodef name="buckminster"> |
| <attribute name="command" /> |
| <attribute name="workspace" default="${ws}" /> |
| <element name="sysproperties" optional="true" /> |
| <element name="globargs" optional="true" /> |
| <element name="cmdargs" optional="true" /> |
| <sequential> |
| <!-- Create buckminster.properties --> |
| <property name="buckminster.properties" location="${result}/buckminster.properties" /> |
| <echoproperties destfile="${buckminster.properties}"> |
| <propertyset negate="true"> |
| <propertyref name="basedir" /> |
| <propertyref name="eclipse.home" /> |
| <propertyref name="buckminster.properties" /> |
| <propertyref name="line.separator" /> |
| <propertyref name="path.separator" /> |
| <propertyref prefix="ant." /> |
| <propertyref prefix="file." /> |
| <propertyref prefix="java." /> |
| <propertyref prefix="sun." /> |
| <propertyref prefix="user." /> |
| </propertyset> |
| </echoproperties> |
| |
| <!-- Launch Buckminster --> |
| <eclipse app="buckminster"> |
| <properties> |
| <sysproperties /> |
| </properties> |
| <args> |
| <jvmarg value="-XX:MaxPermSize=256M" /> |
| <jvmarg value="-Xmx4g" /> |
| <jvmarg value="-Dsite.pack200=false" /> |
| <jvmarg value="-Dsite.retain.unpacked=true" /> |
| <jvmarg value="-Dorg.eclipse.update.jarprocessor.pack200=/shared/common/jdk1.6.0-latest/bin" /> |
| <jvmarg value="-Declipse.p2.MD5Check=false" /> |
| <jvmarg value="-Declipse.p2.mirrors=${p2.mirrors}" /> |
| <jvmarg value="-Declipse.p2.unsignedPolicy=allow" /> |
| <jvmarg value="-Dgit.clone=${git.clone}" /> |
| <arg value="-data" /> |
| <arg value="@{workspace}" /> |
| <arg value="--loglevel" /> |
| <arg value="${loglevel}" /> |
| <arg value="--displaystacktrace" /> |
| <globargs /> |
| <arg value="@{command}" /> |
| <arg value="-P" /> |
| <arg value="${buckminster.properties}" /> |
| <cmdargs /> |
| </args> |
| </eclipse> |
| </sequential> |
| </macrodef> |
| |
| <!-- ======================= --> |
| <!-- Replace Product Version --> |
| <!-- ======================= --> |
| |
| <macrodef name="replace.product.version"> |
| <attribute name="feature" /> |
| <attribute name="profile" /> |
| <attribute name="version" /> |
| <sequential> |
| <replace file="${features}/@{feature}-feature/@{profile}.product" token=".qualifier" value=".@{version}" /> |
| </sequential> |
| </macrodef> |
| |
| <!-- ============= --> |
| <!-- Generate Site --> |
| <!-- ============= --> |
| |
| <macrodef name="generate.site"> |
| <attribute name="feature" /> |
| <attribute name="todir" default="${build.root}" /> |
| <sequential> |
| <echo message="Generating site" /> |
| |
| <!-- Clean --> |
| <delete includeemptydirs="true" failonerror="false"> |
| <fileset dir="@{todir}" defaultexcludes="false"> |
| <include name="binary/**" /> |
| <include name="features/**" /> |
| <include name="plugins/**" /> |
| <include name="artifacts.jar" /> |
| <include name="content.jar" /> |
| </fileset> |
| </delete> |
| |
| <!-- Prepare Buckminster --> |
| <cleandir dir="${buckminster.output.root}" /> |
| <cleandir dir="${buckminster.temp.root}" /> |
| |
| <!-- Perform Buckminster --> |
| <buckminster command="perform"> |
| <cmdargs> |
| <arg value="@{feature}#site.p2" /> |
| </cmdargs> |
| </buckminster> |
| <cleandir dir="${buckminster.temp.root}" mkdir="false" /> |
| |
| <!-- Determine site.p2 directory --> |
| <pathconvert property="@{feature}.dir"> |
| <dirset dir="${buckminster.output.root}"> |
| <filename name="@{feature}_*-eclipse.feature/site.p2" /> |
| </dirset> |
| </pathconvert> |
| |
| <!-- Move site.p2 contents --> |
| <copy todir="@{todir}" overwrite="true" includeemptydirs="true" preservelastmodified="true" failonerror="true"> |
| <fileset dir="${@{feature}.dir}"> |
| <include name="**" /> |
| </fileset> |
| </copy> |
| </sequential> |
| </macrodef> |
| |
| <!-- ============= --> |
| <!-- Generate Help --> |
| <!-- ============= --> |
| |
| <macrodef name="generate.help"> |
| <sequential> |
| <echo message="" /> |
| <echo message="Generating help center" /> |
| <cleandir dir="${build.root}/help" mkdir="true" /> |
| <copy todir="${build.root}/help"> |
| <fileset dir="${releng.help}/html"> |
| <include name="**" /> |
| </fileset> |
| <fileset dir="${releng.help}"> |
| <include name="docs.txt" /> |
| </fileset> |
| </copy> |
| </sequential> |
| </macrodef> |
| |
| <!-- ============== --> |
| <!-- Generate Index --> |
| <!-- ============== --> |
| |
| <macrodef name="generate.index"> |
| <sequential> |
| <echo message="" /> |
| <echo message="Generating repository index" /> |
| <unzip src="${build.root}/content.jar" dest="${build.root}" /> |
| <property name="content.xml" location="${build.root}/content.xml" /> |
| <xslt style="xsl/content2html.xsl" in="${content.xml}" out="${build.root}/index.html" /> |
| <xslt style="xsl/content2xml.xsl" in="${content.xml}" out="${build.root}/index.xml" /> |
| <delete file="${content.xml}" /> |
| </sequential> |
| </macrodef> |
| |
| <!-- =================== --> |
| <!-- Generate Booksmarks --> |
| <!-- =================== --> |
| |
| <macrodef name="generate.bookmarks"> |
| <sequential> |
| <echo message="" /> |
| <echo message="Generating dependency bookmarks" /> |
| <property name="bookmarks.tmp" location="${build.root}/bookmarks.tmp" /> |
| <xslt style="xsl/bom2bookmarks.xsl" in="${build.root}/bom.xml" out="${bookmarks.tmp}" /> |
| <replace file="${bookmarks.tmp}" token="http://dev.eclipse.org" value="file://to-be-removed" /> |
| <replace file="${bookmarks.tmp}" token="file:/home/data/httpd/" value="http://" /> |
| <property name="bookmarks.xml" location="${build.root}/bookmarks.xml" /> |
| <concat destfile="${bookmarks.xml}"> |
| <header filtering="false"><?xml version="1.0" encoding="UTF-8"?> |
| <bookmarks> |
| </header> |
| <union> |
| <sort> |
| <tokens> |
| <file file="${bookmarks.tmp}" /> |
| <linetokenizer includedelims="true" /> |
| </tokens> |
| </sort> |
| </union> |
| <filterchain> |
| <linecontains> |
| <contains value="http://" /> |
| </linecontains> |
| </filterchain> |
| <footer filtering="false"></bookmarks> |
| </footer> |
| </concat> |
| <delete file="${bookmarks.tmp}" /> |
| </sequential> |
| </macrodef> |
| |
| <!-- ================ --> |
| <!-- Generate Dropins --> |
| <!-- ================ --> |
| |
| <macrodef name="generate.dropins"> |
| <sequential> |
| <echo message="" /> |
| <echo message="Generating dropin archives" /> |
| <property name="temp.dropins" location="${result}/temp.dropins" /> |
| <cleandir dir="${temp.dropins}" /> |
| |
| <copy todir="${temp.dropins}" failonerror="true"> |
| <fileset dir="${features}/org.eclipse.emf.cdo.server.product-feature/rootfiles"> |
| <include name="epl-v10.html" /> |
| <include name="notice.html" /> |
| </fileset> |
| </copy> |
| |
| <copy todir="${temp.dropins}/features" flatten="true"> |
| <fileset dir="${buckminster.output.root}"> |
| <include name="*-eclipse.feature/jar/*" /> |
| <include name="*-eclipse.feature/source.jar/*" /> |
| <exclude name="org.eclipse.emf.cdo.site*/**/*" /> |
| <exclude name="org.eclipse.emf.cdo.epp*/**/*" /> |
| <exclude name="org.eclipse.emf.cdo.license*/**/*" /> |
| </fileset> |
| </copy> |
| |
| <copy todir="${temp.dropins}/plugins" flatten="true"> |
| <fileset dir="${buckminster.output.root}"> |
| <include name="*-osgi.bundle/jar/*" /> |
| <include name="*-osgi.bundle/source.jar/*" /> |
| </fileset> |
| </copy> |
| |
| <mkdir dir="${zips}" /> |
| <zip destfile="${zips}/emf-cdo-${build.qualifier}-Dropins.zip"> |
| <fileset dir="${temp.dropins}"> |
| <include name="**/*" /> |
| </fileset> |
| </zip> |
| <echo message=" for use with a <a href="http://help.eclipse.org/indigo/index.jsp?topic=/org.eclipse.platform.doc.isv/reference/misc/p2_dropins_format.html">dropins</a> folder." |
| file="${zips}/emf-cdo-${build.qualifier}-Dropins.properties" /> |
| </sequential> |
| </macrodef> |
| |
| <!-- ============ --> |
| <!-- Generate API --> |
| <!-- ============ --> |
| |
| <macrodef name="generate.apireports"> |
| <sequential> |
| <echo message="" /> |
| <echo message="Generating API reports" /> |
| <buckminster command="perform"> |
| <cmdargs> |
| <arg value="-D" /> |
| <arg value="api.report=${build.root}/api.xml" /> |
| <arg value="org.eclipse.emf.cdo.releng#generate.apireports" /> |
| </cmdargs> |
| </buckminster> |
| <echo message="Converting to HTML" /> |
| <java classname="org.eclipse.emf.cdo.releng.Api2Html"> |
| <classpath> |
| <pathelement location="${releng}/bin/" /> |
| <pathelement location="/opt/public/common/apache-ant-1.7.1/lib/xercesImpl.jar" /> |
| </classpath> |
| <arg value="${build.root}" /> |
| <arg value="${build.qualifier}" /> |
| <arg value="${plugins}" /> |
| <arg value="${tp}/plugins" /> |
| </java> |
| <copy file="${releng}/hudson/api.css" todir="${build.root}" overwrite="true" /> |
| </sequential> |
| </macrodef> |
| |
| <!-- ==================== --> |
| <!-- Check Commit Message --> |
| <!-- ==================== --> |
| |
| <target name="check.commit.msg" if="GERRIT_CHANGE_SUBJECT"> |
| <condition property="commit.msg.ok" value="true"> |
| <matches pattern="^\[[1-9][0-9]*\] .*$" string="${GERRIT_CHANGE_SUBJECT}"/> |
| </condition> |
| <fail message="The commit message is not of the form '[bug-id] bug-subject'." unless="commit.msg.ok"/> |
| </target> |
| |
| <!-- =========== --> |
| <!-- Init Hudson --> |
| <!-- =========== --> |
| |
| <target name="init.hudson" if="env.HUDSON_URL" depends="check.commit.msg"> |
| <property name="build.root" value="${env.WORKSPACE}" /> |
| <property name="build.location" value="hudson" /> |
| <property name="build.timestamp" value="${env.BUILD_ID}" /> |
| <property name="loglevel" value="${env.LOG_LEVEL}" /> |
| <property name="skip.test" value="${env.SKIP_TEST}" /> |
| <property name="jarprocessor.dir" value="${env.org.eclipse.update.jarprocessor.pack200}" /> |
| <property name="p2.mirrors" value="false" /> |
| |
| <!-- build.trigger --> |
| <if> |
| <not> |
| <isset property="build.trigger" /> |
| </not> |
| <then> |
| <xmlproperty keeproot="false"> |
| <url url="${env.BUILD_URL}/api/xml?tree=actions[causes[shortDescription]]" /> |
| </xmlproperty> |
| <loadresource property="build.trigger"> |
| <propertyresource name="action.cause.shortDescription" /> |
| <filterchain> |
| <replaceregex pattern="^Triggered by " replace="" /> |
| <replaceregex pattern="^Gerrit: .*" replace="gerrit" /> |
| <replaceregex pattern="^Started by " replace="" /> |
| <replaceregex pattern="^Gestartet durch " replace="" /> |
| <replaceregex pattern="Benutzer" replace="user" /> |
| </filterchain> |
| </loadresource> |
| </then> |
| </if> |
| |
| <!-- build.type --> |
| <if> |
| <equals arg1="${env.BUILD_TYPE}" arg2="<default>" /> |
| <then> |
| <condition property="build.type" value="${weekly}" else="N"> |
| <equals arg1="${build.trigger}" arg2="timer" /> |
| </condition> |
| </then> |
| <else> |
| <property name="build.type" value="${env.BUILD_TYPE}" /> |
| </else> |
| </if> |
| |
| <!-- site.signing --> |
| <condition property="site.signing" value="true" else="false"> |
| <and> |
| <not> |
| <equals arg1="${build.type}" arg2="N" /> |
| </not> |
| <or> |
| <equals arg1="${env.HUDSON_URL}" arg2="https://hudson.eclipse.org/cdo/" /> |
| <equals arg1="${env.HUDSON_URL}" arg2="https://hudson.eclipse.org/hudson/" /> |
| </or> |
| </and> |
| </condition> |
| |
| <!-- eclipse.staging.area --> |
| <if> |
| <equals arg1="${site.signing}" arg2="true" /> |
| <then> |
| <property name="eclipse.staging.area" value="/shared/download-staging.priv/modeling/emf/cdo/${env.JOB_NAME}" /> |
| </then> |
| </if> |
| </target> |
| |
| <!-- ========== --> |
| <!-- Init Local --> |
| <!-- ========== --> |
| |
| <target name="init.local" unless="env.HUDSON_URL"> |
| <fail unless="build.root" message="The property 'build.root' must be defined in a 'local.properties' file" /> |
| |
| <property name="build.location" value="local" /> |
| <property name="build.trigger" value="manual" /> |
| <property name="site.signing" value="false" /> |
| <property name="git.clone" value="${build.root}/git" /> |
| |
| <!-- build.timestamp --> |
| <tstamp> |
| <format property="build.timestamp" pattern="yyyy-MM-dd_HH-mm-ss" /> |
| </tstamp> |
| |
| <!-- git.clone --> |
| <if> |
| <and> |
| <equals arg1="${keep.git}" arg2="true" /> |
| <available file="${git.clone}" type="dir" /> |
| </and> |
| <then> |
| <echo message="Keeping Git clone" /> |
| </then> |
| <else> |
| <echo message="Copying Git clone from ${original.git.dir}" /> |
| <cleandir dir="${git.clone}" /> |
| <copy todir="${git.clone}"> |
| <fileset dir="${original.git.dir}" defaultexcludes="false"> |
| <exclude name="**/*.class" /> |
| </fileset> |
| </copy> |
| </else> |
| </if> |
| </target> |
| |
| <!-- =============== --> |
| <!-- Init Properties --> |
| <!-- =============== --> |
| |
| <target name="init.properties" depends="init.hudson,init.local"> |
| <condition property="no.proxy" value="${env.no_proxy}, dev.eclipse.org" else="dev.eclipse.org"> |
| <isset property="env.no_proxy" /> |
| </condition> |
| |
| <property name="git.clone" location="${build.root}/git" /> |
| <property name="features" location="${git.clone}/features" /> |
| <property name="plugins" location="${git.clone}/plugins" /> |
| <property name="releng" location="${plugins}/org.eclipse.emf.cdo.releng" /> |
| <property name="releng.help" location="${plugins}/org.eclipse.emf.cdo.releng.help" /> |
| <property name="test.report" location="${build.root}/test-report.xml" /> |
| <property name="tools" location="${build.root}/tools" /> |
| <property name="zips" location="${build.root}/zips" /> |
| |
| <property name="result" location="${build.root}/result" /> |
| <property name="ws" location="${result}/ws" /> |
| <property name="tp" location="${result}/tp" /> |
| |
| <property name="buckminster.output.root" location="${result}/output" /> |
| <property name="buckminster.temp.root" location="${result}/temp" /> |
| |
| <!-- build.qualifier --> |
| <tempfile property="build.qualifier.tmp" |
| destdir="${java.io.tmpdir}" |
| prefix="build-qualifier-" |
| suffix=".tmp" |
| deleteonexit="true" /> |
| <echo message="build.qualifier.date=${build.timestamp}" file="${build.qualifier.tmp}" /> |
| <replaceregexp file="${build.qualifier.tmp}"> |
| <regexp pattern="([0-9]*)-([0-9]*)-([0-9]*)_([0-9]*)-([0-9]*)-([0-9]*)" /> |
| <substitution expression="\1\2\3-\4\5" /> |
| </replaceregexp > |
| <property file="${build.qualifier.tmp}" /> |
| <property name="build.qualifier" value="${build.type}${build.qualifier.date}" /> |
| <property name="build.version" value="v${build.qualifier.date}" /> |
| |
| <!-- build-info.xml --> |
| <echoxml file="${build.root}/build-info.xml"> |
| <build stream="${stream}" |
| branch="${branch}" |
| train="${train}" |
| eclipse="${eclipse}" |
| emf="${emf}" |
| type="${build.type}" |
| timestamp="${build.timestamp}" |
| qualifier="${build.qualifier}" |
| trigger="${build.trigger}" |
| hudson="${env.HUDSON_URL}" |
| revision="${env.GIT_COMMIT}" |
| job="${env.JOB_NAME}" |
| number="${env.BUILD_NUMBER}" /> |
| </echoxml> |
| |
| <!-- Echo --> |
| <echo message="stream = ${stream}" /> |
| <echo message="branch = ${branch}" /> |
| <echo message="train = ${train}" /> |
| <echo message="build.type = ${build.type}" /> |
| <echo message="build.location = ${build.location}" /> |
| <echo message="build.trigger = ${build.trigger}" /> |
| <echo message="build.timestamp = ${build.timestamp}" /> |
| <echo message="build.qualifier = ${build.qualifier}" /> |
| <echo message="site.signing = ${site.signing}" /> |
| </target> |
| |
| <!-- ========== --> |
| <!-- Init Tools --> |
| <!-- ========== --> |
| |
| <target name="init.tools" depends="init.properties"> |
| <if> |
| <and> |
| <equals arg1="${keep.tools}" arg2="true" /> |
| <available file="${tools}/director" type="dir" /> |
| <available file="${tools}/buckminster" type="dir" /> |
| </and> |
| <then> |
| <echo message="Keeping tool installation" /> |
| </then> |
| <else> |
| <!-- Delete existing tool installations --> |
| <delete includeemptydirs="true" failonerror="false"> |
| <fileset dir="${tools}" defaultexcludes="false"> |
| <include name="director/**" /> |
| <include name="buckminster/**" /> |
| </fileset> |
| </delete> |
| |
| <!-- Install director --> |
| <echo message="" /> |
| <echo message="Installing director" /> |
| <tempfile destdir="${java.io.tmpdir}" |
| prefix="director-" |
| suffix=".zip" |
| property="director.zip" |
| deleteonexit="true" /> |
| <get src="http://download.eclipse.org/tools/buckminster/products/director_latest.zip" dest="${director.zip}" /> |
| <mkdir dir="${tools}" /> |
| <unzip src="${director.zip}" dest="${tools}" /> |
| <delete file="${director.zip}" /> |
| |
| <!-- Install buckminster --> |
| <echo message="" /> |
| <echo message="Installing buckminster" /> |
| <eclipse app="director"> |
| <properties> |
| <sysproperty key="org.eclipse.update.jarprocessor.pack200" value="/shared/common/jdk1.6.0-latest/bin" /> |
| <sysproperty key="eclipse.p2.mirrors" value="false" /> |
| <sysproperty key="eclipse.p2.MD5Check" value="false" /> |
| </properties> |
| <args> |
| <arg value="-r" /> |
| <arg value="http://download.eclipse.org/tools/buckminster/headless-4.4" /> |
| <arg value="-r" /> |
| <arg value="http://download.eclipse.org/releases/mars" /> |
| <arg value="-r" /> |
| <arg value="http://download.eclipse.org/oomph/updates/latest" /> |
| <arg value="-r" /> |
| <arg value="http://download.eclipse.org/modeling/emf/cdo/drops/R20160607-1209" /> |
| <arg value="-d" /> |
| <arg value="${tools}/buckminster" /> |
| <arg value="-p" /> |
| <arg value="Buckminster" /> |
| <arg value="-i" /> |
| <arg value="org.eclipse.buckminster.cmdline.product" /> |
| <arg value="-i" /> |
| <arg value="org.eclipse.buckminster.core.headless.feature.feature.group" /> |
| <arg value="-i" /> |
| <arg value="org.eclipse.buckminster.pde.headless.feature.feature.group" /> |
| <arg value="-i" /> |
| <arg value="org.eclipse.buckminster.git.headless.feature.feature.group" /> |
| <arg value="-i" /> |
| <arg value="org.eclipse.ant.launching" /> |
| <arg value="-i" /> |
| <arg value="org.eclipse.pde.api.tools.ee.feature.feature.group" /> |
| <arg value="-i" /> |
| <arg value="org.eclipse.oomph.version.headless.feature.group" /> |
| <arg value="-i" /> |
| <arg value="org.eclipse.emf.cdo.releng.apireports.feature.group" /> |
| </args> |
| </eclipse> |
| |
| <!-- See http://wiki.eclipse.org/Hudson#Configuring_a_proxy_for_the_p2_director --> |
| <copy file="${releng}/${build.location}/org.eclipse.core.net.prefs" |
| todir="${tools}/buckminster/configuration/.settings" |
| overwrite="true" /> |
| </else> |
| </if> |
| </target> |
| |
| <!-- ========= --> |
| <!-- Provision --> |
| <!-- ========= --> |
| |
| <target name="provision" depends="init.tools" description="Imports projects and binaries"> |
| <if> |
| <not> |
| <equals arg1="${skip.provision}" arg2="true" /> |
| </not> |
| <then> |
| <!-- Cleanup build.root --> |
| <delete failonerror="false" includeemptydirs="true"> |
| <fileset dir="${build.root}" defaultexcludes="false"> |
| <include name="zips/**" /> |
| <include name="*.css" /> |
| <include name="*.html" /> |
| <include name="*.xml" /> |
| <include name="*.log" /> |
| <include name="*.txt" /> |
| <exclude name="build-info.xml" /> |
| </fileset> |
| </delete> |
| |
| <!-- Test Report --> |
| <copy file="${releng}/hudson/test-report-empty.xml" tofile="${test.report}" overwrite="true" verbose="true" /> |
| |
| <!-- Workspace --> |
| <echo message="Initializing workspace" /> |
| <delete includeemptydirs="true" failonerror="false"> |
| <fileset dir="${result}" defaultexcludes="false"> |
| <include name="ws/**" /> |
| <include name="*.properties" /> |
| </fileset> |
| </delete> |
| <mkdir dir="${result}" /> |
| <unzip dest="${ws}" src="${releng}/hudson/workspace.zip" /> |
| |
| <!-- API Baseline --> |
| <if> |
| <equals arg1="${build.location}" arg2="local" /> |
| <then> |
| <echo message="Using local baseline ${baseline.dir}" /> |
| <replaceregexp file="${releng}/hudson/api_baseline.xml" |
| match="path="[^"]+"" |
| replace="path="${baseline.dir}"" /> |
| </then> |
| </if> |
| <copy file="${releng}/hudson/api_baseline.xml" tofile="${releng}/hudson/api_baseline.target" verbose="true" /> |
| |
| <!-- Target Platform --> |
| <if> |
| <and> |
| <equals arg1="${keep.tp}" arg2="true" /> |
| <available file="${tp}" type="dir" /> |
| </and> |
| <then> |
| <echo message="Keeping target platform ${tp}" /> |
| </then> |
| <else> |
| <echo message="Purging target platform ${tp}" /> |
| <delete failonerror="false" includeemptydirs="true"> |
| <fileset dir="${result}" defaultexcludes="false"> |
| <include name="tp/**" /> |
| </fileset> |
| </delete> |
| </else> |
| </if> |
| <echo message="Importing binaries into ${tp}" /> |
| <mkdir dir="${tp}" /> |
| |
| <!-- Import MSpec --> |
| <echo message="Importing projects into ${ws}" /> |
| <buckminster command="setpref"> |
| <cmdargs> |
| <arg value="maxParallelResolutions=1" /> |
| </cmdargs> |
| </buckminster> |
| <buckminster command="import"> |
| <cmdargs> |
| <arg value="-B" /> |
| <arg value="${build.root}/bom.xml" /> |
| |
| <arg value="-P" /> |
| <arg value="${basedir}/build.properties" /> |
| |
| <!-- Last argument: --> |
| <arg value="${basedir}/build.mspec" /> |
| </cmdargs> |
| </buckminster> |
| |
| <echo message="" /> |
| <echo message="Setting API baseline" /> |
| <buckminster command="addbaseline"> |
| <cmdargs> |
| <arg value="-A" /> |
| <arg value="CDO Baseline" /> |
| </cmdargs> |
| </buckminster> |
| |
| <replace.product.version feature="org.eclipse.emf.cdo.explorer.product" profile="CDOExplorer" version="${build.version}" /> |
| <replace.product.version feature="org.eclipse.emf.cdo.server.product" profile="CDOServer" version="${build.version}" /> |
| </then> |
| </if> |
| </target> |
| |
| <!-- ===== --> |
| <!-- Build --> |
| <!-- ===== --> |
| |
| <target name="build" depends="provision" description="Builds all projects and generates build-infos.xml"> |
| <if> |
| <not> |
| <equals arg1="${skip.build}" arg2="true" /> |
| </not> |
| <then> |
| <echo message="Building all projects in workspace ${ws}" /> |
| <buckminster command="build"> |
| <cmdargs> |
| <arg value="--thorough" /> |
| <arg value="--logfile" /> |
| <arg value="${build.root}/build-log.txt" /> |
| </cmdargs> |
| </buckminster> |
| |
| <delete failonerror="false" includeemptydirs="true"> |
| <fileset dir="${plugins}"> |
| <exclude name="org.eclipse.emf.cdo.releng.doc/**" /> |
| <include name="*.doc/bin/**" /> |
| <include name="*.help/bin/**" /> |
| </fileset> |
| </delete> |
| </then> |
| </if> |
| </target> |
| |
| <!-- ==== --> |
| <!-- Test --> |
| <!-- ==== --> |
| |
| <target name="test" depends="build" description="Runs the tests"> |
| <if> |
| <equals arg1="${skip.test}" arg2="true" /> |
| <then> |
| <echo message="Skipping test" /> |
| </then> |
| <else> |
| <condition property="launch.config" |
| value="org.eclipse.emf.cdo.tests.all/CDO GerritTests" |
| else="org.eclipse.emf.cdo.tests.db/CDO AllTests (H2 ALL)"> |
| <isset property="GERRIT_CHANGE_ID" /> |
| </condition> |
| <echo message="Running ${launch.config}" /> |
| <buckminster command="junit"> |
| <cmdargs> |
| <arg value="-l" /> |
| <arg value="${launch.config}.launch" /> |
| <arg value="-o" /> |
| <arg value="${test.report}" /> |
| <arg value="--terseXML" /> |
| <arg value="--flatXML" /> |
| </cmdargs> |
| </buckminster> |
| </else> |
| </if> |
| </target> |
| |
| <!-- ======== --> |
| <!-- Generate --> |
| <!-- ======== --> |
| |
| <target name="generate" depends="build" description="Generates the site and other artifacts"> |
| <if> |
| <or> |
| <isset property="GERRIT_CHANGE_ID" /> |
| <equals arg1="${skip.generate}" arg2="true" /> |
| </or> |
| <then> |
| <echo message="Skipping generate" /> |
| </then> |
| <else> |
| <if> |
| <not> |
| <equals arg1="${skip.generate.site}" arg2="true" /> |
| </not> |
| <then> |
| <generate.site feature="org.eclipse.emf.cdo.site" /> |
| </then> |
| </if> |
| |
| <if> |
| <not> |
| <equals arg1="${skip.generate.help}" arg2="true" /> |
| </not> |
| <then> |
| <generate.help /> |
| </then> |
| </if> |
| |
| <if> |
| <not> |
| <equals arg1="${skip.generate.index}" arg2="true" /> |
| </not> |
| <then> |
| <generate.index /> |
| </then> |
| </if> |
| |
| <if> |
| <not> |
| <equals arg1="${skip.generate.bookmarks}" arg2="true" /> |
| </not> |
| <then> |
| <generate.bookmarks /> |
| </then> |
| </if> |
| |
| <if> |
| <not> |
| <equals arg1="${skip.generate.dropins}" arg2="true" /> |
| </not> |
| <then> |
| <generate.dropins /> |
| </then> |
| </if> |
| |
| <if> |
| <not> |
| <equals arg1="${skip.generate.apireports}" arg2="true" /> |
| </not> |
| <then> |
| <generate.apireports /> |
| </then> |
| </if> |
| </else> |
| </if> |
| </target> |
| |
| <!-- === --> |
| <!-- All --> |
| <!-- === --> |
| |
| <target name="all" depends="test,generate" description="Runs the tests and generates the site and other artifacts" /> |
| |
| </project> |