#!/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

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
