#!/bin/bash

# exit on errors
set -eu -o pipefail

# initialize build environment
ONOS_ROOT=`pwd`
. tools/build/envDefaults

# initialize development environment for STC
export JAVA_HOME=
. tools/dev/bash_profile

# Install bazel
curl -L -o bazel.sh https://github.com/bazelbuild/bazel/releases/download/0.15.2/bazel-0.15.2-installer-linux-x86_64.sh
chmod +x bazel.sh 
./bazel.sh --user
PATH=$PATH:/home/jenkins/bin

# always free the cell when exiting
function cleanup {
  cell return jenkins-${ONOS_VERSION}
}

trap cleanup EXIT

# grab a cell to run on
cell borrow 30 3+1 jenkins-${ONOS_VERSION}

# build onos bits
bazel build onos

# set up STC parameters
topo default
export stcDumpLogs="true"
export stcColor="false"
export stcHaltOnError="false"
export TERM="vt100"

# run STC
stc setup && stc net-trellis-hag-smoke
