Files
Alexis Couvreur 52a7d2195f feat(providers): add provider.auto-stop-on-startup argument (#346)
This feature adds the capability to stop unregistered running instances upon startup.

Previously, you had to stop running instances manually or issue an initial request that will shut down instances afterwards.

With this change, all discovered instances will be shutdown. They need to be registered using labels. E.g.: sablier.enable=true

Fixes #153
2024-07-04 12:06:21 -04:00

53 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}_proxy
fi
destroy_docker_stack
}
trap destroy_docker_swarm EXIT
prepare_docker_swarm
prepare_docker_stack
run_docker_swarm_test Test_Dynamic
run_docker_swarm_test Test_Blocking
run_docker_swarm_test Test_Multiple
run_docker_swarm_test Test_Healthy
run_docker_swarm_test Test_Group
exit $errors