37 lines
1.3 KiB
Bash
Executable File
37 lines
1.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# 啟動 E2E 環境但不跑測試(方便本機除錯)
|
|
set -euo pipefail
|
|
|
|
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
# shellcheck source=scripts/e2e-lib.sh
|
|
source "${ROOT}/scripts/e2e-lib.sh"
|
|
cd "$ROOT"
|
|
|
|
E2E_CONFIG="${E2E_CONFIG:-test/e2e/fixtures/e2e.yaml}"
|
|
E2E_STATE="${E2E_STATE:-${ROOT}/test/e2e/fixtures/state.json}"
|
|
GATEWAY_PORT="${GATEWAY_PORT:-18888}"
|
|
PID_FILE="${PID_FILE:-${ROOT}/test/e2e/fixtures/gateway.pid}"
|
|
|
|
docker compose down -v >/dev/null 2>&1 || true
|
|
docker compose up -d mongo redis
|
|
|
|
for i in $(seq 1 60); do
|
|
if docker compose ps mongo 2>/dev/null | grep -q "(healthy)" && docker compose ps redis 2>/dev/null | grep -q "(healthy)"; then
|
|
break
|
|
fi
|
|
sleep 1
|
|
done
|
|
|
|
go run ./cmd/mongo-index -f "${E2E_CONFIG}"
|
|
go run ./cmd/e2e-seed -f "${E2E_CONFIG}" -out "${E2E_STATE}"
|
|
|
|
if [[ -f "${PID_FILE}" ]] && kill -0 "$(cat "${PID_FILE}")" 2>/dev/null && curl -sf "http://127.0.0.1:${GATEWAY_PORT}/api/v1/health" >/dev/null; then
|
|
echo "gateway already running pid=$(cat "${PID_FILE}") url=http://127.0.0.1:${GATEWAY_PORT}"
|
|
else
|
|
pid="$(e2e_start_gateway "${ROOT}" "${E2E_CONFIG}" "${GATEWAY_PORT}" "${PID_FILE}")"
|
|
echo "gateway started pid=${pid} url=http://127.0.0.1:${GATEWAY_PORT}"
|
|
fi
|
|
|
|
e2e_wait_gateway "${GATEWAY_PORT}"
|
|
echo "e2e-up OK — run: make test-e2e"
|