From 55246b5cd8c75fcfa4c480f80bbda5577345306b Mon Sep 17 00:00:00 2001 From: Garry Tan Date: Mon, 23 Mar 2026 16:30:23 -0700 Subject: [PATCH] feat: add Chromium to CI Docker image for browse E2E tests Browse E2E tests (browse basic, browse snapshot) need Playwright + Chromium to render pages. The CI container didn't have a browser installed, so the agent spent all turns trying to start the browse server and failing. Adds Playwright system deps + Chromium browser to the Docker image. ~400MB image size increase but enables full browse test coverage in CI. Co-Authored-By: Claude Opus 4.6 (1M context) --- .github/docker/Dockerfile.ci | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/.github/docker/Dockerfile.ci b/.github/docker/Dockerfile.ci index d2443574..9f499f68 100644 --- a/.github/docker/Dockerfile.ci +++ b/.github/docker/Dockerfile.ci @@ -29,13 +29,21 @@ RUN curl -fsSL https://bun.sh/install | bash # Claude CLI RUN npm i -g @anthropic-ai/claude-code +# Playwright system deps (Chromium) — needed for browse E2E tests +# Install deps first (large layer, changes rarely), then Playwright + browser +RUN npx playwright install-deps chromium + # Pre-install dependencies (cached layer — only rebuilds when package.json changes) COPY package.json /workspace/ WORKDIR /workspace RUN bun install && rm -rf /tmp/* +# Install Playwright Chromium browser (uses deps installed above) +RUN npx playwright install chromium + # Verify everything works -RUN bun --version && node --version && claude --version && jq --version && gh --version +RUN bun --version && node --version && claude --version && jq --version && gh --version \ + && npx playwright --version # At runtime: checkout overwrites /workspace, but node_modules persists # if we move it out of the way and symlink back