# OCL 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=${buildType}
PUBLISH__DOWNLOADS_SH=${env.JOB_URL}${env.BUILD_NUMBER}/artifact/releng/org.eclipse.ocl.releng.build-site/target/downloads.sh
PUBLISH__JAVADOC=${env.JOB_URL}${env.BUILD_NUMBER}/artifact/releng/org.eclipse.ocl.releng.build-site/target/OCL-javadoc.zip
PUBLISH__PDFDOC=${env.JOB_URL}${env.BUILD_NUMBER}/artifact/releng/org.eclipse.ocl.releng.build-site/target/ocl.pdf
PUBLISH__QUALIFIER=${buildId}
PUBLISH__UPDATES_SH=${env.JOB_URL}${env.BUILD_NUMBER}/artifact/releng/org.eclipse.ocl.releng.build-site/target/updates.sh
PUBLISH__URL=${env.JOB_URL}${env.BUILD_NUMBER}/artifact/releng/org.eclipse.ocl.releng.build-site/target/${project.groupId}-${unqualifiedVersion}.${buildId}.zip
PUBLISH__VERSION=${unqualifiedVersion}
