mirror of
https://github.com/sablierapp/sablier.git
synced 2025-12-26 15:16:24 +01:00
51 lines
1.3 KiB
Bash
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 |