From a9239bb88bcb23dbbde034ea53be4b4209c9b5ea Mon Sep 17 00:00:00 2001 From: Mohamed Sakr Date: Wed, 26 Nov 2025 00:32:32 +0200 Subject: [PATCH 1/2] Run tests using docker compose incase docker-compose not installed --- test-e2e-multi-version.sh | 30 ++++++++++++++++++------------ test-e2e.sh | 24 +++++++++++++++--------- 2 files changed, 33 insertions(+), 21 deletions(-) diff --git a/test-e2e-multi-version.sh b/test-e2e-multi-version.sh index 42da083..637f5d7 100755 --- a/test-e2e-multi-version.sh +++ b/test-e2e-multi-version.sh @@ -24,12 +24,18 @@ print_version() { cleanup() { print_status "Cleaning up..." - docker-compose down -v + $DOCKER_COMPOSE down -v exit $1 } trap 'cleanup $?' EXIT +if ! command -v docker-compose &> /dev/null; then + DOCKER_COMPOSE="docker compose" +else + DOCKER_COMPOSE="docker-compose" +fi + # RabbitMQ versions to test (minor versions from 3.9 to latest 4.x) RABBITMQ_VERSIONS=( "3.9-management" @@ -48,8 +54,8 @@ if ! docker info >/dev/null 2>&1; then exit 1 fi -if ! command -v docker-compose &> /dev/null; then - print_error "docker-compose is not installed or not in PATH." +if ! command -v $DOCKER_COMPOSE &> /dev/null; then + print_error "$DOCKER_COMPOSE is not installed or not in PATH." exit 1 fi @@ -65,10 +71,10 @@ for VERSION in "${RABBITMQ_VERSIONS[@]}"; do export RABBITMQ_VERSION="$VERSION" print_status "Stopping any existing test containers..." - docker-compose down -v + $DOCKER_COMPOSE down -v print_status "Starting RabbitMQ container (version: $VERSION)..." - docker-compose up -d rabbitmq + $DOCKER_COMPOSE up -d rabbitmq print_status "Waiting for RabbitMQ to be ready..." RETRY_COUNT=0 @@ -76,15 +82,15 @@ for VERSION in "${RABBITMQ_VERSIONS[@]}"; do while [ $RETRY_COUNT -lt $MAX_RETRIES ]; do # Check if container is running - CONTAINER_STATUS=$(docker-compose ps -q rabbitmq | xargs docker inspect -f '{{.State.Status}}' 2>/dev/null || echo "not_found") + CONTAINER_STATUS=$($DOCKER_COMPOSE ps -q rabbitmq | xargs docker inspect -f '{{.State.Status}}' 2>/dev/null || echo "not_found") print_warning "RabbitMQ container status: $CONTAINER_STATUS" if [ "$CONTAINER_STATUS" = "exited" ] || [ "$CONTAINER_STATUS" = "" ]; then print_warning "RabbitMQ container exited or not found. Restarting..." - docker-compose up -d rabbitmq + $DOCKER_COMPOSE up -d rabbitmq sleep 5 fi - if docker-compose exec -T rabbitmq rabbitmq-diagnostics -q ping >/dev/null 2>&1; then + if $DOCKER_COMPOSE exec -T rabbitmq rabbitmq-diagnostics -q ping >/dev/null 2>&1; then print_status "RabbitMQ is ready!" break fi @@ -96,7 +102,7 @@ for VERSION in "${RABBITMQ_VERSIONS[@]}"; do if [ $RETRY_COUNT -eq $MAX_RETRIES ]; then print_error "RabbitMQ $VERSION failed to start within expected time" - docker-compose logs rabbitmq + $DOCKER_COMPOSE logs rabbitmq FAILED_VERSIONS+=("$VERSION") continue fi @@ -108,7 +114,7 @@ for VERSION in "${RABBITMQ_VERSIONS[@]}"; do if ! nc -z localhost 5673; then print_error "Cannot connect to RabbitMQ $VERSION on port 5673" print_status "RabbitMQ container logs:" - docker-compose logs rabbitmq + $DOCKER_COMPOSE logs rabbitmq FAILED_VERSIONS+=("$VERSION") continue fi @@ -128,7 +134,7 @@ for VERSION in "${RABBITMQ_VERSIONS[@]}"; do if ! npm run test:e2e; then print_error "E2E tests failed for RabbitMQ $VERSION" print_status "RabbitMQ container logs:" - docker-compose logs rabbitmq + $DOCKER_COMPOSE logs rabbitmq FAILED_VERSIONS+=("$VERSION") continue fi @@ -137,7 +143,7 @@ for VERSION in "${RABBITMQ_VERSIONS[@]}"; do PASSED_VERSIONS+=("$VERSION") # Clean up before next version - docker-compose down -v + $DOCKER_COMPOSE down -v sleep 2 done diff --git a/test-e2e.sh b/test-e2e.sh index 483de55..ccc3337 100755 --- a/test-e2e.sh +++ b/test-e2e.sh @@ -5,6 +5,12 @@ GREEN='\033[0;32m' YELLOW='\033[1;33m' NC='\033[0m' +if ! command -v docker-compose &> /dev/null; then + DOCKER_COMPOSE="docker compose" +else + DOCKER_COMPOSE="docker-compose" +fi + print_status() { echo -e "${GREEN}[INFO]${NC} $1" } @@ -19,7 +25,7 @@ print_error() { cleanup() { print_status "Cleaning up..." - docker-compose down -v + $DOCKER_COMPOSE down -v exit $1 } @@ -32,23 +38,23 @@ if ! docker info >/dev/null 2>&1; then exit 1 fi -if ! command -v docker-compose &> /dev/null; then - print_error "docker-compose is not installed or not in PATH." +if ! command -v $DOCKER_COMPOSE &> /dev/null; then + print_error "$DOCKER_COMPOSE is not installed or not in PATH." exit 1 fi print_status "Stopping any existing test containers..." -docker-compose down -v +$DOCKER_COMPOSE down -v print_status "Starting RabbitMQ container..." -docker-compose up -d rabbitmq +$DOCKER_COMPOSE up -d rabbitmq print_status "Waiting for RabbitMQ to be ready..." RETRY_COUNT=0 MAX_RETRIES=30 while [ $RETRY_COUNT -lt $MAX_RETRIES ]; do - if docker-compose exec -T rabbitmq rabbitmq-diagnostics -q ping >/dev/null 2>&1; then + if $DOCKER_COMPOSE exec -T rabbitmq rabbitmq-diagnostics -q ping >/dev/null 2>&1; then print_status "RabbitMQ is ready!" break fi @@ -60,7 +66,7 @@ done if [ $RETRY_COUNT -eq $MAX_RETRIES ]; then print_error "RabbitMQ failed to start within expected time" - docker-compose logs rabbitmq + $DOCKER_COMPOSE logs rabbitmq exit 1 fi @@ -71,7 +77,7 @@ print_status "Verifying RabbitMQ connection..." if ! nc -z localhost 5673; then print_error "Cannot connect to RabbitMQ on port 5673" print_status "RabbitMQ container logs:" - docker-compose logs rabbitmq + $DOCKER_COMPOSE logs rabbitmq exit 1 fi @@ -89,7 +95,7 @@ print_status "Running E2E tests..." if ! npm run test:e2e; then print_error "E2E tests failed" print_status "RabbitMQ container logs:" - docker-compose logs rabbitmq + $DOCKER_COMPOSE logs rabbitmq exit 1 fi From 22a57cfa03b4f71b679f44ced1e0c253112c39bd Mon Sep 17 00:00:00 2001 From: Fawzi Essam Date: Sun, 14 Dec 2025 14:20:52 +0100 Subject: [PATCH 2/2] Change to support docker compose Signed-off-by: Fawzi Essam --- test-e2e-multi-version.sh | 30 ++++++++++++------------------ 1 file changed, 12 insertions(+), 18 deletions(-) diff --git a/test-e2e-multi-version.sh b/test-e2e-multi-version.sh index 637f5d7..ab33a34 100755 --- a/test-e2e-multi-version.sh +++ b/test-e2e-multi-version.sh @@ -24,18 +24,12 @@ print_version() { cleanup() { print_status "Cleaning up..." - $DOCKER_COMPOSE down -v + docker compose down -v exit $1 } trap 'cleanup $?' EXIT -if ! command -v docker-compose &> /dev/null; then - DOCKER_COMPOSE="docker compose" -else - DOCKER_COMPOSE="docker-compose" -fi - # RabbitMQ versions to test (minor versions from 3.9 to latest 4.x) RABBITMQ_VERSIONS=( "3.9-management" @@ -54,8 +48,8 @@ if ! docker info >/dev/null 2>&1; then exit 1 fi -if ! command -v $DOCKER_COMPOSE &> /dev/null; then - print_error "$DOCKER_COMPOSE is not installed or not in PATH." +if ! command -v docker compose &> /dev/null; then + print_error "docker compose is not installed or not in PATH." exit 1 fi @@ -71,10 +65,10 @@ for VERSION in "${RABBITMQ_VERSIONS[@]}"; do export RABBITMQ_VERSION="$VERSION" print_status "Stopping any existing test containers..." - $DOCKER_COMPOSE down -v + docker compose down -v print_status "Starting RabbitMQ container (version: $VERSION)..." - $DOCKER_COMPOSE up -d rabbitmq + docker compose up -d rabbitmq print_status "Waiting for RabbitMQ to be ready..." RETRY_COUNT=0 @@ -82,15 +76,15 @@ for VERSION in "${RABBITMQ_VERSIONS[@]}"; do while [ $RETRY_COUNT -lt $MAX_RETRIES ]; do # Check if container is running - CONTAINER_STATUS=$($DOCKER_COMPOSE ps -q rabbitmq | xargs docker inspect -f '{{.State.Status}}' 2>/dev/null || echo "not_found") + CONTAINER_STATUS=$(docker compose ps -q rabbitmq | xargs docker inspect -f '{{.State.Status}}' 2>/dev/null || echo "not_found") print_warning "RabbitMQ container status: $CONTAINER_STATUS" if [ "$CONTAINER_STATUS" = "exited" ] || [ "$CONTAINER_STATUS" = "" ]; then print_warning "RabbitMQ container exited or not found. Restarting..." - $DOCKER_COMPOSE up -d rabbitmq + docker compose up -d rabbitmq sleep 5 fi - if $DOCKER_COMPOSE exec -T rabbitmq rabbitmq-diagnostics -q ping >/dev/null 2>&1; then + if docker compose exec -T rabbitmq rabbitmq-diagnostics -q ping >/dev/null 2>&1; then print_status "RabbitMQ is ready!" break fi @@ -102,7 +96,7 @@ for VERSION in "${RABBITMQ_VERSIONS[@]}"; do if [ $RETRY_COUNT -eq $MAX_RETRIES ]; then print_error "RabbitMQ $VERSION failed to start within expected time" - $DOCKER_COMPOSE logs rabbitmq + docker compose logs rabbitmq FAILED_VERSIONS+=("$VERSION") continue fi @@ -114,7 +108,7 @@ for VERSION in "${RABBITMQ_VERSIONS[@]}"; do if ! nc -z localhost 5673; then print_error "Cannot connect to RabbitMQ $VERSION on port 5673" print_status "RabbitMQ container logs:" - $DOCKER_COMPOSE logs rabbitmq + docker compose logs rabbitmq FAILED_VERSIONS+=("$VERSION") continue fi @@ -134,7 +128,7 @@ for VERSION in "${RABBITMQ_VERSIONS[@]}"; do if ! npm run test:e2e; then print_error "E2E tests failed for RabbitMQ $VERSION" print_status "RabbitMQ container logs:" - $DOCKER_COMPOSE logs rabbitmq + docker compose logs rabbitmq FAILED_VERSIONS+=("$VERSION") continue fi @@ -143,7 +137,7 @@ for VERSION in "${RABBITMQ_VERSIONS[@]}"; do PASSED_VERSIONS+=("$VERSION") # Clean up before next version - $DOCKER_COMPOSE down -v + docker compose down -v sleep 2 done