Run E2E tests in CI (#64557)

* Run E2E tests in CI

* Rename results JSON so upload-artifacts finds it

* Skip failing auth connector test

* Remove e2e's pnpm workspace, add it to root

* Use cache v5

* Change paths-filter checkout to only on merge group

* Add timeout to e2e tests job

* Only run build/test if there are changes

* Cache the pnpm store instead of node_modules

* Add rust-toolchain.toml to changed files detection

* Add rust-toolchain.toml and Makefile to Rust cache hash

* Add build.assets/Makefile to Rust cache too

* Expand the path filters to capture more changes

* Improve the build error reporting, upload failure logs as artifacts

* Add `contents:read` permission for checkout in merge_group/push triggers

* Cancel previous jobs on new push in a PR

* Move type checking to earlier to fail faster

* Use the correct glob syntax

* Remove redundant env var

* Validate playwright version before trying to get the container

* Use fetch-depth: 1 for faster checkouts

* Use bash for pipefail

* Add versions.mk to changes detection and Rust cache key

* Use bash for version checking

* Ensure build is successful before running tests

* Exit with code 1 if any build failed

* Remove redundant corepack enable

* Use exit $failed for consistency

* Exit as early as possible if e2e type-checking errors

* Remove pnpm store cache as pnpm install is fast enough

* Change playwright back to ^, remove validation, get version from installed

* Run playwright version getter in e2e dir

* Add nested Cargo.toml to paths filter

* Add --init to playwright container

* Add --ipc=host to playwright docker container

* stateRestoration.spec.ts: Limit number of `login` calls

This is to avoid running into auth rate limits when running the full
Connect test suite.

* Cleanup temp dir if `fs.cp` fails

* Remove typescript/node types from e2e package.json

* Move GitHub report to a separate step

* Add more pnpm stuff to paths filter

* Skip for dependabot PRs

* Add persist-credentials: false to checkout

* Move e2e binary building to a bash script

* Define the test results JSON path only once

* Move PR comment management to gh CLI calls instead of runner

* Add build-e2e-binaries.sh to paths filter

* Handle the possibility of a missing PR comment file

* Move PR comment posting to a separate job

* Always run the update-pr-comment job

* Print logs instead of uploading them

* Add the repo name to the concurrency group

* Up test timeout limit to 20s

* Add a SHA flag to the e2e report command

* Fix the GitHub comment not deleting on success

---------

Co-authored-by: Rafał Cieślak <[email protected]>
This commit is contained in:
Ryan Clark
2026-03-31 15:39:37 +00:00
committed by GitHub
co-authored by Rafał Cieślak
parent 808188b10a
commit 09156cb157
18 changed files with 688 additions and 727 deletions
+2
View File
@@ -1,8 +1,10 @@
packages:
- web/packages/*
- e/web/*
- e2e
onlyBuiltDependencies:
- '@swc/core'
- cbor-extract
- electron
- esbuild
- msw