mirror of
https://github.com/genuinetools/reg.git
synced 2024-08-21 06:10:23 -04:00
93 lines
2.3 KiB
Text
93 lines
2.3 KiB
Text
![]() |
#!/usr/bin/env bash
|
||
|
# Run integration tests against the latest docker-ce dind
|
||
|
set -eu -o pipefail
|
||
|
|
||
|
function container_ip {
|
||
|
local cid=$1
|
||
|
local network=$2
|
||
|
docker inspect \
|
||
|
-f "{{.NetworkSettings.Networks.${network}.IPAddress}}" "$cid"
|
||
|
}
|
||
|
|
||
|
function setup {
|
||
|
local project=$1
|
||
|
COMPOSE_PROJECT_NAME=$1 COMPOSE_FILE=$2 docker-compose up -d >&2
|
||
|
|
||
|
local network="${project}_default"
|
||
|
# TODO: only run if inside a container
|
||
|
docker network connect "$network" "$(hostname)"
|
||
|
|
||
|
engine_ip="$(container_ip "${project}_engine_1" "$network")"
|
||
|
engine_host="tcp://$engine_ip:2375"
|
||
|
(
|
||
|
export DOCKER_HOST="$engine_host"
|
||
|
timeout -t 200 ./scripts/test/e2e/wait-on-daemon
|
||
|
./scripts/test/e2e/load-alpine
|
||
|
./scripts/test/e2e/load-busybox
|
||
|
is_swarm_enabled || docker swarm init
|
||
|
) >&2
|
||
|
echo "$engine_host"
|
||
|
}
|
||
|
|
||
|
function is_swarm_enabled {
|
||
|
docker info 2> /dev/null | grep -q 'Swarm: active'
|
||
|
}
|
||
|
|
||
|
function cleanup {
|
||
|
COMPOSE_PROJECT_NAME=$1 COMPOSE_FILE=$2 docker-compose down -v >&2
|
||
|
}
|
||
|
|
||
|
function runtests {
|
||
|
local engine_host=$1
|
||
|
|
||
|
# TODO: only run if inside a container
|
||
|
update-ca-certificates
|
||
|
# shellcheck disable=SC2086
|
||
|
env -i \
|
||
|
TEST_DOCKER_HOST="$engine_host" \
|
||
|
GOPATH="$GOPATH" \
|
||
|
PATH="$PWD/build/" \
|
||
|
"$(which go)" test -v ./e2e/... ${TESTFLAGS-}
|
||
|
}
|
||
|
|
||
|
export unique_id="${E2E_UNIQUE_ID:-cliendtoendsuite}"
|
||
|
compose_env_file=./e2e/compose-env.yaml
|
||
|
|
||
|
cmd=${1-}
|
||
|
|
||
|
case "$cmd" in
|
||
|
setup)
|
||
|
setup "$unique_id" "$compose_env_file"
|
||
|
exit
|
||
|
;;
|
||
|
cleanup)
|
||
|
cleanup "$unique_id" "$compose_env_file"
|
||
|
exit
|
||
|
;;
|
||
|
test)
|
||
|
engine_host=${2-}
|
||
|
if [[ -z "${engine_host}" ]]; then
|
||
|
echo "missing parameter docker engine host"
|
||
|
echo "Usage: $0 test ENGINE_HOST"
|
||
|
exit 3
|
||
|
fi
|
||
|
runtests "$engine_host"
|
||
|
;;
|
||
|
run|"")
|
||
|
engine_host="$(setup "$unique_id" "$compose_env_file")"
|
||
|
testexit=0
|
||
|
runtests "$engine_host" || testexit=$?
|
||
|
cleanup "$unique_id" "$compose_env_file"
|
||
|
exit $testexit
|
||
|
;;
|
||
|
shell)
|
||
|
$SHELL
|
||
|
;;
|
||
|
*)
|
||
|
echo "Unknown command: $cmd"
|
||
|
echo "Usage: "
|
||
|
echo " $0 [setup | cleanup | test | run] [engine_host]"
|
||
|
exit 1
|
||
|
;;
|
||
|
esac
|