#!/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}

# FIXME: re-enable locking when projectlock will be added to new ONOS gerrit
#  or change the release process to tag a specific commit instead of the whole branch
#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"

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