#!/usr/bin/env /bin/bash
echo -e 'Sim Release Name:\t'${SIMREL_NAME}
echo -e 'Milestone:\t\t'${MILESTONE}
echo -e 'Version:\t\t'${VERSION_NUMBER}
set -e # error out on any failed commands
set -x # echo all commands used for debugging purposes
################################################################################
# Dry-run or not
################################################################################
ECHO=echo
if [ "$DRY_RUN" == "false" ]; then
ECHO=""
else
echo Dry run of build:
fi
################################################################################
# Validate job parameters
################################################################################
if [[ -z ${SIMREL_NAME} ]]
then
exit 1
fi
if [[ -z ${MILESTONE} ]]
then
exit 1
fi
if [[ -z ${VERSION_NUMBER} ]]
then
exit 1
fi
################################################################################
# Basic constants
################################################################################
SSH="ssh genie.tracecompass@projects-storage.eclipse.org"
BASE_DIR=/home/data/httpd/
TRACECOMPASS_DIR=${BASE_DIR}download.eclipse.org/tracecompass/
RELEASE_BASE_DIR=${TRACECOMPASS_DIR}${SIMREL_NAME}/
MILESTONE_BASE_DIR=${RELEASE_BASE_DIR}milestones/
SIMREL_STABLE_DIR=${RELEASE_BASE_DIR}stable/
SIMREL_STABLE_REPOSITORY_DIR=${SIMREL_STABLE_DIR}repository/
SIMREL_STABLE_RCP_DIR=${SIMREL_STABLE_DIR}rcp/
STABLE_DIR=${TRACECOMPASS_DIR}stable/
STABLE_RCP_DIR=${STABLE_DIR}rcp/
MASTER_ARTIFACTS_DIR=${TRACECOMPASS_DIR}master/
MASTER_REPOSITORY_DIR=${MASTER_ARTIFACTS_DIR}repository/
FINAL_RELEASE_DIR=${TRACECOMPASS_DIR}releases/${VERSION_NUMBER}/
FINAL_RELEASE_RCP_DIR=${FINAL_RELEASE_DIR}rcp/
MILESTONE_DIR=${MILESTONE_BASE_DIR}${MILESTONE}/
DOC_BASE_DIR=${BASE_DIR}archive.eclipse.org/tracecompass/doc/
DOC_NIGHTLY_DIR=${DOC_BASE_DIR}nightly/
DOC_STAGING_DIR=${DOC_BASE_DIR}stable/${SIMREL_NAME}/
DOC_RELEASE_DIR=${DOC_BASE_DIR}releases/${VERSION_NUMBER}/
RCP_INDEX_PHP=${TRACECOMPASS_DIR}scripts/rcp_index_php
################################################################################
# Create milestones and stable base directories
################################################################################
if [[ `${SSH} test -d ${MILESTONE_BASE_DIR} && echo exists` ]] ; then
echo "${MILESTONE_BASE_DIR} already exists"
else
$ECHO ${SSH} mkdir -p ${MILESTONE_BASE_DIR}
fi
if [[ `${SSH} test -d ${SIMREL_STABLE_DIR} && echo exists` ]] ; then
echo "${SIMREL_STABLE_DIR} already exists"
else
$ECHO ${SSH} mkdir -p ${SIMREL_STABLE_DIR}
fi
################################################################################
# Create simRel milestone or release directory
################################################################################
if [[ ${MILESTONE} =~ m[123] ]] || [[ ${MILESTONE} =~ rc[12] ]]; then
$ECHO ${SSH} mkdir -p ${MILESTONE_DIR}
elif [[ ${MILESTONE} == release ]]; then
$ECHO ${SSH} mkdir -p ${FINAL_RELEASE_DIR}
fi
################################################################################
# Copy files and directories
################################################################################
if [[ ${MILESTONE} =~ m[123] ]] || [[ ${MILESTONE} == rc1 ]]; then
$ECHO ${SSH} cp -r ${MASTER_REPOSITORY_DIR}* ${MILESTONE_DIR}
elif [[ ${MILESTONE} == rc2 ]]; then
$ECHO ${SSH} cp -r ${SIMREL_STABLE_REPOSITORY_DIR}* ${MILESTONE_DIR}
elif [[ ${MILESTONE} == release ]]; then
$ECHO ${SSH} cp -r ${SIMREL_STABLE_DIR}* ${FINAL_RELEASE_DIR}
fi
################################################################################
# - Create artifacts directory, if needed
# - Delete old artifacts directory content, if needed.
# - Save rcp, repository and rcp-repository in artifacts directory.
################################################################################
if [[ ${MILESTONE} == rc1 ]]; then
FROM_ARTIFACTS=${MASTER_ARTIFACTS_DIR}
TO_ARTIFACTS=${SIMREL_STABLE_DIR}
elif [[ ${MILESTONE} == release ]]; then
FROM_ARTIFACTS=${FINAL_RELEASE_DIR}
TO_ARTIFACTS=${STABLE_DIR}
fi
if [[ -n ${TO_ARTIFACTS} ]]; then
if [[ `${SSH} test -d ${TO_ARTIFACTS} && echo exists` ]] ; then
$ECHO ${SSH} rm -rf ${TO_ARTIFACTS}*
else
$ECHO ${SSH} mkdir -p ${TO_ARTIFACTS}
fi
$ECHO ${SSH} cp -r ${FROM_ARTIFACTS}r* ${TO_ARTIFACTS}
fi
################################################################################
# At rc1:
# - Create staging doc directory, if needed
# - Delete staging doc directory content, if needed.
# - Copy docs from nightly doc directory to staging doc directory
################################################################################
if [[ ${MILESTONE} == rc1 ]]; then
if [[ `${SSH} test -d ${DOC_STAGING_DIR} && echo exists` ]] ; then
$ECHO ${SSH} rm -rf ${DOC_STAGING_DIR}*
else
$ECHO ${SSH} mkdir -p ${DOC_STAGING_DIR}
fi
$ECHO ${SSH} cp -r ${DOC_NIGHTLY_DIR}org* ${DOC_STAGING_DIR}
$ECHO ${SSH} cp -r ${DOC_NIGHTLY_DIR}apidocs ${DOC_STAGING_DIR}
fi
################################################################################
# At release:
# - Create release doc directory, if needed
# - Delete release doc directory content, if needed.
# - Copy docs from staging doc directory to release doc directory
# - Delete staging doc directory
################################################################################
if [[ ${MILESTONE} == release ]]; then
if [[ `${SSH} test -d ${DOC_RELEASE_DIR} && echo exists` ]] ; then
$ECHO ${SSH} rm -rf ${DOC_RELEASE_DIR}*
else
$ECHO ${SSH} mkdir -p ${DOC_RELEASE_DIR}
fi
$ECHO ${SSH} cp -r ${DOC_STAGING_DIR}org* ${DOC_RELEASE_DIR}
$ECHO ${SSH} cp -r ${DOC_STAGING_DIR}apidocs ${DOC_RELEASE_DIR}
$ECHO ${SSH} rm -rf ${DOC_STAGING_DIR}
fi
################################################################################
# - Create config.php in RCP directory
# - Copy index.php to RCP directory
################################################################################
doIt="true"
if [[ ${MILESTONE} == rc1 ]]; then
TITLE[0]="Trace Compass Release Candidate"
RCP_DIR[0]=${SIMREL_STABLE_RCP_DIR}
elif [[ ${MILESTONE} == release ]]; then
TITLE[0]="Trace Compass Release ${VERSION_NUMBER}"
RCP_DIR[0]=${FINAL_RELEASE_RCP_DIR}
TITLE[1]="Trace Compass Latest Stable Version"
RCP_DIR[1]=${STABLE_RCP_DIR}
else
doit="false"
fi
if [ "$doIt" == "true" ]; then
for (( i = 0; i < ${#RCP_DIR[@]}; i++ )); do
$ECHO ${SSH} rm -rf ${RCP_DIR[i]}config.php
$ECHO ${SSH} "echo \"<?php \\\$title='${TITLE[i]}'; ?>\" > ${RCP_DIR[i]}config.php"
$ECHO ${SSH} cp ${RCP_INDEX_PHP} ${RCP_DIR[i]}/index.php
done
fi