#!/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
[ -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.
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?
