Skip to content

ci: run the browser Playwright suite - #99

Merged
frontegg-david merged 1 commit into
fix/core-single-vm-builtin-resultsfrom
ci/browser-e2e-playwright
Oct 4, 2026
Merged

frontegg-david merged 1 commit into
fix/core-single-vm-builtin-resultsfrom
ci/browser-e2e-playwright

Conversation

@frontegg-david

@frontegg-david frontegg-david commented Oct 4, 2026 •

Copy link
Copy Markdown
Contributor

Stack 7/10: main ← #92 ← #93 ← #94 ← #95 ← #96 ← #98 ← this ← #100 ← #101 ← #102

@enclave-vm/browser is tested only by its Playwright e2e suite (nx run browser:test-e2e, now 83 tests across this stack), and CI never ran it: the Test job runs the jest targets only. Every browser change in #92–#95 was verified locally only.

Change

New Browser E2E job in .github/workflows/push.yml, after Build, set up like the Test job. It:

  1. restores node_modules from the build cache and runs yarn install --immutable;
  2. sets the Nx SHAs and lists the affected projects with a test-e2e target (nx show projects --affected --withTarget test-e2e). Today that's only browser, which ast changes also affect. With none, the remaining steps are skipped and no browser is downloaded;
  3. installs Chromium (playwright install --with-deps chromium), caching ~/.cache/ms-playwright per Playwright version; on a cache hit it only installs the system dependencies;
  4. runs nx affected -t test-e2e;
  5. on failure, uploads the HTML report and traces (playwright-report, 14 days).

The Playwright suite builds its own bundle from source (e2e/build-test-bundle.mjs), so it doesn't depend on libs/*/dist. serve, which the suite's web server uses, is already a devDependency.

libs/browser/playwright.config.ts, CI only (local runs are unchanged):

  • forbidOnly;
  • one retry, because the timeout specs measure real time. A test that passes on retry is still reported as flaky;
  • GitHub reporter (annotations), list and HTML reporters;
  • trace kept on failure.

Verification

  • Run 37163643577 on this branch: Build, Test, Performance and Browser E2E all passed. The job logged Affected e2e projects: browser, installed Chromium and reported 83 passed (24.7s), with none flaky.
  • Locally with CI=1 npx nx run browser:test-e2e: 83 passed, GitHub reporter notice printed, HTML report written (playwright-report/ is gitignored).

🤖 Generated with Claude Code

@coderabbitai

coderabbitai Bot commented Oct 4, 2026 •

Copy link
Copy Markdown

Warning

Review limit reached

Your organization has reached its usage spending cap. Adjust your spending cap in the billing tab.

Next included review available in 17 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used all 3 included reviews currently available. Your 43 included PR review attempts over the past 7 days set your current allowance at 3 reviews per hour.

Learn how review limits work.

Review configuration:

⚙️ Run configuration
  • Configuration used: Repository: agentfront/enclave/.coderabbit.yaml
  • Review profile: CHILL
  • Plan: Essentials
  • Run ID: 04275e4c-d430-4544-9384-494866eefa89
📥 Commits

Reviewing files that changed from the base of the PR and between 31581b4 and 495e5af.

📒 Files selected for processing (2)
  • .github/workflows/push.yml
  • libs/browser/playwright.config.ts
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Comment @coderabbitai help to get the list of available commands.

@enclave-vm/browser is tested only by its Playwright e2e suite
(nx run browser:test-e2e), which CI never ran: the Test job runs the
jest targets.

New Browser E2E job, after Build like the Test job: it restores
node_modules from the build cache, asks nx which projects with a
test-e2e target are affected (today only browser, and through it ast),
and when there is one, installs Chromium (browsers cached per
Playwright version) and runs nx affected -t test-e2e. On failure it
uploads the HTML report and traces.

On CI the Playwright config forbids test.only, retries a failed test
once (the timeout specs measure real time; a retried pass is still
reported as flaky), adds the GitHub reporter for annotations, and keeps
a trace of each failure.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@frontegg-david
frontegg-david force-pushed the ci/browser-e2e-playwright branch from 6133c26 to 495e5af Compare October 4, 2026 00:23
@frontegg-david
frontegg-david merged commit 50d8bbc into main Oct 4, 2026
9 checks passed
@frontegg-david
frontegg-david deleted the ci/browser-e2e-playwright branch October 4, 2026 10:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants