diff --git a/releng/org.eclipse.emf.compare.releng/publish-milestone.sh b/releng/org.eclipse.emf.compare.releng/publish-milestone.sh
new file mode 100644
index 0000000..cb17901
--- /dev/null
+++ b/releng/org.eclipse.emf.compare.releng/publish-milestone.sh
@@ -0,0 +1,93 @@
+#!/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
+# ====================================================================
+
+# 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"
+MILESTONES_FOLDER="/home/data/httpd/download.eclipse.org/modeling/emf/compare/updates/milestones"
+DROPS_FOLDER="/home/data/httpd/download.eclipse.org/modeling/emf/compare/downloads/drops"
+ZIP_PREFIX="emf-compare-update-"
+GROUP="modeling.emfcompare"
+
+if [[ ! ${QUALIFIER} =~ ^[0-9]\.[0-9]\.[0-9]+\.[0-9]{12}$ ]]
+then
+  echo "$QUALIFIER doesn't match the expect format x.x.x.yyyyMMddhhmm"
+  exit 1
+fi
+
+if ssh ${SSH_ACCOUNT} "[ ! -d ${NIGHTLIES_FOLDER}/${QUALIFIER} ]"
+then
+  echo "couldn't find build with qualifier $QUALIFIER in the promoted nightlies"
+  exit 1
+fi
+
+echo "promoting build $QUALIFIER as milestone $ALIAS"
+
+IFS=. read MAJOR MINOR MICRO TIMESTAMP <<<"${QUALIFIER}"
+
+VERSION_SHORT=${MAJOR}.${MINOR}
+VERSION=${MAJOR}.${MINOR}.${MICRO}
+
+UPDATE_ROOT_COMPOSITE=false
+if ssh ${SSH_ACCOUNT} "[ ! -d ${MILESTONES_FOLDER}/${VERSION_SHORT} ]"
+then
+  UPDATE_ROOT_COMPOSITE=true
+fi
+
+ssh ${SSH_ACCOUNT} << EOSSH
+  if ${UPDATE_ROOT_COMPOSITE}
+  then
+    mkdir -p ${MILESTONES_FOLDER}/${VERSION_SHORT}
+    chgrp ${GROUP} ${MILESTONES_FOLDER}/${VERSION_SHORT}
+  fi
+  
+  ## copy the nightly to its "milestones" location
+  cp -r ${NIGHTLIES_FOLDER}/${QUALIFIER} ${MILESTONES_FOLDER}/${VERSION_SHORT}/S${TIMESTAMP}
+  chgrp -R ${GROUP} ${MILESTONES_FOLDER}/${VERSION_SHORT}/S${TIMESTAMP}
+
+  ## Create a compressed archive of this repository and place it in the drops folder
+  if [ ! -d ${DROPS_FOLDER}/${VERSION} ]
+  then
+    mkdir -p ${DROPS_FOLDER}/${VERSION}
+    chgrp ${GROUP} ${DROPS_FOLDER}/${VERSION}
+  fi
+
+  mkdir -p ${DROPS_FOLDER}/${VERSION}/S${TIMESTAMP}
+  pushd ${MILESTONES_FOLDER}/${VERSION_SHORT}/S${TIMESTAMP}
+    zip -2 -r ${DROPS_FOLDER}/${VERSION}/S${TIMESTAMP}/${ZIP_PREFIX}${ALIAS}.zip *
+  popd
+  md5sum ${DROPS_FOLDER}/${VERSION}/S${TIMESTAMP}/${ZIP_PREFIX}${ALIAS}.zip > ${DROPS_FOLDER}/${VERSION}/S${TIMESTAMP}/${ZIP_PREFIX}${ALIAS}.zip.md5
+  chgrp -R ${GROUP} ${DROPS_FOLDER}/${VERSION}/S${TIMESTAMP}
+
+  ## Create the p2.index file for this milestone
+cat <<EOF >${MILESTONES_FOLDER}/${VERSION_SHORT}/S${TIMESTAMP}/p2.index
+version = 1
+metadata.repository.factory.order = compositeContent.xml,\!
+artifact.repository.factory.order = compositeArtifacts.xml,\!
+EOF
+  chgrp -R ${GROUP} ${MILESTONES_FOLDER}/${VERSION_SHORT}/S${TIMESTAMP}/p2.index
+EOSSH
+
+## Update the composite update site with this new child
+
+#cd ${MILESTONES_FOLDER}/${VERSION_SHORT}
+#/shared/common/apache-ant-latest/bin/ant -f /shared/modeling/tools/promotion/manage-composite.xml add -Dchild.repository=S${TIMESTAMP}
+
+#if [ "$UPDATE_ROOT_COMPOSITE" = true ]
+#then
+#  cd ${MILESTONES_FOLDER}
+#  /shared/common/apache-ant-latest/bin/ant -f /shared/modeling/tools/promotion/manage-composite.xml add -Dchild.repository=${VERSION_SHORT}
+#fi
\ No newline at end of file
