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