mirror of
https://git.quad4.io/RNS-Things/MeshChatX.git
synced 2026-05-24 15:35:18 +00:00
feat(e2e): add script to start E2E stack with MeshChat backend and Vite
This commit is contained in:
Executable
+60
@@ -0,0 +1,60 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
|
||||
cd "$ROOT"
|
||||
|
||||
BACKEND_PORT="${E2E_BACKEND_PORT:-8000}"
|
||||
VITE_HOST="${E2E_VITE_HOST:-127.0.0.1}"
|
||||
VITE_PORT="${E2E_VITE_PORT:-5173}"
|
||||
|
||||
TMPDIR="$(mktemp -d -t meshchat-e2e-XXXXXX)"
|
||||
export MESHCHAT_LOG_DIR="$TMPDIR/logs"
|
||||
mkdir -p "$MESHCHAT_LOG_DIR"
|
||||
|
||||
cleanup() {
|
||||
if [[ -n "${BACK_PID:-}" ]] && kill -0 "$BACK_PID" 2>/dev/null; then
|
||||
kill "$BACK_PID" 2>/dev/null || true
|
||||
wait "$BACK_PID" 2>/dev/null || true
|
||||
fi
|
||||
rm -rf "$TMPDIR"
|
||||
}
|
||||
|
||||
trap cleanup EXIT INT TERM
|
||||
|
||||
echo "E2E: starting MeshChat backend on 127.0.0.1:${BACKEND_PORT} (isolated storage under ${TMPDIR})"
|
||||
|
||||
poetry run python -m meshchatx.meshchat \
|
||||
--headless \
|
||||
--no-https \
|
||||
--host 127.0.0.1 \
|
||||
--port "${BACKEND_PORT}" \
|
||||
--storage-dir "$TMPDIR/storage" \
|
||||
--reticulum-config-dir "$TMPDIR/rns" \
|
||||
&
|
||||
BACK_PID=$!
|
||||
|
||||
echo "E2E: waiting for /api/v1/status (HTTP 200)..."
|
||||
ready=0
|
||||
for i in $(seq 1 240); do
|
||||
if ! kill -0 "$BACK_PID" 2>/dev/null; then
|
||||
echo "E2E: backend process exited before becoming ready"
|
||||
exit 1
|
||||
fi
|
||||
if curl -sf "http://127.0.0.1:${BACKEND_PORT}/api/v1/status" >/dev/null 2>&1; then
|
||||
ready=1
|
||||
echo "E2E: backend ready after ${i}s"
|
||||
break
|
||||
fi
|
||||
sleep 1
|
||||
done
|
||||
|
||||
if [[ "$ready" -ne 1 ]]; then
|
||||
echo "E2E: backend did not respond on :${BACKEND_PORT} within 240s"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "E2E: starting Vite on ${VITE_HOST}:${VITE_PORT}"
|
||||
pnpm exec vite --host "${VITE_HOST}" --port "${VITE_PORT}" &
|
||||
VITE_PID=$!
|
||||
wait "$VITE_PID"
|
||||
Reference in New Issue
Block a user