#!/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-app-all-${ONOS_VERSION}
}

trap cleanup EXIT

# grab a cell to run on
cell borrow 120 1+1 jenkins-app-all-${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 app-activate-all 
