| #!/usr/bin/env bash |
| |
| set -ex |
| |
| export PATH="$PATH:/snap/bin" |
| |
| # Grab the action parameter values |
| FOCUS=$(action-get focus) |
| SKIP=$(action-get skip) |
| PARALLELISM=$(action-get parallelism) |
| |
| if [ ! -f /home/ubuntu/.kube/config ] |
| then |
| action-fail "Missing Kubernetes configuration." |
| action-set suggestion="Relate to the certificate authority, and kubernetes-master" |
| exit 0 |
| fi |
| |
| # get the host from the config file |
| SERVER=$(cat /home/ubuntu/.kube/config | grep server | sed 's/ server: //') |
| |
| ACTION_HOME=/home/ubuntu |
| ACTION_LOG=$ACTION_HOME/${JUJU_ACTION_UUID}.log |
| ACTION_LOG_TGZ=$ACTION_LOG.tar.gz |
| ACTION_JUNIT=$ACTION_HOME/${JUJU_ACTION_UUID}-junit |
| ACTION_JUNIT_TGZ=$ACTION_JUNIT.tar.gz |
| |
| # This initializes an e2e build log with the START TIMESTAMP. |
| echo "JUJU_E2E_START=$(date -u +%s)" | tee $ACTION_LOG |
| echo "JUJU_E2E_VERSION=$(kubectl version | grep Server | cut -d " " -f 5 | cut -d ":" -f 2 | sed s/\"// | sed s/\",//)" | tee -a $ACTION_LOG |
| GINKGO_ARGS="-nodes=$PARALLELISM" kubernetes-test.e2e \ |
| -kubeconfig /home/ubuntu/.kube/config \ |
| -host $SERVER \ |
| -ginkgo.focus $FOCUS \ |
| -ginkgo.skip "$SKIP" \ |
| -report-dir $ACTION_JUNIT 2>&1 | tee -a $ACTION_LOG |
| |
| # This appends the END TIMESTAMP to the e2e build log |
| echo "JUJU_E2E_END=$(date -u +%s)" | tee -a $ACTION_LOG |
| |
| # set cwd to /home/ubuntu and tar the artifacts using a minimal directory |
| # path. Extracing "home/ubuntu/1412341234/foobar.log is cumbersome in ci |
| cd $ACTION_HOME/${JUJU_ACTION_UUID}-junit |
| tar -czf $ACTION_JUNIT_TGZ * |
| cd .. |
| tar -czf $ACTION_LOG_TGZ ${JUJU_ACTION_UUID}.log |
| |
| action-set log="$ACTION_LOG_TGZ" |
| action-set junit="$ACTION_JUNIT_TGZ" |
| |
| if tail ${JUJU_ACTION_UUID}.log | grep -q "Test Suite Failed"; then |
| action-fail "Failure detected in the logs" |
| fi |