#!/bin/bash # check if a debug package exist in the current folder if ! ls ./cameradar_*_Debug_Linux.tar.gz 1> /dev/null 2>&1; then (echo "no debug package in the current folder"; exit 137) exit 137 fi cams_name_pattern="fake_camera_" cmd="" function make_docker_command { cmd="docker run --rm" # start cameras for (( i=1; i<=$1; i++ )); do name="$cams_name_pattern$i" cmd="$cmd --link=\"$name\"" done # add mysql link cmd="$cmd --link=\"cameradar-database\"" # add cameradar sources cmd="$cmd -v \"$(pwd)/src:/go/src/cameradartest\"" # add cameradar testing volume cmd="$cmd -v \"$(pwd)/:/tmp/tests\"" # add cameradar shared volume cmd="$cmd -v \"$(pwd)/:/tmp/shared\"" # add container name cmd="$cmd cameradartest" } function start_test { # Generate all cameras ./docker/gen_cameras.sh start $1 ./docker/cameratest.conf.tmpl.json # Prepare docker command make_docker_command $1 # Launch docker command eval $cmd # Get its return ret=$? # Stop all camera containers ./docker/gen_cameras.sh stop return $ret } echo "building docker images" # building fake-camera container docker build --no-cache -f Dockerfile-camera -t fake-camera . # building cameradartest image docker build --no-cache -t cameradartest . # getting mysql echo "starting mysql" docker pull mysql:5.7 docker run --name cameradar-database -e MYSQL_DATABASE=cmrdr -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7 start_test 5 ret=$? echo "Tests returned ${ret}" # stop mysql echo "stopping mysql" docker rm -f cameradar-database exit $ret