mirror of
https://github.com/sablierapp/sablier.git
synced 2025-12-30 09:45:13 +01:00
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
53 lines
1.3 KiB
Bash
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 |