# QVTd publisher properties for use by the promoter job:
#
# rm -f downloads.sh updates.sh
# curl -s -k ${PUBLISH__DOWNLOADS_SH} > downloads.sh
# curl -s -k ${PUBLISH__UPDATES_SH} > updates.sh
# chmod +x downloads.sh updates.sh
# bash -ex downloads.sh
# bash -ex updates.sh
#
PUBLISH__ALIAS=${BUILD_ALIAS}
PUBLISH__BUILD_T=${BUILD_T}
PUBLISH__DOWNLOADS_SH=${env.JOB_URL}${env.BUILD_NUMBER}/artifact/releng/org.eclipse.qvtd.releng.build-site/target/downloads.sh
PUBLISH__QUALIFIER=${buildQualifier}
PUBLISH__UPDATES_SH=${env.JOB_URL}${env.BUILD_NUMBER}/artifact/releng/org.eclipse.qvtd.releng.build-site/target/updates.sh
PUBLISH__URL=${env.JOB_URL}${env.BUILD_NUMBER}/artifact/releng/org.eclipse.qvtd.releng.build-site/target/${project.groupId}-${unqualifiedVersion}.${buildQualifier}.zip
PUBLISH__VERSION=${unqualifiedVersion}
