# QVTd publisher properties for use by the promoter job:
#
# rm -f publish.sh
# curl -s ${PUBLISH__PUBLISH_SH} > publish.sh
# chmod +x publish.sh
# bash -ex publish.sh
#
PUBLISH__ALIAS=${BUILD_ALIAS}
PUBLISH__BUILD_T=${buildType}
PUBLISH__DOWNLOADS_SH=${env.JOB_URL}${env.BUILD_NUMBER}/artifact/releng/org.eclipse.qvtd.releng.build-site/target/downloads.sh
PUBLISH__PUBLISH_SH=${env.JOB_URL}${env.BUILD_NUMBER}/artifact/releng/org.eclipse.qvtd.releng.build-site/target/publish.sh
PUBLISH__QUALIFIER=${buildId}
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}.${buildId}.zip
PUBLISH__VERSION=${unqualifiedVersion}
