#!/bin/bash -ex

# exit on errors
set -eu -o pipefail

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

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

# unlock on exit
trap "ssh -p 29418 gerrit.onosproject.org projectlock unlock onos master" EXIT

# get the sources
git checkout $GERRIT_BRANCH

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