56 lines
1.8 KiB
Bash
Executable File
56 lines
1.8 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Full-system browser E2E via Playwright Docker (host lacks libatk; no sudo).
|
|
# Hits host BASE_URL (default http://127.0.0.1:8080) with --network host.
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
WEB_DIR="$(cd "$SCRIPT_DIR/.." && pwd)"
|
|
WT="$(cd "$WEB_DIR/.." && pwd)"
|
|
# Prefer main repo .env (worktree may not have secrets).
|
|
ROOT="${AGENT_SYSTEM_ROOT:-/home/weichen/projects/Agent-System}"
|
|
if [[ ! -f "$ROOT/.env" && -f "$WT/.env" ]]; then
|
|
ROOT="$WT"
|
|
fi
|
|
|
|
ASSETS="${UI_ACCEPTANCE_ASSETS_DIR:-$WT/.doc/test-reports/assets/2026-09-26-full-system-browser-e2e}"
|
|
IMAGE="${PLAYWRIGHT_IMAGE:-mcr.microsoft.com/playwright:v1.63.0-noble}"
|
|
BASE_URL="${BASE_URL:-http://127.0.0.1:8080}"
|
|
mkdir -p "$ASSETS/screenshots"
|
|
|
|
set -a
|
|
# shellcheck disable=SC1091
|
|
source "$ROOT/.env"
|
|
set +a
|
|
|
|
if [[ -z "${ADMIN_USERNAME:-}" || -z "${ADMIN_PASSWORD:-}" ]]; then
|
|
echo "ADMIN_USERNAME/ADMIN_PASSWORD required from $ROOT/.env" >&2
|
|
exit 2
|
|
fi
|
|
|
|
echo "IMAGE=$IMAGE BASE_URL=$BASE_URL ASSETS=$ASSETS WT=$WT" | tee "$ASSETS/run-env.txt"
|
|
|
|
NM_MOUNT=()
|
|
if [[ -d "$WEB_DIR/node_modules" ]]; then
|
|
NM_MOUNT=(-v "$WEB_DIR/node_modules:/work/web/node_modules")
|
|
elif [[ -d "$ROOT/web/node_modules" ]]; then
|
|
NM_MOUNT=(-v "$ROOT/web/node_modules:/work/web/node_modules")
|
|
fi
|
|
|
|
docker run --rm \
|
|
--network host \
|
|
--ipc host \
|
|
-e BASE_URL="$BASE_URL" \
|
|
-e RUN_UI_ACCEPTANCE=1 \
|
|
-e UI_ACCEPTANCE_ASSETS_DIR=/work/assets \
|
|
-e DISABLE_DEV_SEED_USERS=true \
|
|
-e ADMIN_USERNAME="$ADMIN_USERNAME" \
|
|
-e ADMIN_PASSWORD="$ADMIN_PASSWORD" \
|
|
-e CI=1 \
|
|
-v "$WEB_DIR:/work/web" \
|
|
-v "$ASSETS:/work/assets" \
|
|
"${NM_MOUNT[@]}" \
|
|
-w /work/web \
|
|
"$IMAGE" \
|
|
bash -lc 'if [[ ! -x node_modules/.bin/playwright ]]; then npm ci; fi; npx playwright test e2e/full-system-browser-e2e.spec.ts --reporter=list' \
|
|
2>&1 | tee "$ASSETS/playwright.log"
|