mirror of
https://github.com/azaion/loader.git
synced 2026-04-22 22:06:33 +00:00
4eaf218f09
Made-with: Cursor
51 lines
1.2 KiB
Bash
Executable File
51 lines
1.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -uo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
PROJECT_DIR="$(dirname "$SCRIPT_DIR")"
|
|
COMPOSE_FILE="$PROJECT_DIR/e2e/docker-compose.test.yml"
|
|
|
|
cleanup() {
|
|
echo "=== Tearing down Docker services ==="
|
|
docker compose -f "$COMPOSE_FILE" down --timeout 10
|
|
}
|
|
trap cleanup EXIT
|
|
|
|
cd "$PROJECT_DIR"
|
|
|
|
pip3 install -q -r e2e/requirements.txt
|
|
|
|
echo "=== Starting Docker services ==="
|
|
docker compose -f "$COMPOSE_FILE" up -d --build
|
|
|
|
echo "=== Waiting for system-under-test ==="
|
|
DEADLINE=$((SECONDS + 60))
|
|
while [[ $SECONDS -lt $DEADLINE ]]; do
|
|
if curl -sf http://localhost:8080/health > /dev/null 2>&1; then
|
|
echo "system-under-test is ready"
|
|
break
|
|
fi
|
|
sleep 2
|
|
done
|
|
|
|
if ! curl -sf http://localhost:8080/health > /dev/null 2>&1; then
|
|
echo "ERROR: system-under-test did not become healthy within 60s"
|
|
docker compose -f "$COMPOSE_FILE" logs system-under-test
|
|
exit 1
|
|
fi
|
|
|
|
mkdir -p "$PROJECT_DIR/test-results"
|
|
|
|
echo "=== Running e2e tests ==="
|
|
python3 -m pytest e2e/tests/ -v --tb=short --junitxml=test-results/results.xml
|
|
EXIT_CODE=$?
|
|
|
|
echo ""
|
|
if [[ $EXIT_CODE -eq 0 ]]; then
|
|
echo "=== ALL TESTS PASSED ==="
|
|
else
|
|
echo "=== TESTS FAILED (exit code: $EXIT_CODE) ==="
|
|
fi
|
|
|
|
exit $EXIT_CODE
|