Skip to content

[experiment] Add cross-platform Playwright e2e scripts and Windows runner#13411

Draft
mtsgrd wants to merge 1 commit intomasterfrom
e2e-experiment
Draft

[experiment] Add cross-platform Playwright e2e scripts and Windows runner#13411
mtsgrd wants to merge 1 commit intomasterfrom
e2e-experiment

Conversation

@mtsgrd
Copy link
Copy Markdown
Contributor

@mtsgrd mtsgrd commented Apr 20, 2026

Introduce a comprehensive set of cross-platform TypeScript helper
scripts and many test fixtures for the Playwright e2e suite, plus a
Windows CI job and runtime improvements to support running tests on
Windows. This change was needed to make the e2e test suite
cross-platform (especially Windows) by:

  • Adding a new GitHub Actions job (playwright-windows) to run e2e tests on windows-latest with appropriate environment and caching.
  • Adding numerous TypeScript scripts under e2e/playwright/scripts to create test repositories, branches, hooks, and helper actions used by tests.
  • Introducing a lib.ts with cross-platform helpers for filesystem, process execution, git wrappers, directory stack, and hook management.
  • Updating runtime helpers (env.ts and setup.ts) to resolve .exe binaries on Windows, run .ts scripts via Node with --experimental-strip-types, and provide cross-platform process termination (gracefulKillProcess/forceKillProcess) and script resolution logic.

These changes enable consistent test execution across platforms and
allow existing .sh-based test references to map to new .ts scripts for
better portability.

Introduce a comprehensive set of cross-platform TypeScript helper
scripts and many test fixtures for the Playwright e2e suite, plus a
Windows CI job and runtime improvements to support running tests on
Windows. This change was needed to make the e2e test suite
cross-platform (especially Windows) by:

- Adding a new GitHub Actions job (playwright-windows) to run e2e tests on windows-latest with appropriate environment and caching.
- Adding numerous TypeScript scripts under e2e/playwright/scripts to create test repositories, branches, hooks, and helper actions used by tests.
- Introducing a lib.ts with cross-platform helpers for filesystem, process execution, git wrappers, directory stack, and hook management.
- Updating runtime helpers (env.ts and setup.ts) to resolve .exe binaries on Windows, run .ts scripts via Node with --experimental-strip-types, and provide cross-platform process termination (gracefulKillProcess/forceKillProcess) and script resolution logic.

These changes enable consistent test execution across platforms and
allow existing .sh-based test references to map to new .ts scripts for
better portability.
persist-credentials: false
ref: ${{ github.event.inputs.sha }}
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
if: ${{ github.ref != 'refs/heads/master' }}
- name: Cache playwright binaries
if: ${{ github.ref != 'refs/heads/master' }}
uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5
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