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

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

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

set -e
set -x

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

if [ $dryRun -eq 0 ]; then
    # upload docs
    onos-upload-docs ${WIKI_USER}

    # upload release bits
    onos-upload-bits

    # spot check that uploaded artifacts are correct
    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
