#!/bin/bash set -euo pipefail project_root_dir="$(cd "$(dirname "$0")/.." && pwd -P)" work_dir="/workplace/aws-node-termination-handler" container_name="nth_unit_test_on_linux" deps="go,git,make" recreate=0 usage=$(cat <&2 exit ;; esac done echo "unit tests will be run in docker container named $container_name" if [[ $recreate -eq 1 ]]; then docker container rm "$container_name" >/dev/null 2>&1 || true fi if ! [[ -n $(docker container ls -a | grep "$container_name") ]]; then echo "creating container ..." IFS=',' read -ra deps <<< "$deps" echo "dependencies to install: ${deps[*]}" docker container create \ --name "$container_name" \ --volume "$project_root_dir:$work_dir" \ --env GOPROXY=direct \ --env GO111MODULE=auto \ --workdir "$work_dir" \ --init \ alpine:latest \ sh -c "apk add ${deps[*]} && make clean unit-test" echo "container created" else echo "container exists" fi echo "running unit tests ..." docker container start --attach "$container_name"