#!/bin/bash -ex
# -----------------------------------------------------------------------------
# Builds the release bits and uploads them.
# -----------------------------------------------------------------------------

set -e -o pipefail

VERSION=$1
NEXT_VERSION=$2
BRANCH=$3
DRY_RUN=$4

dryRun=0
if [ "${DRY_RUN}" == "--dry-run" ]; then
    dryRun=1
fi

# fix version strings, build artifacts, upload artifacts
onos-release $VERSION $DRY_RUN

if [ $dryRun -eq 0 ]; then
    # prepare docs
    onos-prepare-docs

    # spot check that uploaded artifacts are correct
    # TODO - implement this for bazel
    # check-uploaded-maven-artifacts  $VERSION $ONOS_ROOT https://oss.sonatype.org/content/groups/staging

    # set the version strings to the next version
    onos-snapshot ${NEXT_VERSION}

    # Push version string changes to git
    git push origin ${BRANCH}

    # Push tag for this build to git
    git push origin ${VERSION}
fi
