blob: a6c66ca8c715d7c61c61206bec7ee84424c7b31e [file] [log] [blame]
#!/bin/sh
# Copyright (c) 2012, 2016 IBM Corporation 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:
# IBM - Initial API and implementation
# Script needs 4-5 environment parameters:
# Hudson job name: ${JOB_NAME}
# Hudson build id: ${BUILD_ID}
# Hudson workspace: ${WORKSPACE}
# ${BUILD_TYPE}: n(ightly), m(aintenance), s(table), r(elease)
# ${BUILD_LABEL}: An optional label to append to the version string when creating drop files, e.g. M5 or RC1
#
set -e
if [ -z "$JOB_NAME" ]; then
echo "Error there is no Hudson JOB_NAME defined";
exit 0
fi
if [ -z "$BUILD_ID" ]; then
echo "Error there is no Hudson BUILD_ID defined";
exit 0
fi
if [ -z "$WORKSPACE" ]; then
echo "Error there is no Hudson WORKSPACE defined";
exit 0
fi
if [ -z "$BUILD_TYPE" ]; then
echo "Error there is no BUILD_TYPE defined";
exit 0
else
buildType=$BUILD_TYPE
fi
if [ -z "$BUILD_LABEL" ]; then
echo "Error there is no BUILD_LABEL defined";
exit 0
else
if [ "$BUILD_LABEL" != "NONE" ]; then
dropFilesLabel=$BUILD_LABEL
fi
fi
# Determine the local update site we want to publish from
localTarget=${WORKSPACE}/org.eclipse.gmf.runtime.repository/target
localUpdateSite=${localTarget}/repository/
echo "`date +%Y-%m-%d-%H:%M:%S` Using local update-site: $localUpdateSite"
# Determine remote update site we want to promote to (integration and maintenance are published on interim site, stable builds on milestone site, release builds on releases site)
case $buildType in
m|M) remoteSite=maintenance ;;
i|I) remoteSite=interim ;;
s|S) remoteSite=milestones ;;
r|R) remoteSite=releases ;;
*) exit 0 ;;
esac
echo "`date +%Y-%m-%d-%H:%M:%S` Publishing as $remoteSite ( $buildType ) build"
remoteUpdateSiteBase="modeling/gmp/gmf-runtime/updates/$remoteSite"
remoteUpdateSite="/home/data/httpd/download.eclipse.org/$remoteUpdateSiteBase"
echo "`date +%Y-%m-%d-%H:%M:%S` Publishing to remote update-site: $remoteUpdateSite"
if [ -z "$dropFilesLabel" -a "$buildType" != i -a "$buildType" != I -a "$buildType" != r -a "$buildType" != R]; then
echo "Please provide a drop files label to append to the version (e.g. M5, RC1) if this is not an I or R build."
exit 0
fi
# Prepare a temp directory
tmpDir="$localTarget/$JOB_NAME-publish-tmp"
rm -fr $tmpDir
mkdir -p $tmpDir
cd $tmpDir
echo "`date +%Y-%m-%d-%H:%M:%S` Working in `pwd`"
# Download and prepare Eclipse SDK, which is needed to process the update site
echo "`date +%Y-%m-%d-%H:%M:%S` Downloading eclipse to $PWD"
cp /home/data/httpd/download.eclipse.org/eclipse/downloads/drops4/R-4.6.2-201611241400/eclipse-SDK-4.6.2-linux-gtk-x86_64.tar.gz .
tar -xzf eclipse-SDK-4.6.2-linux-gtk-x86_64.tar.gz
cd eclipse
chmod 700 eclipse
cd ..
if [ ! -d "eclipse" ]; then
echo "Failed to download an Eclipse SDK, being needed for provisioning."
exit
fi
# Prepare Eclipse SDK to provide WTP releng tools (used to postprocess repository, i.e set p2.mirrorsURL property)
echo "`date +%Y-%m-%d-%H:%M:%S` Installing WTP Releng tools"
./eclipse/eclipse -nosplash --launcher.suppressErrors -clean -debug -application org.eclipse.equinox.p2.director -repository http://download.eclipse.org/webtools/releng/repository/ -installIUs org.eclipse.wtp.releng.tools.feature.feature.group
# Clean up
rm eclipse-SDK-4.6.2-linux-gtk-x86_64.tar.gz
# Generate drop files
echo "`date +%Y-%m-%d-%H:%M:%S` Converting update site to runnable form"
./eclipse/eclipse -nosplash -consoleLog -application org.eclipse.equinox.p2.repository.repo2runnable -source file:$localUpdateSite -destination file:drops/eclipse
qualifiedVersion=$(find $localUpdateSite/features/ -maxdepth 1 | grep "org.eclipse.gmf_" | sed 's/.jar$//')
echo "`date +%Y-%m-%d-%H:%M:%S` qualifiedVersion is $qualifiedVersion"
qualifiedVersion=${qualifiedVersion#*_}
echo "`date +%Y-%m-%d-%H:%M:%S` qualifiedVersion is $qualifiedVersion"
qualifier=${qualifiedVersion##*.}
echo "`date +%Y-%m-%d-%H:%M:%S` qualifier is $qualifier"
qualifier=${qualifier#v}
echo "`date +%Y-%m-%d-%H:%M:%S` qualifier is $qualifier"
version=${qualifiedVersion%.*}
echo "`date +%Y-%m-%d-%H:%M:%S` version is $version"
dropDir="$(echo $buildType | tr '[:lower:]' '[:upper:]')$qualifier"
echo "`date +%Y-%m-%d-%H:%M:%S` dropDir is $dropDir"
localDropDir=drops/$version/$dropDir
echo "`date +%Y-%m-%d-%H:%M:%S` Creating drop files in local directory $tmpDir/$localDropDir"
mkdir -p $localDropDir
# Prepare local update site (merging is performed later, if required)
stagedUpdateSite="updates/$remoteSite/$dropDir"
mkdir -p $stagedUpdateSite
cp -R $localUpdateSite/* $stagedUpdateSite
echo "`date +%Y-%m-%d-%H:%M:%S` Copied $localUpdateSite to local directory $stagedUpdateSite."
# Append drop file suffix if one is specified
if [ -n "$dropFilesLabel" ]; then
version=$version$dropFilesLabel
echo "`date +%Y-%m-%d-%H:%M:%S` version is now $version"
elif [ "$buildType" != r -a "$buildType" != R ]; then
version="$(echo $buildType | tr '[:lower:]' '[:upper:]')$qualifier"
echo "`date +%Y-%m-%d-%H:%M:%S` version is now $version"
else
echo "`date +%Y-%m-%d-%H:%M:%S` version is now $version"
fi
cd drops
# gmf-runtime runtime
zip -r ../$localDropDir/gmf-runtime-$version.zip \
eclipse/features/org.eclipse.gmf_* \
eclipse/plugins/org.eclipse.gmf.runtime.common.core_* \
eclipse/plugins/org.eclipse.gmf.runtime.common.ui_* \
eclipse/plugins/org.eclipse.gmf.runtime.common.ui.action_* \
eclipse/plugins/org.eclipse.gmf.runtime.common.ui.action.ide_* \
eclipse/plugins/org.eclipse.gmf.runtime.common.ui.services_* \
eclipse/plugins/org.eclipse.gmf.runtime.common.ui.services.action_* \
eclipse/plugins/org.eclipse.gmf.runtime.common.ui.services.dnd_* \
eclipse/plugins/org.eclipse.gmf.runtime.common.ui.services.dnd.ide_* \
eclipse/plugins/org.eclipse.gmf.runtime.common.ui.services.properties_* \
eclipse/plugins/org.eclipse.gmf.runtime.diagram.core_* \
eclipse/plugins/org.eclipse.gmf.runtime.diagram.ui_* \
eclipse/plugins/org.eclipse.gmf.runtime.diagram.ui.actions_* \
eclipse/plugins/org.eclipse.gmf.runtime.diagram.ui.dnd_* \
eclipse/plugins/org.eclipse.gmf.runtime.diagram.ui.geoshapes_* \
eclipse/plugins/org.eclipse.gmf.runtime.diagram.ui.properties_* \
eclipse/plugins/org.eclipse.gmf.runtime.diagram.ui.providers_* \
eclipse/plugins/org.eclipse.gmf.runtime.diagram.ui.providers.ide_* \
eclipse/plugins/org.eclipse.gmf.runtime.diagram.ui.render_* \
eclipse/plugins/org.eclipse.gmf.runtime.diagram.ui.resources.editor_* \
eclipse/plugins/org.eclipse.gmf.runtime.diagram.ui.resources.editor.ide_* \
eclipse/plugins/org.eclipse.gmf.runtime.draw2d.ui_* \
eclipse/plugins/org.eclipse.gmf.runtime.draw2d.ui.render_* \
eclipse/plugins/org.eclipse.gmf.runtime.draw2d.ui.render.awt_* \
eclipse/plugins/org.eclipse.gmf.runtime.emf.clipboard.core_* \
eclipse/plugins/org.eclipse.gmf.runtime.emf.commands.core_* \
eclipse/plugins/org.eclipse.gmf.runtime.emf.core_* \
eclipse/plugins/org.eclipse.gmf.runtime.emf.type.core_* \
eclipse/plugins/org.eclipse.gmf.runtime.emf.type.ui_* \
eclipse/plugins/org.eclipse.gmf.runtime.emf.ui_* \
eclipse/plugins/org.eclipse.gmf.runtime.emf.ui.properties_* \
eclipse/plugins/org.eclipse.gmf.runtime.gef.ui_* \
eclipse/plugins/org.eclipse.gmf.runtime.notation.providers_* \
eclipse/plugins/org.eclipse.gmf_* \
eclipse/plugins/org.eclipse.gmf.runtime.common.ui.printing_* \
eclipse/plugins/org.eclipse.gmf.runtime.common.ui.printing.win32_* \
eclipse/plugins/org.eclipse.gmf.runtime.diagram.ui.printing_* \
eclipse/plugins/org.eclipse.gmf.runtime.diagram.ui.printing.render_* \
eclipse/features/org.eclipse.gmf.runtime.thirdparty_* \
eclipse/plugins/org.apache.batik.dom.svg_* \
eclipse/plugins/org.apache.batik.bridge_* \
eclipse/plugins/org.apache.batik.dom_* \
eclipse/plugins/org.apache.batik.ext.awt_* \
eclipse/plugins/org.apache.batik.transcoder_* \
eclipse/plugins/org.apache.batik.svggen_* \
eclipse/plugins/org.apache.batik.util_* \
eclipse/plugins/org.w3c.dom.svg_* \
eclipse/plugins/org.apache.xerces_* \
eclipse/plugins/org.apache.xml.resolver_* \
eclipse/plugins/org.apache.batik.css_* \
eclipse/plugins/org.apache.batik.util.gui_* \
eclipse/plugins/org.apache.batik.parser_* \
eclipse/plugins/org.apache.batik.xml_* \
eclipse/plugins/org.w3c.css.sac_* \
eclipse/plugins/org.w3c.dom.smil_* \
eclipse/plugins/javax.xml_* \
eclipse/plugins/org.apache.xml.serializer_* \
eclipse/plugins/org.apache.batik.pdf_* \
eclipse/plugins/org.w3c.dom.events_* \
eclipse/features/org.eclipse.gmf.runtime.notation_* \
eclipse/plugins/org.eclipse.gmf.runtime.notation_* \
eclipse/plugins/org.eclipse.gmf.runtime.notation.edit_*
md5sum ../$localDropDir/gmf-runtime-$version.zip > ../$localDropDir/gmf-runtime-$version.zip.md5
echo "`date +%Y-%m-%d-%H:%M:%S` Created gmf-runtime-$version.zip"
# gmf-runtime SDK
zip -r ../$localDropDir/gmf-sdk-runtime-$version.zip \
eclipse/features/org.eclipse.gmf_* \
eclipse/plugins/org.eclipse.gmf.runtime.common.core_* \
eclipse/plugins/org.eclipse.gmf.runtime.common.ui_* \
eclipse/plugins/org.eclipse.gmf.runtime.common.ui.action_* \
eclipse/plugins/org.eclipse.gmf.runtime.common.ui.action.ide_* \
eclipse/plugins/org.eclipse.gmf.runtime.common.ui.services_* \
eclipse/plugins/org.eclipse.gmf.runtime.common.ui.services.action_* \
eclipse/plugins/org.eclipse.gmf.runtime.common.ui.services.dnd_* \
eclipse/plugins/org.eclipse.gmf.runtime.common.ui.services.dnd.ide_* \
eclipse/plugins/org.eclipse.gmf.runtime.common.ui.services.properties_* \
eclipse/plugins/org.eclipse.gmf.runtime.diagram.core_* \
eclipse/plugins/org.eclipse.gmf.runtime.diagram.ui_* \
eclipse/plugins/org.eclipse.gmf.runtime.diagram.ui.actions_* \
eclipse/plugins/org.eclipse.gmf.runtime.diagram.ui.dnd_* \
eclipse/plugins/org.eclipse.gmf.runtime.diagram.ui.geoshapes_* \
eclipse/plugins/org.eclipse.gmf.runtime.diagram.ui.properties_* \
eclipse/plugins/org.eclipse.gmf.runtime.diagram.ui.providers_* \
eclipse/plugins/org.eclipse.gmf.runtime.diagram.ui.providers.ide_* \
eclipse/plugins/org.eclipse.gmf.runtime.diagram.ui.render_* \
eclipse/plugins/org.eclipse.gmf.runtime.diagram.ui.resources.editor_* \
eclipse/plugins/org.eclipse.gmf.runtime.diagram.ui.resources.editor.ide_* \
eclipse/plugins/org.eclipse.gmf.runtime.draw2d.ui_* \
eclipse/plugins/org.eclipse.gmf.runtime.draw2d.ui.render_* \
eclipse/plugins/org.eclipse.gmf.runtime.draw2d.ui.render.awt_* \
eclipse/plugins/org.eclipse.gmf.runtime.emf.clipboard.core_* \
eclipse/plugins/org.eclipse.gmf.runtime.emf.commands.core_* \
eclipse/plugins/org.eclipse.gmf.runtime.emf.core_* \
eclipse/plugins/org.eclipse.gmf.runtime.emf.type.core_* \
eclipse/plugins/org.eclipse.gmf.runtime.emf.type.ui_* \
eclipse/plugins/org.eclipse.gmf.runtime.emf.ui_* \
eclipse/plugins/org.eclipse.gmf.runtime.emf.ui.properties_* \
eclipse/plugins/org.eclipse.gmf.runtime.gef.ui_* \
eclipse/plugins/org.eclipse.gmf.runtime.notation.providers_* \
eclipse/plugins/org.eclipse.gmf_* \
eclipse/plugins/org.eclipse.gmf.runtime.common.ui.printing_* \
eclipse/plugins/org.eclipse.gmf.runtime.common.ui.printing.win32_* \
eclipse/plugins/org.eclipse.gmf.runtime.diagram.ui.printing_* \
eclipse/plugins/org.eclipse.gmf.runtime.diagram.ui.printing.render_* \
eclipse/features/org.eclipse.gmf.runtime.thirdparty_* \
eclipse/plugins/org.apache.batik.dom.svg_* \
eclipse/plugins/org.apache.batik.bridge_* \
eclipse/plugins/org.apache.batik.dom_* \
eclipse/plugins/org.apache.batik.ext.awt_* \
eclipse/plugins/org.apache.batik.transcoder_* \
eclipse/plugins/org.apache.batik.svggen_* \
eclipse/plugins/org.apache.batik.util_* \
eclipse/plugins/org.w3c.dom.svg_* \
eclipse/plugins/org.apache.xerces_* \
eclipse/plugins/org.apache.xml.resolver_* \
eclipse/plugins/org.apache.batik.css_* \
eclipse/plugins/org.apache.batik.util.gui_* \
eclipse/plugins/org.apache.batik.parser_* \
eclipse/plugins/org.apache.batik.xml_* \
eclipse/plugins/org.w3c.css.sac_* \
eclipse/plugins/org.w3c.dom.smil_* \
eclipse/plugins/javax.xml_* \
eclipse/plugins/org.apache.xml.serializer_* \
eclipse/plugins/org.apache.batik.pdf_* \
eclipse/plugins/org.w3c.dom.events_* \
eclipse/features/org.eclipse.gmf.runtime.notation_* \
eclipse/plugins/org.eclipse.gmf.runtime.notation_* \
eclipse/plugins/org.eclipse.gmf.runtime.notation.edit_* \
eclipse/features/org.eclipse.gmf.source_* \
eclipse/plugins/org.eclipse.gmf.runtime.common.core.source_* \
eclipse/plugins/org.eclipse.gmf.runtime.common.ui.source_* \
eclipse/plugins/org.eclipse.gmf.runtime.common.ui.action.source_* \
eclipse/plugins/org.eclipse.gmf.runtime.common.ui.action.ide.source_* \
eclipse/plugins/org.eclipse.gmf.runtime.common.ui.services.source_* \
eclipse/plugins/org.eclipse.gmf.runtime.common.ui.services.action.source_* \
eclipse/plugins/org.eclipse.gmf.runtime.common.ui.services.dnd.source_* \
eclipse/plugins/org.eclipse.gmf.runtime.common.ui.services.dnd.ide.source_* \
eclipse/plugins/org.eclipse.gmf.runtime.common.ui.services.properties.source_* \
eclipse/plugins/org.eclipse.gmf.runtime.diagram.core.source_* \
eclipse/plugins/org.eclipse.gmf.runtime.diagram.ui.source_* \
eclipse/plugins/org.eclipse.gmf.runtime.diagram.ui.actions.source_* \
eclipse/plugins/org.eclipse.gmf.runtime.diagram.ui.dnd.source_* \
eclipse/plugins/org.eclipse.gmf.runtime.diagram.ui.geoshapes.source_* \
eclipse/plugins/org.eclipse.gmf.runtime.diagram.ui.properties.source_* \
eclipse/plugins/org.eclipse.gmf.runtime.diagram.ui.providers.source_* \
eclipse/plugins/org.eclipse.gmf.runtime.diagram.ui.providers.ide.source_* \
eclipse/plugins/org.eclipse.gmf.runtime.diagram.ui.render.source_* \
eclipse/plugins/org.eclipse.gmf.runtime.diagram.ui.resources.editor.source_* \
eclipse/plugins/org.eclipse.gmf.runtime.diagram.ui.resources.editor.ide.source_* \
eclipse/plugins/org.eclipse.gmf.runtime.draw2d.ui.source_* \
eclipse/plugins/org.eclipse.gmf.runtime.draw2d.ui.render.source_* \
eclipse/plugins/org.eclipse.gmf.runtime.draw2d.ui.render.awt.source_* \
eclipse/plugins/org.eclipse.gmf.runtime.emf.clipboard.core.source_* \
eclipse/plugins/org.eclipse.gmf.runtime.emf.commands.core.source_* \
eclipse/plugins/org.eclipse.gmf.runtime.emf.core.source_* \
eclipse/plugins/org.eclipse.gmf.runtime.emf.type.core.source_* \
eclipse/plugins/org.eclipse.gmf.runtime.emf.type.ui.source_* \
eclipse/plugins/org.eclipse.gmf.runtime.emf.ui.source_* \
eclipse/plugins/org.eclipse.gmf.runtime.emf.ui.properties.source_* \
eclipse/plugins/org.eclipse.gmf.runtime.gef.ui.source_* \
eclipse/plugins/org.eclipse.gmf.runtime.notation.providers.source_* \
eclipse/plugins/org.eclipse.gmf.source_* \
eclipse/plugins/org.eclipse.gmf.runtime.common.ui.printing.source_* \
eclipse/plugins/org.eclipse.gmf.runtime.common.ui.printing.win32.source_* \
eclipse/plugins/org.eclipse.gmf.runtime.diagram.ui.printing.source_* \
eclipse/plugins/org.eclipse.gmf.runtime.diagram.ui.printing.render.source_* \
eclipse/features/org.eclipse.gmf.runtime.thirdparty.source_* \
eclipse/plugins/org.apache.batik.dom.svg.source_* \
eclipse/plugins/org.apache.batik.bridge.source_* \
eclipse/plugins/org.apache.batik.dom.source_* \
eclipse/plugins/org.apache.batik.ext.awt.source_* \
eclipse/plugins/org.apache.batik.transcoder.source_* \
eclipse/plugins/org.apache.batik.svggen.source_* \
eclipse/plugins/org.apache.batik.util.source_* \
eclipse/plugins/org.w3c.dom.svg.source_* \
eclipse/plugins/org.apache.xerces.source_* \
eclipse/plugins/org.apache.xml.resolver.source_* \
eclipse/plugins/org.apache.batik.css.source_* \
eclipse/plugins/org.apache.batik.util.gui.source_* \
eclipse/plugins/org.apache.batik.parser.source_* \
eclipse/plugins/org.apache.batik.xml.source_* \
eclipse/plugins/org.w3c.css.sac.source_* \
eclipse/plugins/org.w3c.dom.smil.source_* \
eclipse/plugins/javax.xml.source_* \
eclipse/plugins/org.apache.xml.serializer.source_* \
eclipse/plugins/org.apache.batik.pdf.source_* \
eclipse/plugins/org.w3c.dom.events.source_* \
eclipse/features/org.eclipse.gmf.runtime.notation.source_* \
eclipse/plugins/org.eclipse.gmf.runtime.notation.source_* \
eclipse/plugins/org.eclipse.gmf.runtime.notation.edit.source_* \
eclipse/features/org.eclipse.gmf.runtime.notation.sdk_* \
eclipse/plugins/org.eclipse.gmf.runtime.notation.sdk_* \
eclipse/features/org.eclipse.gmf.runtime.sdk_* \
eclipse/plugins/org.eclipse.gmf.runtime.sdk_* \
eclipse/features/org.eclipse.gmf.examples.runtime.ui.pde_* \
eclipse/plugins/org.eclipse.gmf.examples.runtime.ui.pde_*
md5sum ../$localDropDir/gmf-sdk-runtime-$version.zip > ../$localDropDir/gmf-sdk-runtime-$version.zip.md5
echo "`date +%Y-%m-%d-%H:%M:%S` Created gmf-sdk-runtime-$version.zip"
# gmf-runtime examples
zip -r ../$localDropDir/gmf-examples-runtime-$version.zip \
eclipse/features/org.eclipse.gmf.examples.runtime_* \
eclipse/plugins/org.eclipse.gmf.examples.runtime_* \
eclipse/plugins/org.eclipse.gmf.examples.runtime.common.service_* \
eclipse/plugins/org.eclipse.gmf.examples.runtime.diagram.decorator_* \
eclipse/plugins/org.eclipse.gmf.examples.runtime.diagram.layout_* \
eclipse/plugins/org.eclipse.gmf.examples.runtime.emf.clipboard_* \
eclipse/plugins/org.eclipse.gmf.examples.runtime.diagram.geoshapes_* \
eclipse/plugins/org.eclipse.gmf.examples.runtime.diagram.logic_* \
eclipse/plugins/org.eclipse.gmf.examples.runtime.diagram.logic.model_* \
eclipse/plugins/org.eclipse.gmf.examples.runtime.diagram.logic.model.edit_* \
eclipse/plugins/org.eclipse.gmf.examples.runtime.diagram.logic.model.editor_*
md5sum ../$localDropDir/gmf-examples-runtime-$version.zip > ../$localDropDir/gmf-examples-runtime-$version.zip.md5
echo "`date +%Y-%m-%d-%H:%M:%S` Created gmf-examples-runtime-$version.zip"
# gmf-runtime automated-tests
zip -r ../$localDropDir/gmf-tests-runtime-$version.zip \
eclipse/features/org.eclipse.gmf.tests.runtime_* \
eclipse/plugins/org.eclipse.gmf.tests.runtime.common.core_* \
eclipse/plugins/org.eclipse.gmf.tests.runtime.common.ui_* \
eclipse/plugins/org.eclipse.gmf.tests.runtime.common.ui.services_* \
eclipse/plugins/org.eclipse.gmf.tests.runtime.common.ui.services.action_* \
eclipse/plugins/org.eclipse.gmf.tests.runtime.common.ui.services.provider_* \
eclipse/plugins/org.eclipse.gmf.tests.runtime.diagram.ui_* \
eclipse/plugins/org.eclipse.gmf.tests.runtime.draw2d.ui_* \
eclipse/plugins/org.eclipse.gmf.tests.runtime.draw2d.ui.render_* \
eclipse/plugins/org.eclipse.gmf.tests.runtime.emf.clipboard.core_* \
eclipse/plugins/org.eclipse.gmf.tests.runtime.emf.commands.core_* \
eclipse/plugins/org.eclipse.gmf.tests.runtime.emf.core_* \
eclipse/plugins/org.eclipse.gmf.tests.runtime.emf.type.core_* \
eclipse/plugins/org.eclipse.gmf.tests.runtime.emf.type.ui_* \
eclipse/plugins/org.eclipse.gmf.tests.runtime.emf.ui_* \
eclipse/plugins/org.eclipse.gmf.tests.runtime.emf.ui.properties_* \
eclipse/plugins/org.eclipse.gmf.tests.runtime-feature_* \
eclipse/plugins/org.eclipse.gmf.tests.runtime.gef.ui_*
md5sum ../$localDropDir/gmf-tests-runtime-$version.zip > ../$localDropDir/gmf-tests-runtime-$version.zip.md5
echo "`date +%Y-%m-%d-%H:%M:%S` Created gmf-tests-runtime-$version.zip"
cd $tmpDir
cd $stagedUpdateSite
zip -r ../../../$localDropDir/gmf-runtime-Update-$version.zip features plugins binary artifacts.jar content.jar
md5sum ../../../$localDropDir/gmf-runtime-Update-$version.zip > ../../../$localDropDir/gmf-runtime-Update-$version.zip.md5
echo "`date +%Y-%m-%d-%H:%M:%S` Created gmf-runtime-Update-Site-$version.zip"
cd $tmpDir
#generating build.cfg file to be referenced from downloads web page
echo "hudson.job.name=${JOB_NAME}" > $localDropDir/build.cfg
echo "hudson.job.id=${BUILD_NUMBER} (${jobDir##*/})" >> $localDropDir/build.cfg
echo "hudson.job.url=${BUILD_URL}" >> $localDropDir/build.cfg
remoteDropDir=/home/data/httpd/download.eclipse.org/modeling/gmp/gmf-runtime/downloads/$localDropDir
mkdir -p $remoteDropDir
cp -R $localDropDir/* $remoteDropDir/
echo "`date +%Y-%m-%d-%H:%M:%S` Published drop files in local directory $tmpDir/$localDropDir to $remoteDropDir"
# Ensure p2.mirrorURLs property is used in update site
echo "`date +%Y-%m-%d-%H:%M:%S` Setting p2.mirrorsURL to http://www.eclipse.org/downloads/download.php?format=xml&file=/$remoteUpdateSiteBase"
./eclipse/eclipse -nosplash --launcher.suppressErrors -clean -debug -application org.eclipse.wtp.releng.tools.addRepoProperties -vmargs -DartifactRepoDirectory=$PWD/$stagedUpdateSite -Dp2MirrorsURL="http://www.eclipse.org/downloads/download.php?format=xml&file=/$remoteUpdateSiteBase"
# Create p2.index file
if [ ! -e "$stagedUpdateSite/p2.index" ]; then
echo "`date +%Y-%m-%d-%H:%M:%S` Creating p2.index file"
echo "version = 1" > $stagedUpdateSite/p2.index
echo "metadata.repository.factory.order = content.xml,\!" >> $stagedUpdateSite/p2.index
echo "artifact.repository.factory.order = artifacts.xml,\!" >> $stagedUpdateSite/p2.index
fi
# Create the composite update site
echo "`date +%Y-%m-%d-%H:%M:%S` Create the composite update site repository file and add ${dropDir}."
cat > p2.composite.repository.xml <<EOF
<?xml version="1.0" encoding="UTF-8"?>
<project name="p2 composite repository">
<target name="default">
<p2.composite.repository>
<repository compressed="true" location="${remoteUpdateSite}" name="${JOB_NAME}"/>
<add>
<repository location="${dropDir}"/>
</add>
</p2.composite.repository>
</target>
</project>
EOF
# Backup then clean remote update site
if [ -d "$remoteUpdateSite" ]; then
echo "`date +%Y-%m-%d-%H:%M:%S` Add existing update sites to the composite update site repository file."
for existingDropDir in `find ${remoteUpdateSite}/ -mindepth 1 -maxdepth 1 -type d` ; do
addExistingDropDir=$(basename $existingDropDir)
echo "`date +%Y-%m-%d-%H:%M:%S` Add ${addExistingDropDir}."
addRepositoryLocation="<repository location=\"${addExistingDropDir}\"/>"
sed -i "/<add>/a\
${addRepositoryLocation}" p2.composite.repository.xml
done
fi
echo "`date +%Y-%m-%d-%H:%M:%S` Publishing local $stagedUpdateSite directory to remote update site $remoteUpdateSite/$dropDir"
mkdir -p $remoteUpdateSite
cp -R $stagedUpdateSite $remoteUpdateSite
echo "`date +%Y-%m-%d-%H:%M:%S` Update the composite update site"
./eclipse/eclipse -nosplash --launcher.suppressErrors -clean -debug -application org.eclipse.ant.core.antRunner -buildfile p2.composite.repository.xml default
# Clean up
echo "`date +%Y-%m-%d-%H:%M:%S` Cleaning up"
#rm -fr eclipse
#rm -fr update-site