# UML2 publisher properties for use by the promoter job:
#
# rm -f downloads.sh updates.sh publish.zip buildlog.txt
# curl -s ${PUBLISH__BUILD}/artifact/releng/org.eclipse.uml2.build-feature/target/downloads.sh > downloads.sh
# curl -s ${PUBLISH__BUILD}/artifact/releng/org.eclipse.uml2.build-feature/target/updates.sh > updates.sh
# curl -s ${PUBLISH__BUILD}/artifact/releng/org.eclipse.uml2.build-feature/target/org.eclipse.uml2-${PUBLISH__VERSION}.${PUBLISH__QUALIFIER}.zip > publish.zip
# curl -s ${PUBLISH__BUILD}/consoleText > buildlog.txt
# ssh genie.uml2@projects-storage.eclipse.org rm -f downloads.sh updates.sh publish.zip buildlog.txt
# scp downloads.sh genie.uml2@projects-storage.eclipse.org:downloads.sh
# scp updates.sh genie.uml2@projects-storage.eclipse.org:updates.sh
# scp publish.zip genie.uml2@projects-storage.eclipse.org:publish.zip
# scp buildlog.txt genie.uml2@projects-storage.eclipse.org:buildlog.txt
# ssh genie.uml2@projects-storage.eclipse.org chmod +x downloads.sh updates.sh
# ssh genie.uml2@projects-storage.eclipse.org bash -ex downloads.sh -b "'${PUBLISH__BUILD}'" -v "'${PUBLISH__VERSION}'" -t "'${PUBLISH__BUILD_TYPE}'" -q "'${PUBLISH__QUALIFIER}'" -a "'${PUBLISH__ALIAS}'"
# ssh genie.uml2@projects-storage.eclipse.org bash -ex updates.sh -b "'${PUBLISH__BUILD}'" -v "'${PUBLISH__VERSION}'" -t "'${PUBLISH__BUILD_TYPE}'" -q "'${PUBLISH__QUALIFIER}'"
#
PUBLISH__ALIAS=${BUILD_ALIAS}
PUBLISH__BUILD_TYPE=${BUILD_TYPE}
PUBLISH__QUALIFIER=${buildId}
PUBLISH__BUILD=${env.JOB_URL}${env.BUILD_NUMBER}
PUBLISH__VERSION=${unqualifiedVersion}
