blob: ee5137c9237ca6aae51cb7cbcff595bce3c221af [file] [log] [blame]
#!/bin/sh
# ====================================================================
# Copyright (c) 2021 Obeo
# This program and the accompanying materials
# are made available under the terms of the Eclipse Public License 2.0
# which accompanies this distribution, and is available at
# https://www.eclipse.org/legal/epl-2.0
#
# Contributors:
# Obeo - initial API and implementation
# ====================================================================
if [ ${REFERENCE_TARGET_PLATFORM} != ${PLATFORM} ]; then
exit 0
fi
# Exit on error
set -e
# The SSH account to use
export SSH_ACCOUNT="genie.emfcompare@projects-storage.eclipse.org"
NIGHTLIES_FOLDER="/home/data/httpd/download.eclipse.org/modeling/emf/compare/updates/nightly"
GROUP="modeling.emfcompare"
CORE_UPDATE_FOLDER=${WORKSPACE}/packaging/org.eclipse.emf.compare.update/target
EXTRAS_UPDATE_FOLDER=${WORKSPACE}/packaging/org.eclipse.emf.compare.update.extras/target
CORE_UPDATE_ZIP="$(ls ${CORE_UPDATE_FOLDER}/org.eclipse.emf.compare-*.zip | sort -V | tail -n1)"
EXTRAS_UPDATE_ZIP="$(ls ${EXTRAS_UPDATE_FOLDER}/org.eclipse.emf.compare.extras-*.zip | sort -V | tail -n1)"
CORE_ZIP_NAME=$(echo ${CORE_UPDATE_ZIP} | sed 's/.*\(org.eclipse.emf.compare-.*.zip\)$/\1/')
EXTRAS_ZIP_NAME=$(echo ${EXTRAS_UPDATE_ZIP} | sed 's/.*\(org.eclipse.emf.compare.extras-.*.zip\)$/\1/')
QUALIFIER=$(echo ${CORE_UPDATE_ZIP} | sed 's/.*org.eclipse.emf.compare-\(.*\).zip$/\1/')
P2_TIMESTAMP=$(date +"%s000")
ssh "${SSH_ACCOUNT}" mkdir -p ${NIGHTLIES_FOLDER}/${QUALIFIER}
scp -rp ${CORE_UPDATE_ZIP} ${EXTRAS_UPDATE_ZIP} "${SSH_ACCOUNT}:${NIGHTLIES_FOLDER}/${QUALIFIER}"
# make a composite with both "core" and "extras" features
cat > compositeArtifacts.xml <<EOF
<?xml version='1.0' encoding='UTF-8'?>
<?compositeArtifactRepository version='1.0.0'?>
<repository name='Eclipse EMF Compare ${QUALIFIER}' type='org.eclipse.equinox.internal.p2.artifact.repository.CompositeArtifactRepository' version='1.0.0'>
<properties size='1'>
<property name='p2.timestamp' value='${P2_TIMESTAMP}'/>
</properties>
<children size='2'>
<child location='core'/>
<child location='extras'/>
</children>
</repository>
EOF
cat > compositeContent.xml <<EOF
<?xml version='1.0' encoding='UTF-8'?>
<?compositeMetadataRepository version='1.0.0'?>
<repository name='Eclipse EMF Compare ${QUALIFIER}' type='org.eclipse.equinox.internal.p2.metadata.repository.CompositeMetadataRepository' version='1.0.0'>
<properties size='1'>
<property name='p2.timestamp' value='${P2_TIMESTAMP}'/>
</properties>
<children size='2'>
<child location='core'/>
<child location='extras'/>
</children>
</repository>
EOF
# push this composite to the download area as well
scp -rp compositeArtifacts.xml compositeContent.xml "${SSH_ACCOUNT}:${NIGHTLIES_FOLDER}/${QUALIFIER}"
ssh "${SSH_ACCOUNT}" -T <<EOF
pushd ${NIGHTLIES_FOLDER}/${QUALIFIER}
unzip "${CORE_ZIP_NAME}" -d core/
unzip "${EXTRAS_ZIP_NAME}" -d extras/
rm ${CORE_ZIP_NAME}
rm ${EXTRAS_ZIP_NAME}
popd
# make sure permissions are update for the emfcompare group
chgrp -R ${GROUP} ${NIGHTLIES_FOLDER}/${QUALIFIER}
chmod -R g+w ${NIGHTLIES_FOLDER}/${QUALIFIER}
pushd ${NIGHTLIES_FOLDER}/latest
rm -r *
cp -r ../${QUALIFIER}/* .
popd
EOF