84a494e215
CI / test (push) Successful in 15m59s
ws.* / admin-ws.* в Traefik; audit IP на стенде — не unknown вместо XFF. Co-authored-by: Cursor <cursoragent@cursor.com>
76 lines
2.6 KiB
Bash
76 lines
2.6 KiB
Bash
#!/usr/bin/env bash
|
|
# Full API CT suite against live stand (remote) + smoke-core on stand host.
|
|
# Usage: run-stand-api-tests.sh <ift|stage>
|
|
# Requires: ADMIN_* from load-stand-api-env.sh; SSH_* for smoke-core on stand.
|
|
set -euo pipefail
|
|
|
|
STAND="${1:?stand: ift|stage}"
|
|
case "${STAND}" in
|
|
ift)
|
|
API_HOST="${API_HOST:-https://api.ift.eventhub.local}"
|
|
ADMIN_API_HOST="${ADMIN_API_HOST:-https://admin-api.ift.eventhub.local}"
|
|
WS_HOST="${WS_HOST:-wss://ws.ift.eventhub.local}"
|
|
ADMIN_WS_HOST="${ADMIN_WS_HOST:-wss://admin-ws.ift.eventhub.local}"
|
|
DEVOPS_SMOKE="/opt/eventhub-ift/devops/scripts/smoke-core.sh"
|
|
;;
|
|
stage)
|
|
API_HOST="${API_HOST:-https://api.stage.eventhub.local}"
|
|
ADMIN_API_HOST="${ADMIN_API_HOST:-https://admin-api.stage.eventhub.local}"
|
|
WS_HOST="${WS_HOST:-wss://ws.stage.eventhub.local}"
|
|
ADMIN_WS_HOST="${ADMIN_WS_HOST:-wss://admin-ws.stage.eventhub.local}"
|
|
DEVOPS_SMOKE="/opt/eventhub-stage/devops/scripts/smoke-core.sh"
|
|
;;
|
|
*)
|
|
echo "Unknown stand: ${STAND}"
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
if [[ -n "${SSH_HOST:-}" && -n "${SSH_USER:-}" && -n "${SSH_KEY:-}" ]]; then
|
|
KEY="$(mktemp)"
|
|
printf '%s\n' "${SSH_KEY}" > "${KEY}"
|
|
chmod 600 "${KEY}"
|
|
echo "=== smoke-core on ${STAND} (via SSH) ==="
|
|
ssh -i "${KEY}" -o BatchMode=yes -o StrictHostKeyChecking=accept-new \
|
|
"${SSH_USER}@${SSH_HOST}" "bash ${DEVOPS_SMOKE} ${STAND}"
|
|
rm -f "${KEY}"
|
|
else
|
|
echo "::warning::SSH_* not set — skip smoke-core on stand host"
|
|
fi
|
|
|
|
echo "=== API CT remote (${STAND}) ==="
|
|
echo " API_HOST=${API_HOST}"
|
|
echo " ADMIN_API_HOST=${ADMIN_API_HOST}"
|
|
echo " WS_HOST=${WS_HOST}"
|
|
echo " ADMIN_WS_HOST=${ADMIN_WS_HOST}"
|
|
|
|
if ! docker image inspect eventhub-api-tests:local >/dev/null 2>&1; then
|
|
bash scripts/retry-docker-build.sh 5 60 -- \
|
|
docker buildx build \
|
|
--network=host \
|
|
--file docker/ApiTests.Dockerfile \
|
|
--tag eventhub-api-tests:local \
|
|
--load \
|
|
--provenance=false \
|
|
--sbom=false \
|
|
.
|
|
fi
|
|
|
|
docker run --rm --network=host \
|
|
-e CT_MODE=remote \
|
|
-e "API_HOST=${API_HOST}" \
|
|
-e "ADMIN_API_HOST=${ADMIN_API_HOST}" \
|
|
-e "WS_HOST=${WS_HOST}" \
|
|
-e "ADMIN_WS_HOST=${ADMIN_WS_HOST}" \
|
|
-e "ADMIN_SUPER_EMAIL=${ADMIN_SUPER_EMAIL:-}" \
|
|
-e "ADMIN_SUPER_PASSWORD=${ADMIN_SUPER_PASSWORD:-}" \
|
|
-e "ADMIN_EMAIL=${ADMIN_EMAIL:-}" \
|
|
-e "ADMIN_PASSWORD=${ADMIN_PASSWORD:-}" \
|
|
-e "ADMIN_MODER_EMAIL=${ADMIN_MODER_EMAIL:-}" \
|
|
-e "ADMIN_MODER_PASSWORD=${ADMIN_MODER_PASSWORD:-}" \
|
|
-e "ADMIN_SUPPORT_EMAIL=${ADMIN_SUPPORT_EMAIL:-}" \
|
|
-e "ADMIN_SUPPORT_PASSWORD=${ADMIN_SUPPORT_PASSWORD:-}" \
|
|
eventhub-api-tests:local
|
|
|
|
echo "=== API CT passed (${STAND}) ==="
|