diff --git a/ci-docker-compose/docker-compose-RABBITMQ-stop.sh b/ci-docker-compose/docker-compose-RABBITMQ-stop.sh new file mode 100755 index 000000000..a0f325b26 --- /dev/null +++ b/ci-docker-compose/docker-compose-RABBITMQ-stop.sh @@ -0,0 +1,42 @@ +#!/bin/bash + +LOCAL_HOST="${LOCAL_HOST:-localhost}" +RETRIES="${RETRIES:-70}" + +PORT_TO_CHECK=5672 + +WAIT_TIME="${WAIT_TIME:-5}" + +function netcat_port() { + local PASSED_HOST="${2:-$LOCAL_HOST}" + local RABBITMQ_STOPPED=1 + local counter=1 + for i in $( seq 1 "${RETRIES}" ); do + ((counter++)) + if [ "${counter}" -gt 2 ] + then + echo "Rabbitmq is still running. Will try to stop again in [${WAIT_TIME}] seconds" + fi + sleep "${WAIT_TIME}" + nc -v -w 1 ${PASSED_HOST} $1 && continue + echo "Rabbitmq stopped..." + RABBITMQ_STOPPED=0 + break + done + return ${RABBITMQ_STOPPED} +} + +export -f netcat_port + +dockerComposeFile="docker-compose-RABBITMQ.yml" +docker-compose -f $dockerComposeFile kill + +RABBITMQ_STOPPED="no" + +echo "Waiting for RabbitMQ to stop for [$(( WAIT_TIME * RETRIES ))] seconds" +netcat_port $PORT_TO_CHECK && RABBITMQ_STOPPED="yes" + +if [[ "${RABBITMQ_STOPPED}" == "no" ]] ; then + echo "RabbitMQ failed to stop..." + exit 1 +fi \ No newline at end of file diff --git a/ci-docker-compose/docker-compose-RABBITMQ.sh b/ci-docker-compose/docker-compose-RABBITMQ.sh new file mode 100755 index 000000000..9e6a58d0e --- /dev/null +++ b/ci-docker-compose/docker-compose-RABBITMQ.sh @@ -0,0 +1,41 @@ +#!/bin/bash + +LOCAL_HOST="${LOCAL_HOST:-localhost}" +SHOULD_START_RABBIT="${SHOULD_START_RABBIT:-yes}" +PORT_TO_CHECK=5672 + +WAIT_TIME="${WAIT_TIME:-5}" +RETRIES="${RETRIES:-70}" + +function netcat_port() { + local PASSED_HOST="${2:-$LOCAL_HOST}" + local READY_FOR_TESTS=1 + for i in $( seq 1 "${RETRIES}" ); do + sleep "${WAIT_TIME}" + nc -v -w 1 ${PASSED_HOST} $1 && READY_FOR_TESTS=0 && break + echo "Fail #$i/${RETRIES}... will try again in [${WAIT_TIME}] seconds" + done + return ${READY_FOR_TESTS} +} + +export -f netcat_port + +dockerComposeFile="docker-compose-RABBITMQ.yml" +docker-compose -f $dockerComposeFile kill +docker-compose -f $dockerComposeFile build + +if [[ "${SHOULD_START_RABBIT}" == "yes" ]] ; then + echo -e "\n\nBooting up RabbitMQ" + docker-compose -f $dockerComposeFile up -d rabbitmq +fi + +READY_FOR_TESTS="no" + +echo "Waiting for RabbitMQ to boot for [$(( WAIT_TIME * RETRIES ))] seconds" +netcat_port $PORT_TO_CHECK && READY_FOR_TESTS="yes" + +if [[ "${READY_FOR_TESTS}" == "no" ]] ; then + echo "RabbitMQ failed to start..." + exit 1 +fi + diff --git a/ci-docker-compose/docker-compose-RABBITMQ.yml b/ci-docker-compose/docker-compose-RABBITMQ.yml new file mode 100644 index 000000000..deb4cf8d1 --- /dev/null +++ b/ci-docker-compose/docker-compose-RABBITMQ.yml @@ -0,0 +1,5 @@ +rabbitmq: + image: rabbitmq:management + ports: + - 5672:5672 + - 15672:15672 \ No newline at end of file