#!/bin/bash -e

# exit on errors
set -eu -o pipefail

# set up ONOS build environment
ONOS_ROOT=`pwd`
. tools/build/envDefaults

PATH=$PATH:/home/jenkins/bin

# import GPG key
gpg --import jenkins.key

# set up release build credentials
. onos-build-credentials

# configure git settings
git config user.email "jenkins@onlab.us"
git config user.name "ONOS Jenkins User"

# install boto
pip install -U boto

# stage the maven settings
mkdir -p ~/.m2
mv settings.xml ~/.m2/settings.xml

# stage and add the build SSH key
chmod 600 id_rsa.pub
ssh-add id_rsa.pub

# Add the javadoc server to the list of known hosts
ssh-keyscan -H -t rsa api.onosproject.org >>~/.ssh/known_hosts

# set user to use for uploading javadocs
WIKI_USER="jenkins"
export WIKI_USER

# lock gerrit to prevent checkins
ssh -p 29418 gerrit.onosproject.org projectlock lock onos ${GERRIT_BRANCH}

# unlock on exit
trap "ssh -p 29418 gerrit.onosproject.org projectlock unlock onos ${GERRIT_BRANCH}" EXIT

# get the sources
git checkout $GERRIT_BRANCH

# run the build
onos-build-and-upload ${ONOS_VERSION} ${ONOS_NEXT_VERSION} ${GERRIT_BRANCH}
