#!/bin/bash
# -----------------------------------------------------------------------------
# Builds an ONOS release
# -----------------------------------------------------------------------------

if [ $# -ne 3  -a $# -ne 4 ]; then
    echo "Usage: onos-build-release branch version next-version [--dry-run]"
    echo "For example, to build rc2 on the 1.8 branch - onos-build-release onos-1.8 1.8.0-rc2 1.8.0-SNAPSHOT"
    exit 1
fi

if [ $# -eq 4 -a "${4}" != "--dry-run" ]; then
    echo "$4 is an invalid parameter - only --dry-run allowed"
    exit 1
fi

BRANCH=$1
VERSION=$2
NEXT_VERSION=$3
DRY_RUN=$4

set -e
set -x

IS_DRY_RUN=0
if [ "${DRY_RUN}" == "--dry-run" ]; then
    IS_DRY_RUN=1
fi

# Check that environment setup is correct
# onos-release-prerequisites ${DRY_RUN}

if [ ${IS_DRY_RUN} -eq 0 ]; then
    # Block commits to Gerrit
    ssh -p 29418 gerrit.onosproject.org projectlock lock onos ${BRANCH}
fi

# Prepare the build tree
onos-prepare-release $VERSION $BRANCH "onos-build-and-upload $VERSION $NEXT_VERSION $BRANCH $DRY_RUN"

if [ ${IS_DRY_RUN} -eq 0 ]; then
    # Unblock commits
    ssh -p 29418 gerrit.onosproject.org projectlock unlock onos ${BRANCH}
fi
