| <!--/******************************************************************************* |
| * This program and the accompanying materials are made available under the |
| * terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 |
| * which accompanies this distribution. |
| * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html |
| * and the Eclipse Distribution License is available at |
| * http://www.eclipse.org/org/documents/edl-v10.php. |
| * |
| * Ant naming conventions: |
| * - regardless of the actual OS platform,'/' is the directory separator |
| * (Ant will convert as appropriate). |
| * - multi-word properties use periods '.' |
| * - properties ending in .jar define jarfile names only (no path) |
| * - properties ending in .lib are fully qualified jars (path and filename) |
| * - properties ending in .dir are directory paths |
| * - properties ending in .path are path refid names (classpath fragments) |
| * - multi-word targets use hyphens '-' |
| * - targets beginning with test- are reserved for high level test targets, |
| * and are used in test results parsing |
| * - targets typically use the form <action>-<object>-<type> (ie. package-bundle-zip) |
| * - multi-word macros use underscores '_' |
| * - multi-word macro attributes are concatenated |
| * e.g. 'runpathref' |
| * - multi-word tasks (taskdef) names are concatenated |
| * e.g. 'validateconnection' |
| * - OS environment variables are in ALLCAPS and have 'env' as a prefix |
| * e.g. ${env.XXX}. |
| * - Ant properties are lower case. |
| * |
| * Contributors: |
| * eric.gwin - initial API and implementation (checked in by Tware) |
| #******************************************************************************/--> |
| |
| <!-- ============================================================================= |
| * General Comments |
| * This buildfile contains branch and automation specific instructions for the |
| * automated build process using Hudson for EclipseLink at Eclipse and is intended |
| * to be called by Hudson (generic user). |
| * |
| * All publishing commands are now external to this file (see eclipselink.releng: publish.sh) |
| *================================================================================= --> |
| <project name="AutoBuild" basedir="." default="build-nightly"> |
| <echo message="---- AutoBuild.xml ----"/> |
| <dirname property="build.location_temp" file="${ant.file.AutoBuild}"/> |
| <pathconvert targetos="unix" property="build.location"> |
| <path> |
| <pathelement location="${build.location_temp}"/> |
| </path> |
| </pathconvert> |
| <echo message="build.location = '${build.location}'"/> |
| |
| <!-- Define custom task for conditional echo command --> |
| <property name="custom.tasks.lib" value="${build.location}/buildsystem/ant_customizations.jar"/> |
| <property name="custom.echo.task.class" value="org.eclipse.persistence.buildtools.ant.taskdefs.Say"/> |
| <available file="${custom.tasks.lib}" property="ant_customizations.exist"/> |
| <fail unless="ant_customizations.exist" message="Cannot find custom tasks library: '${custom.tasks.lib}' directory"/> |
| <taskdef name="say" classname="${custom.echo.task.class}" classpath="${custom.tasks.lib}"/> |
| |
| <target name="build-nightly" description="Trigger the nightly automated build and lrg tests" |
| depends="clean, build, extract-build-artifacts, test-p2-repos, test-lrg, extract-test-results" |
| /> |
| <target name="build-nightly-nopublish" description="Trigger the nightly automated build and lrg tests without publish" |
| depends="clean, build, test-p2-repos, test-lrg" |
| /> |
| <target name="build-continuous" description="Trigger an automated build and run the tests if source changes exist" |
| depends="clean, build-no-javadoc, build-utils, test-srg" |
| /> |
| <target name="build-milestone" depends="promote-init, sign-and-wait, regen-archives, publish-milestone, create-tag" description="Promote a build: nightly to milestone or milestone to release ('release' is a special milestone in this case)" |
| /> |
| <target name="build-ora-extension" description="Trigger the automated oracle extension build" |
| depends="init, build-oracle-extension" |
| /> |
| <target name="build-ora-nosql" description="Trigger the automated oracle nosql build" |
| depends="init, build-oracle-nosql" |
| /> |
| |
| <target name="init" depends="pre-init, common-init"/> |
| |
| <target name="set-defaults"> |
| <!-- The following variables should be passed from Hudson: |
| env.JAVA_HOME - JAVA_HOME as defined by Hudson |
| git.exec - fully qualified path to git executable |
| build.deps.dir - location on buildserver that stores dependencies (/shared/rt/eclipselink/bld_deps/master) |
| junit.dir - directory where junit.jar can be found |
| junit.lib - fully qualified path to junit jarfile (junit.dir/junit.jarname) |
| build.tool.root - root of build server (from here releng and db data files can be found) |
| hudson.workspace- WORKSPACE as defined by the Hudson slave |
| M2_HOME - location of Maven3 install (on build server) |
| --> |
| <property name="branch" value="master"/> |
| |
| <condition property="git.exec" value="${env.GIT_EXEC}"> |
| <isset property="env.GIT_EXEC"/> |
| </condition> |
| <property name="git.exec" value="/usr/bin/git"/> |
| <property name="build.deps.dir" value="${extensions.depend.dir}"/> |
| <property name="junit.dir" value="${build.deps.dir}/junit"/> |
| <property name="build.tool.root" value="${build.location}"/> |
| <property file="${build.tool.root}/db-${branch}.properties"/> |
| |
| <echo message=" "/> |
| <echo message="git.exec ='${git.exec}'"/> |
| <echo message="build.deps.dir = '${build.deps.dir}'"/> |
| <echo message="build.tool.root = '${build.tool.root}'"/> |
| <echo message="hudson.workspace= '${hudson.workspace}'"/> |
| <echo message="M2_HOME = '${M2_HOME}'"/> |
| <echo message=" "/> |
| <echo message="branch = '${branch}'"/> |
| </target> |
| |
| <target name="get-git-hash" unless="git.hash" depends="set-defaults"> |
| <!-- get git.hash NOTE: if "get" fails defaulted to "NA" --> |
| <exec outputproperty="git.hash" |
| failonerror="false" |
| failifexecutionfails="false" |
| errorproperty="githash.failed" |
| logError="true" |
| executable="${git.exec}"> |
| <arg value="log"/> |
| <arg value="-1"/> |
| <arg value="--format=%h"/> |
| </exec> |
| <property name="git.hash" value="NA"/> |
| </target> |
| |
| <target name="get-git-branch" unless="branch" depends="set-defaults"> |
| <!-- get git branch (parse results of "git branch") --> |
| <exec outputproperty="git.output" |
| failonerror="false" |
| failifexecutionfails="false" |
| errorproperty="gitbranch.failed" |
| logError="true" |
| executable="${git.exec}"> |
| <arg value="branch"/> |
| </exec> |
| <exec outputproperty="branch" |
| failonerror="false" |
| failifexecutionfails="false" |
| errorproperty="echo.failed" |
| logError="true" |
| executable="echo"> |
| <arg value="$git.output"/> |
| </exec> |
| <property name="git.hash" value="NA"/> |
| </target> |
| |
| <target name="pre-init" depends="get-git-hash"> |
| <tstamp> |
| <format property="build.date" pattern="yyyyMMdd"/> |
| <format property="build.time" pattern="HHmm"/> |
| </tstamp> |
| <!-- # The next properties defines are pulled out of the properties file --> |
| <!-- # to highlight them. --> |
| <!-- # test.properties.run - defines which file to use to connect to the --> |
| <!-- # db for post-build testing. --> |
| <!-- # coretest.prop.file - the file generated by the build, that holds --> |
| <!-- # the db properties for automated testing --> |
| <property name="coretest.prop.file" value="${build.location}/mysql.jpa.test.properties"/> |
| <property name="test.properties.run" value="${coretest.prop.file}"/> |
| <!-- added because looks like property name may have changed, or override was failing --> |
| <property name="core.test.properties" value="${coretest.prop.file}"/> |
| |
| <!-- build.type should default to "SNAPSHOT, unless it is set to "M#" --> |
| <!-- or "RELEASE" on the command-line for milestone or release builds --> |
| <property name="build.type" value="SNAPSHOT"/> |
| |
| <!-- Set version.qualifier appropriately. variable should only be used --> |
| <!-- for uploaded filenames or manifest entries. --> |
| <condition property="version.qualifier" value="qualifier" |
| else="v${build.date}-${git.hash}"> |
| <equals arg1="${git.hash}" arg2="NA"/> |
| </condition> |
| |
| <!-- M2_HOME defaults the value maven 3.0.3 install location on the build --> |
| <!-- server, this is brittle, but easier for now --> |
| <property name="M2_HOME" value="/shared/common/apache-maven-3.0.3"/> |
| <echo message="'M2_HOME' set to: '${M2_HOME}'"/> |
| |
| <!-- Set location of executed scripts to hudson (is also set in promote-init for milestone publising) --> |
| <property name="script.dir" value="${hudson.workspace}/buildsystem"/> |
| |
| <echo message="ANT_ARGS='${env.ANT_ARGS}'"/> |
| <echo message="ANT_OPTS='${env.ANT_OPTS}'"/> |
| <echo message=" "/> |
| <echo message="env.JAVA_HOME = '${env.JAVA_HOME}'"/> |
| <echo message="env.ANT_HOME = '${env.ANT_HOME}'"/> |
| <echo message="env.JUNIT_HOME = '${env.JUNIT_HOME}'"/> |
| <echo message="env.MAVENANT_DIR= '${env.MAVENANT_DIR}'"/> |
| <echo message="env.PATH = '${env.PATH}'"/> |
| <echo message="env.CLASSPATH = '${env.CLASSPATH}'"/> |
| <echo message="env.GIT_EXEC = '${env.GIT_EXEC}'"/> |
| <echo message="env.TARGET = '${env.TARGET}'"/> |
| <echo message=" "/> |
| <echo message="java.version ='${java.version}'"/> |
| <echo message="os.name ='${os.name}'"/> |
| <echo message="os.arch ='${os.arch}'"/> |
| <echo message="os.version ='${os.version}'"/> |
| <echo message=" "/> |
| <echo message="builddate.buildtime='${build.date}.${build.time}'"/> |
| <echo message="coretest.prop.file ='${coretest.prop.file}'"/> |
| <echo message="test.properties.run='${test.properties.run}'"/> |
| <echo message="build.type ='${build.type}'"/> |
| <echo message="version.qualifier ='${version.qualifier}'"/> |
| <echo message=" "/> |
| <echo message="build.deps.dir ='${build.deps.dir}'"/> |
| <echo message="build.tool.root ='${build.tool.root}'"/> |
| <echo message="hudson.workspace='${hudson.workspace}'"/> |
| <echo message=" "/> |
| </target> |
| |
| <target name="common-init"> |
| <property file="${basedir}/autobuild.properties"/> |
| |
| <!-- Set version.string appropriately. variable should only be used for --> |
| <!-- uploaded filenames or manifest entries. --> |
| <property name="version.string" value="${release.version}.${version.qualifier}"/> |
| |
| <!-- Set extract.root.dir for this publishing (not used for milestones, but has to be here due to use of "release.version" --> |
| <property name="extract.root.dir" value="${build.tool.root}/exported_builds"/> |
| |
| <!-- For signed archive name need "version.string" defined first --> |
| <property name="p2.archive.presigned.zip" value="eclipselink-P2-${version.string}.zip"/> |
| <property name="p2.archive.signed.zip" value="eclipselink-P2signed-${version.string}.zip"/> |
| |
| <!-- generate Release Designation string for manifest --> |
| <property name="release.designation" value="EclipseLink ${release.version}"/> |
| |
| <!-- generate string for tag creation (used for maven publish and handoff-version as well) --> |
| <condition property="milestone.tag" value="${release.version}"> |
| <equals arg1="${build.type}" arg2="RELEASE"/> |
| </condition> |
| <property name="milestone.tag" value="${release.version}-${build.type}"/> |
| <echo message="milestone.tag ='${milestone.tag}'"/> |
| |
| <!-- Now that all our overrides are complete, pull in the rest of the build properties --> |
| <property file="${build.location}/antbuild.properties"/> |
| |
| <echo message="branch.name ='${branch.name}'"/> |
| <echo message="branch ='${branch}'"/> |
| <echo message="basedir ='${basedir}'"/> |
| <echo message="build.location ='${build.location}'"/> |
| <echo message="extract.root.dir='${extract.root.dir}'"/> |
| <echo message="log.dir ='${log.dir}'"/> |
| <echo message="junit.dir ='${junit.dir}'"/> |
| <echo message="junit.lib ='${junit.lib}'"/> |
| <echo message=" "/> |
| <echo message="git.exec ='${git.exec}'"/> |
| <echo message=" "/> |
| <echo message="EL version ='${release.version}'"/> |
| <echo message="build.type ='${build.type}'"/> |
| <echo message="version.string ='${version.string}'"/> |
| <echo message="build.number ='${build.date}'"/> |
| <echo message="git.hash ='${git.hash}'"/> |
| <echo message=" "/> |
| <echo message="milestone.tag ='${milestone.tag}'"/> |
| <echo message=" "/> |
| <echo message="jdbc.driver.jar='${jdbc.driver.jar}'"/> |
| <echo message="db.driver ='${db.driver}'"/> |
| <echo message="db.url ='${db.url}'"/> |
| <echo message="db.user ='${db.user}'"/> |
| <echo message="db.pwd = **********"/> |
| <echo message="db.platform ='${db.platform}'"/> |
| </target> |
| |
| <target name="clean" depends="init"> |
| <ant antfile="antbuild.xml" dir="${build.location}" target="clean"/> |
| </target> |
| |
| <target name="build" depends="init"> |
| <ant antfile="antbuild.xml" dir="${build.location}" target="build-all-but-ext"/> |
| <ant antfile="antbuild.xml" dir="${build.location}/features" target="build-features-create-signzip"/> |
| <ant antfile="antbuild.xml" dir="${build.location}" target="package-all"/> |
| </target> |
| |
| <target name="build-oracle-extension"> |
| <ant antfile="antbuild.xml" dir="${build.location}" target="build-oracle-extension"/> |
| </target> |
| |
| <target name="build-oracle-nosql"> |
| <ant antfile="antbuild.xml" dir="${build.location}" target="build-oracle-nosql"/> |
| </target> |
| |
| <target name="build-no-javadoc" depends="init"> |
| <ant antfile="antbuild.xml" dir="${build.location}" target="build"/> |
| </target> |
| |
| <target name="build-utils" depends="init"> |
| <ant antfile="antbuild.xml" dir="${build.location}" target="build-util"/> |
| </target> |
| |
| <target name="build-test" depends="init"> |
| <!-- Builds all tests including MW tests (needed for nightly compile verification even if they aren't run) --> |
| <ant antfile="antbuild.xml" dir="${build.location}" target="build-test"/> |
| </target> |
| |
| <target name="build-core-test" depends="init"> |
| <ant antfile="antbuild.xml" dir="${build.location}" target="build-core-test"/> |
| </target> |
| |
| <target name="test-p2-repos"> |
| <!-- disabled to speed up the build |
| <ant antfile="antbuild.xml" dir="${build.location}/features" target="test-repos"/> |
| --> |
| </target> |
| |
| <target name="test-srg"> |
| <!-- Generate Test properties file --> |
| <echo message="# Generated db connection properties (by bootstrap.xml)${line.separator}" file="${coretest.prop.file}" append="false"/> |
| <echo message="jdbc.driver.jar=${jdbc.driver.jar}${line.separator}" file="${coretest.prop.file}" append="true"/> |
| <echo message="db.driver=${db.driver}${line.separator}" file="${coretest.prop.file}" append="true"/> |
| <echo message="db.url=${db.url}${line.separator}" file="${coretest.prop.file}" append="true"/> |
| <echo message="db.user=${db.user}${line.separator}" file="${coretest.prop.file}" append="true"/> |
| <echo message="db.pwd=${db.pwd}${line.separator}" file="${coretest.prop.file}" append="true"/> |
| <echo message="db.platform=${db.platform}${line.separator}" file="${coretest.prop.file}" append="true"/> |
| |
| <ant antfile="antbuild.xml" dir="${build.location}" target="test-srg"> |
| <property name="eclipselink.logging.level" value="${test.logging.level}"/> |
| </ant> |
| <!-- delete file="${coretest.prop.file}"/ --> |
| </target> |
| |
| <target name="test-lrg"> |
| <!-- Generate Test properties file --> |
| <echo message="# Generated db connection properties (by bootstrap.xml)${line.separator}" file="${coretest.prop.file}" append="false"/> |
| <echo message="jdbc.driver.jar=${jdbc.driver.jar}${line.separator}" file="${coretest.prop.file}" append="true"/> |
| <echo message="db.driver=${db.driver}${line.separator}" file="${coretest.prop.file}" append="true"/> |
| <echo message="db.url=${db.url}${line.separator}" file="${coretest.prop.file}" append="true"/> |
| <echo message="db.user=${db.user}${line.separator}" file="${coretest.prop.file}" append="true"/> |
| <echo message="db.pwd=${db.pwd}${line.separator}" file="${coretest.prop.file}" append="true"/> |
| <echo message="db.platform=${db.platform}${line.separator}" file="${coretest.prop.file}" append="true"/> |
| |
| <ant antfile="antbuild.xml" dir="${build.location}" target="test-lrg"> |
| <property name="eclipselink.logging.level" value="${test.logging.level}"/> |
| </ant> |
| <!-- delete file="${coretest.prop.file}"/ --> |
| |
| </target> |
| |
| <target name="test-browser" depends="init"> |
| <echo message="db.platform=${db.platform}${line.separator}" file="${coretest.prop.file}" append="true"/> |
| <ant antfile="antbuild.xml" dir="${build.location}" target="test-browser"> |
| <property name="eclipselink.logging.level" value="${test.logging.level}"/> |
| </ant> |
| </target> |
| |
| <!-- ===== ##### Post 'build' Processing Targets ##### ===== --> |
| <target name="generate-nightly-p2-site" depends="common-init"> |
| <!-- Set here because needed by both nightly-P2, and extract-build-artifacts --> |
| <property name="build.extract.dir" value="${extract.root.dir}/build/${release.version}/${version.qualifier}"/> |
| <mkdir dir="${build.extract.dir}"/> |
| |
| <property name="p2.archive.to.use" value="${hudson.workspace}/features/${p2.archive.presigned.zip}"/> |
| <property name="p2.repos.dir" value="${build.extract.dir}/p2repo"/> |
| <property name="metadata.repos.name" value=""${p2.nightly.repos.name}""/> |
| <property name="artifact.repos.name" value=""EclipseLink Incremental Artifacts""/> |
| <property name="p2.SDK.install.dir" value="${build.deps.dir}/eclipse"/> |
| <available file="${p2.SDK.install.dir}" type="dir" property="p2.SDK.install.dir.exist"/> |
| <fail message="${p2.SDK.install.dir} dir not found. Build will fail, aborting now." unless="p2.SDK.install.dir.exist"/> |
| <!-- Clean existing repos if it exists (should only be true of a release redo, or the latest milestone or nightly) --> |
| <delete dir="${p2.repos.dir}" failonerror="false"/> |
| <mkdir dir="${p2.repos.dir}"/> |
| <!-- populate update site with feature and bundle jars, then publish repository --> |
| <ant antfile="antbuild.xml" dir="${hudson.workspace}/features" target="assemble-repos"> |
| <property name="do.composite" value="true"/> |
| <property name="ready-to-go" value="true"/> |
| <property name="bundle.install.file" value="${hudson.workspace}/${eclipselink.plugins.install.prefix}${eclipselink.zip.suffix}"/> |
| <property name="nosql.install.file" value="${hudson.workspace}/${eclipselink.nosql.install.prefix}${eclipselink.zip.suffix}"/> |
| <property name="p2.archive.zip" value="${p2.archive.to.use}"/> |
| </ant> |
| </target> |
| |
| <!-- Extract build artifacts from Hudson Workspace and make them accessible to publish --> |
| <target name="extract-build-artifacts" depends="generate-nightly-p2-site"> |
| <!-- New Publish Architecture --> |
| <echo message="Extracting Build artifacts..."/> |
| <echo message=" from '${hudson.workspace}'"/> |
| <echo message=" to '${build.extract.dir}'"/> |
| <copy file="${hudson.workspace}/eclipselink.jar" tofile="${build.extract.dir}/eclipselink.jar" failonerror="false"/> |
| <copy file="${hudson.workspace}/features/${p2.archive.presigned.zip}" tofile="${build.extract.dir}/${p2.archive.presigned.zip}" failonerror="false"/> |
| <copy file="${hudson.workspace}/${eclipselink.install.prefix}${eclipselink.zip.suffix}" tofile="${build.extract.dir}/${eclipselink.install.prefix}-${version.string}${eclipselink.zip.suffix}" failonerror="false"/> |
| <copy file="${hudson.workspace}/${eclipselink.src.install.prefix}${eclipselink.zip.suffix}" tofile="${build.extract.dir}/${eclipselink.src.install.prefix}-${version.string}${eclipselink.zip.suffix}" failonerror="false"/> |
| <copy file="${hudson.workspace}/${eclipselink.tst.src.prefix}${eclipselink.zip.suffix}" tofile="${build.extract.dir}/${eclipselink.tst.src.prefix}-${version.string}${eclipselink.zip.suffix}" failonerror="false"/> |
| <copy file="${hudson.workspace}/${eclipselink.tst.jar.prefix}${eclipselink.zip.suffix}" tofile="${build.extract.dir}/${eclipselink.tst.jar.prefix}-${version.string}${eclipselink.zip.suffix}" failonerror="false"/> |
| <copy file="${hudson.workspace}/${eclipselink.plugins.install.prefix}${eclipselink.zip.suffix}" tofile="${build.extract.dir}/${eclipselink.plugins.install.prefix}-${version.string}${eclipselink.zip.suffix}" failonerror="false"/> |
| <copy file="${hudson.workspace}/${eclipselink.nosql.install.prefix}${eclipselink.zip.suffix}" tofile="${build.extract.dir}/${eclipselink.nosql.install.prefix}-${version.string}${eclipselink.zip.suffix}" failonerror="false"/> |
| <copy todir="${build.extract.dir}" failonerror="false"> |
| <fileset dir="${hudson.workspace}"> |
| <include name="${eclipselink.install.prefix}*${version.qualifier}-shared-lib.zip"/> |
| </fileset> |
| </copy> |
| <!-- Generate proper handoff file --> |
| <antcall target="generate-handoff"> |
| <param name="procedure" value="build"/> |
| <param name="host" value="Eclipse"/> |
| <param name="extract.loc" value="${build.extract.dir}"/> |
| </antcall> |
| </target> |
| |
| <!-- Extract test artifacts from Hudson Workspace and make them accessible to publish --> |
| <target name="extract-test-results" depends="common-init"> |
| <!-- 'Publish' from Hudson to Build --> |
| <property name="host" value="Eclipse"/> |
| <property name="test.extract.dir" value="${extract.root.dir}/test/${release.version}/${version.qualifier}/${host}"/> |
| <mkdir dir="${test.extract.dir}"/> |
| <echo message="Exporting test artifacts..."/> |
| <echo message=" from '${hudson.workspace}'"/> |
| <echo message=" to '${test.extract.dir}'"/> |
| <copy file="${hudson.workspace}/${eclipselink.core.test}/${report.dir}/junit-noframes.html" tofile="${test.extract.dir}/eclipselink-core-lrg-${version.string}.html" failonerror="false"/> |
| <copy file="${hudson.workspace}/${eclipselink.jpa.test}/${report.dir}/junit-noframes.html" tofile="${test.extract.dir}/eclipselink-jpa-lrg-${version.string}.html" failonerror="false"/> |
| <copy file="${hudson.workspace}/${eclipselink.jpa.wdf.test}/${report.dir}/junit-noframes.html" tofile="${test.extract.dir}/eclipselink-jpa-wdf-lrg-${version.string}.html" failonerror="false"/> |
| <copy file="${hudson.workspace}/${eclipselink.jpars.test}/${report.dir}/junit-noframes.html" tofile="${test.extract.dir}/eclipselink-jpars-lrg-${version.string}.html" failonerror="false"/> |
| <copy file="${hudson.workspace}/${eclipselink.moxy.test}/${report.dir}/jaxb/junit-noframes.html" tofile="${test.extract.dir}/eclipselink-jaxb-lrg-${version.string}.html" failonerror="false"/> |
| <copy file="${hudson.workspace}/${eclipselink.moxy.test}/${report.dir}/oxm/junit-noframes.html" tofile="${test.extract.dir}/eclipselink-oxm-lrg-${version.string}.html" failonerror="false"/> |
| <copy file="${hudson.workspace}/${eclipselink.sdo.test}/${report.dir}/true/junit-noframes.html" tofile="${test.extract.dir}/eclipselink-sdo-lrg-${version.string}.html" failonerror="false"/> |
| <copy file="${hudson.workspace}/${eclipselink.dbws.test}/${report.dir}/junit-noframes.html" tofile="${test.extract.dir}/eclipselink-dbws-lrg-${version.string}.html" failonerror="false"/> |
| <copy file="${hudson.workspace}/${eclipselink.dbws.builder.test}/${report.dir}/junit-noframes.html" tofile="${test.extract.dir}/eclipselink-dbws-util-lrg-${version.string}.html" failonerror="false"/> |
| <!-- Generate proper handoff file --> |
| <antcall target="generate-handoff"> |
| <param name="procedure" value="test"/> |
| <param name="host" value="${host}"/> |
| <param name="extract.loc" value="${test.extract.dir}"/> |
| </antcall> |
| </target> |
| |
| <target name="cannot-generate-handoff" unless="procedure" depends="init"> |
| <fail message="'procedure' not set. Cannot generate handoff file!"/> |
| </target> |
| <target name="generate-handoff" if="procedure" depends="cannot-generate-handoff" description="generate the publishing handoff file"> |
| <property name="handoff.file" value="${build.tool.root}/handoff-file-${procedure}-${branch}-${version.qualifier}.dat"/> |
| <echo message="Generating Publishing handoff file with the following values:"/> |
| <echo message=" procedure ='${procedure}'"/> |
| <echo message=" extract.loc ='${extract.loc}'"/> |
| <echo message=" host ='${host}'"/> |
| <echo message=" milestone.tag='${milestone.tag}'"/> |
| <echo message=" handoff.file ='${handoff.file}'"/> |
| |
| <echo message="extract.loc=${extract.loc} host=${host} maven.tag=${milestone.tag}" file="${handoff.file}" append="false"/> |
| <!-- could use ${line.separator} to generate on separate lines, but don't as yet --> |
| </target> |
| |
| |
| <!-- ===== ##### Public Publishing Targets ##### ===== --> |
| |
| <target name="publish-init" depends="common-init"> |
| <!-- Set download.dir appropriately depending upon build target --> |
| <condition property="download.dir" value="${eclipselink.root.download.dir}/nightly/${release.version}/${build.date}"> |
| <equals arg1="${build.type}" arg2="SNAPSHOT"/> |
| </condition> |
| <condition property="download.dir" value="${eclipselink.root.download.dir}/releases/${release.version}"> |
| <equals arg1="${build.type}" arg2="RELEASE"/> |
| </condition> |
| <property name="download.dir" value="${eclipselink.root.download.dir}/milestones/${release.version}/${build.type}"/> |
| |
| <!-- Set p2 repository path appropriately depending upon build target --> |
| <condition property="p2.composite.root.dir" value="${eclipselink.root.download.dir}/nightly-updates"> |
| <equals arg1="${build.type}" arg2="SNAPSHOT"/> |
| </condition> |
| <condition property="p2.composite.root.dir" value="${eclipselink.root.download.dir}/updates"> |
| <equals arg1="${build.type}" arg2="RELEASE"/> |
| </condition> |
| <property name="p2.composite.root.dir" value="${eclipselink.root.download.dir}/milestone-updates"/> |
| |
| <condition property="p2.repos.dir" value="${p2.composite.root.dir}/${version.string}"> |
| <equals arg1="${build.type}" arg2="SNAPSHOT"/> |
| </condition> |
| <condition property="p2.repos.dir" value="${p2.composite.root.dir}/${version.string}"> |
| <equals arg1="${build.type}" arg2="RELEASE"/> |
| </condition> |
| <property name="p2.repos.dir" value="${p2.composite.root.dir}/${version.string}_${build.type}"/> |
| |
| <!-- generate Release Designation string for manifest --> |
| <property name="release.designation" value="EclipseLink ${release.version}"/> |
| <!-- specify location of eclipse SDK install to use --> |
| <property name="p2.SDK.install.dir" value="${build.deps.dir}/eclipse"/> |
| <!-- verify location of eclipse SDK install exists before proceeding... --> |
| <available file="${p2.SDK.install.dir}" type="dir" property="p2.SDK.install.dir.exist"/> |
| <fail message="${p2.SDK.install.dir} dir not found. Build will fail, aborting now." unless="p2.SDK.install.dir.exist"/> |
| |
| <!-- generate P2 repository labels --> |
| <condition property="metadata.repos.name" value=""${p2.nightly.repos.name}""> |
| <equals arg1="${build.type}" arg2="SNAPSHOT"/> |
| </condition> |
| <condition property="metadata.repos.name" value=""${p2.release.repos.name}""> |
| <equals arg1="${build.type}" arg2="RELEASE"/> |
| </condition> |
| <property name="metadata.repos.name" value=""${p2.milestone.repos.name}""/> |
| |
| <condition property="artifact.repos.name" value=""EclipseLink Incremental Artifacts""> |
| <equals arg1="${build.type}" arg2="SNAPSHOT"/> |
| </condition> |
| <condition property="artifact.repos.name" value=""EclipseLink Release Artifacts""> |
| <equals arg1="${build.type}" arg2="RELEASE"/> |
| </condition> |
| <property name="artifact.repos.name" value=""EclipseLink Milestone Artifacts""/> |
| |
| <echo message="download.dir ='${download.dir}'"/> |
| <echo message="p2.composite.root.dir='${p2.composite.root.dir}'"/> |
| <echo message="p2.repos.dir ='${p2.repos.dir}'"/> |
| <echo message="release.designation ='${release.designation}'"/> |
| <echo message="p2.SDK.install.dir ='${p2.SDK.install.dir}'"/> |
| <echo message="metadata.repos.name ='${metadata.repos.name}'"/> |
| <echo message="artifact.repos.name ='${artifact.repos.name}'"/> |
| </target> |
| |
| <!-- ===== Build Publish Targets --> |
| <!-- Mostly removed because publish.sh now does the work --> |
| |
| <!-- target name="publish-oracle-extension"> |
| <echo message="oracle-extension commit in progress..."/> |
| <exec executable="${git.exec}" failonerror="false" logError="true"> |
| <arg value="commit"/> |
| <arg value="-m ${version.string}"/> |
| <arg value="${hudson.workspace}/foundation/plugins/org.eclipse.persistence.oracle.jar"/> |
| <arg value="${hudson.workspace}/foundation/plugins/org.eclipse.persistence.oracle.source.jar"/> |
| </exec> |
| </target> |
| |
| <target name="publish-oracle-nosql"> |
| <echo message="oracle-nosql commit in progress..."/> |
| <exec executable="${git.exec}" failonerror="false" logError="true"> |
| <arg value="commit"/> |
| <arg value="-m ${version.string}"/> |
| <arg value="${hudson.workspace}/foundation/plugins/org.eclipse.persistence.oracle.nosql.jar"/> |
| <arg value="${hudson.workspace}/foundation/plugins/org.eclipse.persistence.oracle.nosql.source.jar"/> |
| </exec> |
| </target --> |
| |
| <!-- ===== Milestone Init ===== --> |
| <target name="promote-init" depends="publish-init"> <!-- In order to promote need the settings from Publish-init too --> |
| <!-- git.hash and build.time should already be set to the git hash and build date of the --> |
| <!-- build being promoted - however, build.time is undefined (it is currently unused) --> |
| <fail unless="git.hash" message="git.hash doesn't exist and it should before we reach this point!"/> |
| <fail unless="build.date" message="build.date doesn't exist and it should before we reach this point!"/> |
| <!-- build.type should be set to "M#" or "RELEASE" on the command-line for milestone or release builds --> |
| <fail unless="build.type" message="build.type doesn't exist and it should before we reach this point!"/> |
| <!-- releng.repo.dir should be passed in from the promote script. It is needed for maven promotion --> |
| <fail unless="releng.repo.dir" message="releng.repo.dir doesn't exist and it should before we reach this point!"/> |
| |
| <tstamp> |
| <format property="promote.date" pattern="MMM dd, yyyy"/> |
| <format property="run.date" pattern="yyyyMMdd"/> |
| <format property="run.time" pattern="HHmm"/> |
| </tstamp> |
| <!-- Not used, but need to keep for documentation purposes. Cannot comment out because double '-' not allowed in comment (format parameter) --> |
| <property name="commit.hash.cmd" value="${git.exec} log -1 --format=%h"/> |
| |
| <echo message=" "/> |
| <echo message="promote.date ='${promote.date}'"/> |
| <echo message="run.date ='${run.date}'"/> |
| <echo message="run.time ='${run.time}'"/> |
| |
| <!-- Set build script location for p2 publishing --> |
| <property name="script.dir" value="${releng.repo.dir}"/> |
| |
| <!-- This should already be set, but is set as a precaution --> |
| <property name="eclipselink.root.download.dir" value="/home/data/httpd/download.eclipse.org/rt/eclipselink"/> |
| <!-- This depends upon freezing nightly builds after an RC# build - otherwise the nightly to be --> |
| <!-- promoted to a 'RELEASE' build (same as last milestone) could expire off the nightly site --> |
| <property name="promote.source.dir" value="${eclipselink.root.download.dir}/nightly/${release.version}/${build.date}"/> |
| <property name="promote.archive.unsigned.lib" value="${promote.source.dir}/${p2.archive.presigned.zip}"/> |
| <property name="promote.archive.signed.lib" value="${promote.source.dir}/${p2.archive.signed.zip}"/> |
| <available file="${promote.source.dir}" property="promote.source.exist" type="dir"/> |
| <available file="${promote.archive.unsigned.lib}" property="unsigned.archive.exist"/> |
| <available file="${promote.archive.signed.lib}" property="signed.archive.exist"/> |
| <condition property="archive.exist"> |
| <or> |
| <isset property="unsigned.archive.exist"/> |
| <isset property="signed.archive.exist"/> |
| </or> |
| </condition> |
| <!-- FAIL THIS PROMOTION if the source build is not found --> |
| <fail unless="promote.source.exist" message="${promote.source.dir} not found! Cannot promote this build."/> |
| <!-- Log status of signing archive for build --> |
| <say message="${promote.archive.signed.lib} found." if="signed.archive.exist"/> |
| <say message="${promote.archive.signed.lib} not found." unless="signed.archive.exist"/> |
| <!-- FAIL THIS PROMOTION if neither the unsigned or signed archive are found --> |
| <fail unless="archive.exist" message="Both the unsigned and signed archive is missing from ${promote.source.dir}! Cannot promote this build."/> |
| <property name="temp.rebuild.dir" value="/tmp/EL${run.date}.${run.time}-${version.string}"/> |
| <delete dir="${temp.rebuild.dir}" failonerror="false"/> |
| <mkdir dir="${temp.rebuild.dir}"/> |
| </target> |
| |
| <!-- ===== Milestone Signing ===== --> |
| <target name="sign-and-wait" unless="signed.archive.exist" depends="promote-init"> |
| <echo message="Proceeding with signing of unsigned archive..."/> |
| <ant antfile="antbuild.xml" dir="${build.location}/features" target="sign-jars"> |
| <property name="signing.script" value="sign"/> |
| <property name="signed.archive.src.file" value="${promote.archive.unsigned.lib}"/> |
| <property name="signed.archive.dest.file" value="${promote.archive.signed.lib}"/> |
| </ant> |
| <available file="${promote.archive.signed.lib}" property="signed.archive.exist"/> |
| </target> |
| |
| <!-- ===== Milestone RegenArchives ===== --> |
| <target name="regen-archives" depends="check-to-continue, extract-signed-artifacts, regen-installer-archive, regen-plugin-archive, regen-nosql-archive, gen-build-for-maven"/> |
| <target name="check-to-continue" unless="signed.archive.exist"> |
| <fail message="Signing appears to have failed. Verify existence of signed archive before retrying..."/> |
| </target> |
| <target name="extract-signed-artifacts"> |
| <echo message="Extracting signed jars from archive..."/> |
| <property name="signed.jar.path" value="${temp.rebuild.dir}/signed"/> |
| <unzip dest="${signed.jar.path}" src="${promote.source.dir}/${p2.archive.signed.zip}"/> |
| </target> |
| |
| <target name="regen-installer-archive"> |
| <!-- THIS IS NOT DONE. Unless we start signing eclipselink.jar or DBWS Utils again. --> |
| <echo message=" THIS IS NOT DONE. Unless we start signing eclipselink.jar or DBWS Utils again."/> |
| <echo message="However, we still need a copy of eclipslink.jar and javadocs for maven. Extracting from original InstallerZip for later copy..."/> |
| <!-- unzip original InstallerZip to working dir --> |
| <!-- echo message="Creating signed versions of InstallerZip archive..."/ --> |
| <unzip dest="${temp.rebuild.dir}/install" src="${promote.source.dir}/${eclipselink.install.prefix}-${version.string}${eclipselink.zip.suffix}"> |
| <patternset> |
| <include name="**/*"/> |
| </patternset> |
| </unzip> |
| <!-- Force overwrite of original content --> |
| <!-- copy todir="${temp.rebuild.dir}/install/eclipselink/utils/dbws" file="${signed.jar.path}/${dbws-util.jar}" failonerror="false"/> |
| <copy todir="${temp.rebuild.dir}/install/eclipselink/jlib" file="${signed.jar.path}/${eclipselink.jar}" failonerror="false"/ --> |
| <!-- Rezip EclipseLink Installer Zip --> |
| <!-- zip destfile="${temp.rebuild.dir}/${eclipselink.install.prefix}-${version.string}${eclipselink.zip.suffix}" update="true"> |
| <zipfileset dir="${temp.rebuild.dir}/install" includes="**/*" /> |
| </zip --> |
| </target> |
| |
| <target name="regen-plugin-archive"> |
| <echo message="Creating signed versions of Plugins archive..."/> |
| <!-- unzip original PluginInstaller to working dir --> |
| <unzip dest="${temp.rebuild.dir}/bundlezip" src="${promote.source.dir}/${eclipselink.plugins.install.prefix}-${version.string}${eclipselink.zip.suffix}"> |
| <patternset> |
| <include name="**/*"/> |
| </patternset> |
| </unzip> |
| <!-- Force overwrite of original content --> |
| <copy todir="${temp.rebuild.dir}/bundlezip" failonerror="false"> |
| <fileset dir="${signed.jar.path}/plugins"> |
| <include name="*.jar"/> |
| </fileset> |
| </copy> |
| <!-- Rezip EclipseLink Plugins Zip --> |
| <zip destfile="${temp.rebuild.dir}/${eclipselink.plugins.install.prefix}-${version.string}${eclipselink.zip.suffix}" update="true"> |
| <zipfileset dir="${temp.rebuild.dir}/bundlezip" includes="**/*" /> |
| </zip> |
| </target> |
| |
| <target name="regen-nosql-archive"> |
| <echo message="Creating signed versions of NoSQL archive..."/> |
| <!-- unzip original NoSQL PluginInstaller to working dir --> |
| <unzip dest="${temp.rebuild.dir}/nosqlzip" src="${promote.source.dir}/${eclipselink.nosql.install.prefix}-${version.string}${eclipselink.zip.suffix}"> |
| <patternset> |
| <include name="**/*"/> |
| </patternset> |
| </unzip> |
| <!-- Force overwrite of original content --> |
| <copy todir="${temp.rebuild.dir}/nosqlzip" failonerror="false"> |
| <fileset dir="${signed.jar.path}/plugins"> |
| <include name="*nosql*.jar"/> |
| </fileset> |
| </copy> |
| <!-- Rezip EclipseLink NoSQL Plugins Zip --> |
| <zip destfile="${temp.rebuild.dir}/${eclipselink.nosql.install.prefix}-${version.string}${eclipselink.zip.suffix}" update="true"> |
| <zipfileset dir="${temp.rebuild.dir}/nosqlzip" includes="**/*" /> |
| </zip> |
| </target> |
| |
| <target name="gen-build-for-maven"> |
| <!-- MUST BE DONE AFTER Recreating "signed" version of the archives --> |
| <echo message="Prepare for Maven publishing"/> |
| <property name="tmp.maven.dir" value="${temp.rebuild.dir}/maven"/> |
| <!-- need to setup a dir that contains the correct contents for maven to promote --> |
| <mkdir dir="${tmp.maven.dir}"/> |
| <!-- get eclipselink source zip --> |
| <copy file="${promote.source.dir}/${eclipselink.src.install.prefix}-${version.string}${eclipselink.zip.suffix}" tofile="${tmp.maven.dir}/${eclipselink.src.install.prefix}${eclipselink.zip.suffix}" failonerror="false"/> |
| <!-- get eclipselink.jar and javadoc (from temp InstallerZip location, so will work if signed or unsigned) --> |
| <copy todir="${tmp.maven.dir}" file="${temp.rebuild.dir}/install/eclipselink/jlib/${eclipselink.jar}"/> |
| <copy todir="${tmp.maven.dir}" file="${temp.rebuild.dir}/install/eclipselink/eclipselink-javadocs.zip"/> |
| <copy todir="${tmp.maven.dir}" file="${temp.rebuild.dir}/install/eclipselink/eclipselink-jpars-javadocs.zip"/> |
| <!-- get nosql javadoc (from temp NoSQL PluginInstaller location, so will work if signed or unsigned) --> |
| <copy todir="${tmp.maven.dir}" file="${temp.rebuild.dir}/nosqlzip/nosql-javadocs.zip"/> |
| <!-- get bundles --> |
| <copy todir="${tmp.maven.dir}" flatten="true"> |
| <fileset dir="${temp.rebuild.dir}/bundlezip"> |
| <include name="javax*.jar"/> |
| <exclude name="javax.wsdl*.jar"/> |
| </fileset> |
| <fileset dir="${signed.jar.path}/${plugins.dir}"> |
| <include name="org.eclipse.persistence.*.jar"/> |
| <include name="*modelgen*.jar"/> |
| <exclude name="*oracleddl*.jar"/> |
| </fileset> |
| </copy> |
| <!-- get javax.persistence* --> |
| <copy todir="${tmp.maven.dir}" flatten="true"> |
| <fileset dir="${temp.rebuild.dir}/bundlezip"> |
| <include name="javax.persistence*2.0*.jar"/> |
| </fileset> |
| </copy> |
| <!-- get commonj.sdo --> |
| <copy todir="${tmp.maven.dir}" flatten="true"> |
| <fileset dir="${temp.rebuild.dir}/bundlezip"> |
| <include name="commonj*.jar"/> |
| </fileset> |
| </copy> |
| <!-- get utils - oracleddl/wsdl --> |
| <copy todir="${tmp.maven.dir}" flatten="true"> |
| <fileset dir="${temp.rebuild.dir}/bundlezip"> |
| <include name="javax.wsdl*.jar"/> |
| </fileset> |
| <fileset dir="${signed.jar.path}/${plugins.dir}"> |
| <include name="org.eclipse.persistence.*oracleddl*.jar"/> |
| </fileset> |
| </copy> |
| </target> |
| |
| <!-- ===== Milestone Publish ===== --> |
| <target name="publish-milestone" depends="publish-milestone-artifacts, publish-milestone-nexus, publish-milestone-p2-site"/> |
| <target name="publish-milestone-artifacts"> |
| <!-- Publish from nightly published location to Milestone dir --> |
| <mkdir dir="${download.dir}"/> |
| <copy todir="${download.dir}" failonerror="false"> |
| <fileset dir="${temp.rebuild.dir}"> |
| <!-- Populate new "signed" version of archives (from temp rebuild location) --> |
| <include name="${eclipselink.plugins.install.prefix}-${version.string}${eclipselink.zip.suffix}"/> |
| <include name="${eclipselink.nosql.install.prefix}-${version.string}${eclipselink.zip.suffix}"/> |
| <!-- copy eclipse build file for safekeeping (in case rebuild needed) --> |
| <include name="**/eclipselink.build"/> |
| </fileset> |
| <!-- Populated directly from original (nightly) build area --> |
| <fileset dir="${promote.source.dir}"> |
| <!-- copy signed P2 archive for safekeeping (in case rebuild needed) --> |
| <include name="${p2.archive.signed.zip}"/> |
| <!-- copy original zip installer, src, and test src archives --> |
| <include name="${eclipselink.install.prefix}-${version.string}${eclipselink.zip.suffix}"/> |
| <include name="${eclipselink.src.install.prefix}-${version.string}${eclipselink.zip.suffix}"/> |
| <include name="${eclipselink.tst.src.prefix}-${version.string}${eclipselink.zip.suffix}"/> |
| <include name="${eclipselink.tst.jar.prefix}-${version.string}${eclipselink.zip.suffix}"/> |
| <include name="${eclipselink.install.prefix}*${version.qualifier}-shared-lib.zip"/> |
| <include name="eclipselink-tools-*.zip"/> |
| <!-- copy all test results pages --> |
| <include name="**/eclipselink-*${version.string}.html"/> |
| <include name="**/ResultSummary.dat"/> |
| <include name="**/TestConfig.html"/> |
| </fileset> |
| </copy> |
| <!-- Copy for maven to run --> |
| <copy todir="${tmp.maven.dir}" file="${basedir}/pom.xml.template" failonerror="false"/> |
| <copy todir="${tmp.maven.dir}" file="${basedir}/uploadToMaven.xml" failonerror="false"/> |
| <copy todir="${tmp.maven.dir}" file="${basedir}/uploadToNexus.xml" failonerror="false"/> |
| </target> |
| |
| <target name="publish-milestone-maven"> |
| <echo message="Publish-milestone-maven: "/> |
| <echo message=" using: ${basedir}/uploadToMaven.xml"/> |
| <echo message=" from dir '${tmp.maven.dir}'"/> |
| <echo message=" target: 'upload-maven-all'"/> |
| <echo message=" properties: "/> |
| <echo message=" build.deps.dir ='${build.deps.dir}'"/> |
| <echo message=" custom.tasks.lib='${custom.tasks.lib}'"/> |
| <echo message=" '${releng.repo.dir}/ant_customizations.jar'"/> |
| <echo message=" release.version ='${release.version}'"/> |
| <echo message=" version.string ='${version.string}'"/> |
| <echo message=" '${release.version}.${version.qualifier}'"/> |
| <echo message=" build.date ='${build.date}'"/> |
| <echo message=" build.type ='${build.type}'"/> |
| <echo message=" bundle.dir ='${tmp.maven.dir}'"/> |
| <ant antfile="uploadToMaven.xml" dir="${tmp.maven.dir}" target="upload-maven-all"> |
| <property name="build.deps.dir" value="${build.deps.dir}"/> |
| <property name="custom.tasks.lib" value="${releng.repo.dir}/ant_customizations.jar"/> |
| <property name="release.version" value="${release.version}"/> |
| <property name="version.string" value="${release.version}.${version.qualifier}"/> |
| <property name="build.date" value="${build.date}"/> |
| <property name="build.type" value="${build.type}"/> |
| <property name="bundle.dir" value="${tmp.maven.dir}"/> |
| </ant> |
| </target> |
| |
| <target name="publish-milestone-nexus"> |
| <echo message="Publish-milestone-nexus: "/> |
| <echo message=" using: ${basedir}/uploadToNexus.xml"/> |
| <echo message=" from dir '${tmp.maven.dir}'"/> |
| <echo message=" target: 'upload-maven-all'"/> |
| <echo message=" properties: "/> |
| <echo message=" build.deps.dir ='${build.deps.dir}'"/> |
| <echo message=" custom.tasks.lib='${custom.tasks.lib}'"/> |
| <echo message=" '${releng.repo.dir}/ant_customizations.jar'"/> |
| <echo message=" release.version ='${release.version}'"/> |
| <echo message=" version.string ='${version.string}'"/> |
| <echo message=" '${release.version}.${version.qualifier}'"/> |
| <echo message=" build.date ='${build.date}'"/> |
| <echo message=" build.type ='${build.type}'"/> |
| <echo message=" bundle.dir ='${tmp.maven.dir}'"/> |
| <ant antfile="uploadToNexus.xml" dir="${tmp.maven.dir}" target="upload-maven-all"> |
| <property name="build.deps.dir" value="${build.deps.dir}"/> |
| <property name="custom.tasks.lib" value="${releng.repo.dir}/ant_customizations.jar"/> |
| <property name="release.version" value="${release.version}"/> |
| <property name="version.string" value="${release.version}.${version.qualifier}"/> |
| <property name="build.date" value="${build.date}"/> |
| <property name="build.type" value="${build.type}"/> |
| <property name="bundle.dir" value="${tmp.maven.dir}"/> |
| </ant> |
| </target> |
| |
| <target name="fix-permission"> |
| <chmod perm="ug+x"> |
| <fileset dir="${script.dir}"> |
| <include name="*.sh"/> |
| </fileset> |
| </chmod> |
| </target> |
| |
| <target name="publish-milestone-p2-site" depends="fix-permission"> |
| <!-- since publish runs externally, this is only for milestone builds --> |
| <property name="p2.archive.to.use" value="${download.dir}/${p2.archive.signed.zip}"/> |
| <!-- Clean existing repos if it exists (should only be true of a release redo, or the latest milestone or nightly) --> |
| <delete dir="${p2.repos.dir}" failonerror="false"/> |
| <mkdir dir="${p2.repos.dir}"/> |
| <!-- populate update site with feature and bundle jars, then publish repository --> |
| <ant antfile="antbuild.xml" dir="${build.location}/features" target="assemble-repos"> |
| <property name="do.composite" value="true"/> |
| <property name="ready-to-go" value="true"/> |
| <property name="bundle.install.file" value="${download.dir}/${eclipselink.plugins.install.prefix}-${version.string}${eclipselink.zip.suffix}"/> |
| <property name="nosql.install.file" value="${download.dir}/${eclipselink.nosql.install.prefix}-${version.string}${eclipselink.zip.suffix}"/> |
| <property name="p2.archive.zip" value="${p2.archive.to.use}"/> |
| </ant> |
| <!-- Regenerate Composite Repos metadata --> |
| <echo message="p2.composite.root.dir = '${p2.composite.root.dir}'"/> |
| <echo message="metadata.repos.name = '${metadata.repos.name}'"/> |
| <exec executable="/bin/sh" failonerror="false" logError="true" > |
| <arg value="${releng.repo.dir}/buildCompositeP2.sh"/> |
| <arg value="${p2.composite.root.dir}"/> |
| <arg value="${metadata.repos.name}"/> |
| </exec> |
| <!-- Can clean-up temp dir now --> |
| <delete dir="${temp.rebuild.dir}" failonerror="false"/> |
| </target> |
| |
| <!-- Unused?? --> |
| <target name="cleanup-signing-dir"> |
| <delete failonerror="false"> |
| <fileset dir="${signing.dir}" includes="**/*.zip"/> |
| </delete> |
| </target> |
| |
| <!-- ===== Milestone Tag ===== --> |
| <target name="create-tag"> |
| <echo message="Create a tag (${milestone.tag}) of this revision (${git.hash}) for this milestone (${build.type})"/> |
| <echo message=" branch.name = ${branch.name}"/> |
| <echo message=" "/> |
| <echo message="${git.exec} tag -m'Create ${milestone.tag} Tag for ${version.string}' ${milestone.tag} ${git.hash}"/> |
| <exec executable="${git.exec}" failonerror="false" logError="true"> |
| <arg value="tag"/> |
| <arg value="-m'Create ${milestone.tag} Tag for ${version.string}'"/> |
| <arg value="${milestone.tag}"/> |
| <arg value="${git.hash}"/> |
| </exec> |
| <echo message="Now push the tag back to the Eclipse repo"/> |
| <echo message="${git.exec} push --tags"/> |
| <exec executable="${git.exec}" failonerror="false" logError="true"> |
| <arg value="push"/> |
| <arg value="--tags"/> |
| </exec> |
| </target> |
| |
| </project> |