Skip to content

ci: add cross-platform E2E and smoke test support (Linux/macOS/Windows)#411

Merged
ByteYue merged 2 commits intomainfrom
feat/cross-platform-e2e
Mar 25, 2026
Merged

ci: add cross-platform E2E and smoke test support (Linux/macOS/Windows)#411
ByteYue merged 2 commits intomainfrom
feat/cross-platform-e2e

Conversation

@ByteYue
Copy link
Copy Markdown
Collaborator

@ByteYue ByteYue commented Mar 25, 2026

Description

Add cross-platform support for headed browser tests (E2E and smoke tests) across Linux, macOS, and Windows.

Previously these tests only ran on Linux via xvfb, a Linux-only virtual display. macOS and Windows CI runners have native GUI desktop sessions, so Chrome can run headed mode directly without any virtual display wrapper.

Related issue: #392

Type of Change

  • 🔧 CI / build / tooling

Changes

.github/actions/setup-chrome/action.yml

  • Renamed from "Setup Chrome + xvfb" → "Setup Chrome" (now cross-platform)
  • Made xvfb installation conditional: only runs on Linux (if: runner.os == 'Linux')
  • Quoted the Chrome path in verify step for Windows path compatibility

.github/workflows/e2e-headed.yml

  • Added OS matrix: [ubuntu-latest, macos-latest, windows-latest]
  • Split test run into two conditional steps:
    • Linux: wrapped with xvfb-run
    • macOS/Windows: direct execution (native GUI)

.github/workflows/ci.yml (smoke-test job)

  • Added OS matrix: [ubuntu-latest, macos-latest, windows-latest]
  • Same conditional xvfb pattern as E2E

Checklist

  • I ran the checks relevant to this PR
  • I updated tests or docs if needed
  • I included output or screenshots when useful

Notes

  • browser-actions/setup-chrome@v1 already supports all three platforms natively
  • macOS/Windows runners provide a GUI desktop session, making xvfb unnecessary
  • fail-fast: false ensures all platforms are tested even if one fails

ByteYue added 2 commits March 25, 2026 14:19
Make headed browser tests (E2E and smoke) runnable on Linux, macOS,
and Windows:

- setup-chrome action: only install xvfb on Linux (macOS/Windows
  have native GUI sessions and don't need a virtual display)
- e2e-headed.yml: add OS matrix, use xvfb-run wrapper only on Linux
- ci.yml smoke-test: add OS matrix, use xvfb-run wrapper only on Linux

The browser-actions/setup-chrome action already supports all three
platforms natively.
browser-actions/setup-chrome hangs indefinitely during Chrome MSI
installation on Windows runners (observed 10+ min with no progress).
This is a known limitation of Windows CI runners.

Keep Linux + macOS for headed browser tests. Windows is still covered
by build, unit-test, and adapter-test jobs.
@ByteYue ByteYue merged commit a9571b1 into main Mar 25, 2026
23 of 24 checks passed
@jackwener jackwener deleted the feat/cross-platform-e2e branch March 25, 2026 06:43
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.

1 participant