Files
sablier/plugins/traefik/e2e/docker_swarm.sh
Alexis Couvreur 6cf69470ca fix(test): fix traefik docker swarm test
Rebase this commit
2022-11-02 23:15:06 -04:00

51 lines
1.3 KiB
Bash

#!/bin/bash
DOCKER_STACK_FILE=docker-stack.yml
DOCKER_STACK_NAME=DOCKER_SWARM_E2E
errors=0
echo "Using Docker version:"
docker version
prepare_docker_swarm() {
docker swarm init
}
prepare_docker_stack() {
docker stack deploy --compose-file $DOCKER_STACK_FILE ${DOCKER_STACK_NAME}
docker run --rm -it -v /var/run/docker.sock:/var/run/docker.sock sudobmitch/docker-stack-wait -t 60 ${DOCKER_STACK_NAME}
}
destroy_docker_stack() {
docker stack rm ${DOCKER_STACK_NAME}
# Sometimes, the network is not well cleaned up, see https://github.com/moby/moby/issues/30942#issuecomment-540699206
until [ -z "$(docker stack ps ${DOCKER_STACK_NAME} -q)" ]; do sleep 1; done
}
destroy_docker_swarm() {
docker swarm leave -f || true
}
run_docker_swarm_test() {
echo "Running Docker Swarm Test: $1"
prepare_docker_stack
sleep 10
go clean -testcache
if ! go test -count=1 -tags e2e -timeout 30s -run ^${1}$ github.com/acouvreur/sablier/e2e; then
errors=1
docker service logs ${DOCKER_STACK_NAME}_sablier
docker service logs ${DOCKER_STACK_NAME}_traefik
fi
destroy_docker_stack
}
trap destroy_docker_swarm EXIT
prepare_docker_swarm
run_docker_swarm_test Test_Dynamic
run_docker_swarm_test Test_Blocking
run_docker_swarm_test Test_Multiple
run_docker_swarm_test Test_Healthy
exit $errors