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

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

export NEW_VERSION=$1
[ -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

# Build ONOS & deploy to staging repo using the release profile.
onos-build && onos-package && 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.
cd tools/package/archetypes/
mvn clean install && onos-archetypes-test && mvn -Prelease clean deploy

# 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?
