4141 cat > " $build_dir /Dockerfile" << EOF
4242FROM $BASE_IMAGE
4343USER root
44- RUN apt-get update \\
45- && apt-get install -y --no-install-recommends chromium fonts-liberation procps \\
46- && rm -rf /var/lib/apt/lists/*
44+ ENV PLAYWRIGHT_BROWSERS_PATH=/home/appuser/.cache/ms-playwright
45+ RUN mkdir -p "\$ PLAYWRIGHT_BROWSERS_PATH" \\
46+ && DEBIAN_FRONTEND=noninteractive node /app/node_modules/playwright-core/cli.js install --with-deps chromium \\
47+ && chown -R appuser:appuser "\$ PLAYWRIGHT_BROWSERS_PATH"
4748USER appuser
4849EOF
4950 echo " Building Docker image: $IMAGE_NAME "
@@ -72,25 +73,24 @@ source scripts/lib/openclaw-e2e-instance.sh
7273openclaw_e2e_eval_test_state_from_b64 \"\$ {OPENCLAW_TEST_STATE_SCRIPT_B64:?missing OPENCLAW_TEST_STATE_SCRIPT_B64}\"
7374openclaw_e2e_write_state_env
7475entry=\"\$ (openclaw_e2e_resolve_entrypoint)\"
75- mkdir -p /tmp/openclaw-browser-cdp/chrome
76+ mkdir -p /tmp/openclaw-browser-cdp
7677find dist -maxdepth 1 -type f -name 'pw-ai-*.js' ! -name 'pw-ai-state-*' -exec mv {} /tmp/openclaw-browser-cdp/ \;
78+ if find dist -maxdepth 1 -type f -name 'pw-ai-*.js' ! -name 'pw-ai-state-*' | grep -q .; then
79+ echo 'failed to disable Playwright AI snapshot chunk for raw CDP smoke' >&2
80+ exit 1
81+ fi
7782PORT=$PORT CDP_PORT=$CDP_PORT node scripts/e2e/lib/fixture.mjs browser-cdp
78- chromium --headless=new --no-sandbox --disable-gpu --disable-dev-shm-usage \\
79- --remote-debugging-address=127.0.0.1 \\
80- --remote-debugging-port=$CDP_PORT \\
81- --user-data-dir=/tmp/openclaw-browser-cdp/chrome \\
82- about:blank >/tmp/browser-cdp-chromium.log 2>&1 &
8383FIXTURE_PORT=$FIXTURE_PORT node scripts/e2e/lib/browser-cdp-snapshot/fixture-server.mjs >/tmp/browser-cdp-fixture.log 2>&1 &
8484openclaw_e2e_exec_gateway \"\$ entry\" $PORT loopback /tmp/browser-cdp-gateway.log" > /dev/null
8585
86- echo " Waiting for Chromium and Gateway ..."
86+ echo " Waiting for Gateway and fixture server ..."
8787if ! docker_e2e_wait_container_bash " $CONTAINER_NAME " 180 0.5 "
8888 source scripts/lib/openclaw-e2e-instance.sh
89- openclaw_e2e_probe_http_status http://127.0.0.1:$CDP_PORT /json/version
89+ openclaw_e2e_probe_http_status http://127.0.0.1:$FIXTURE_PORT /
9090 openclaw_e2e_probe_tcp 127.0.0.1 $PORT
9191" ; then
9292 echo " Browser CDP snapshot container failed to become ready"
93- docker_e2e_tail_container_file_if_running " $CONTAINER_NAME " " /tmp/browser-cdp-chromium.log /tmp/browser-cdp- gateway.log /tmp/browser-cdp-fixture.log" 120
93+ docker_e2e_tail_container_file_if_running " $CONTAINER_NAME " " /tmp/browser-cdp-gateway.log /tmp/browser-cdp-fixture.log" 120
9494 exit 1
9595fi
9696
@@ -101,14 +101,13 @@ source /tmp/openclaw-test-state-env
101101source scripts/lib/openclaw-e2e-instance.sh
102102entry=\"\$ (openclaw_e2e_resolve_entrypoint)\"
103103base_args=(--url ws://127.0.0.1:$PORT --token '$TOKEN ')
104- node \"\$ entry\" browser \"\$ {base_args[@]}\" --browser-profile docker-cdp doctor --deep >/tmp/browser-cdp-doctor.txt
105- grep -q 'OK live-snapshot' /tmp/browser-cdp-doctor.txt
106104node \"\$ entry\" browser \"\$ {base_args[@]}\" --browser-profile docker-cdp open http://127.0.0.1:$FIXTURE_PORT / >/tmp/browser-cdp-open.txt
105+ node \"\$ entry\" browser \"\$ {base_args[@]}\" --browser-profile docker-cdp doctor --deep >/tmp/browser-cdp-doctor.txt 2>&1 || true
107106node \"\$ entry\" browser \"\$ {base_args[@]}\" --browser-profile docker-cdp snapshot --interactive --urls --out /tmp/browser-cdp-snapshot.txt >/tmp/browser-cdp-snapshot.out
108107node scripts/e2e/lib/browser-cdp-snapshot/assert-snapshot.mjs /tmp/browser-cdp-snapshot.txt
109108" ; then
110109 echo " Browser CDP snapshot smoke failed"
111- docker_e2e_tail_container_file_if_running " $CONTAINER_NAME " " /tmp/browser-cdp-doctor.txt /tmp/browser-cdp-open.txt /tmp/browser-cdp-snapshot.out /tmp/browser-cdp-snapshot.txt /tmp/browser-cdp-chromium.log /tmp/browser-cdp- gateway.log /tmp/browser-cdp-fixture.log" 200
110+ docker_e2e_tail_container_file_if_running " $CONTAINER_NAME " " /tmp/browser-cdp-doctor.txt /tmp/browser-cdp-open.txt /tmp/browser-cdp-snapshot.out /tmp/browser-cdp-snapshot.txt /tmp/browser-cdp-gateway.log /tmp/browser-cdp-fixture.log" 200
112111 exit 1
113112fi
114113
0 commit comments