#!/bin/bash
# -----------------------------------------------------------------------------
# Drives the ONOS release process.
# -----------------------------------------------------------------------------

[ ! -d "$ONOS_ROOT" ] && echo "ONOS_ROOT is not defined" >&2 && exit 1
. $ONOS_ROOT/tools/build/envDefaults

set -e

export NEW_VERSION=${1:-$ONOS_VERSION}
[ -z "$NEW_VERSION" ] && echo "New ONOS version not specified" && exit 1

export NEW_VERSION_SHORT=${NEW_VERSION%-SNAPSHOT}
[ "$NEW_VERSION" != "$NEW_VERSION_SHORT" ] && echo "Version is a SNAPSHOT" && exit 1;

cd $ONOS_ROOT

# TODO: Create a new branch for this activity?

# Change the version
onos-change-version $NEW_VERSION
export ONOS_VERSION=$NEW_VERSION

# Validate integrity of the versioning
onos-validate-change-version

# Build ONOS & deploy to staging repo using the release profile.
onos-build && onos-package --tar --zip && mvn -Prelease clean deploy -DskipTests

# Build ONOS docs
onos-build-docs

# Build ONOS archetypes & deploy to staging repo using the release profile.
# Note that release of the staging repository is a separate manual step.
pushd tools/package/archetypes/
mvn clean install && onos-archetypes-test && mvn -Prelease clean deploy
popd

# Commit newly versioned artifacts and issue a tag.
git commit -a -m"Tagging $NEW_VERSION"
git tag -sm"Tagging $NEW_VERSION" $NEW_VERSION #signed tag

# TODO: push?
