Repository navigation
ci(e2e): scoped e2e on staging PRs, full suite after each merge to big-release - #836
Merged
Merged
Conversation
An unmapped file under static/ or app/, and the shared modules that used to be in the map's full list, now add a fixed core set of 17 specs on top of smoke and the mapped specs. The whole suite runs only for a change to how the suite runs. uv.lock and pyproject.toml add the core set. The selector takes --mode full|scoped from the workflow.
…to big-release e2e.yml holds the steps once. ci.yml calls it for pull requests (scoped unless the base is main) and for pushes to main and releases (full). e2e-full.yml calls it in full mode on every push to big-release, nightly on big-release, and by hand on any ref. A new push to a pull request cancels its older e2e run; nothing else is cancelled. Each shard has a 30 minute timeout. Closes #835
thcp
marked this pull request as ready for review
October 22, 2026 17:56
This was referenced Oct 22, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #835
What changed
main, push tomain, release: full suite, as before.fullsource entries:main.js,state.js,mixer.js,catalog.js,index.html,app/api/jobs.py,stems.py,app/core/**, ...) or an unmapped file understatic/orapp/now adds a fixed core set (17 specs) instead of everything.uv.lockandpyproject.tomladd core too.playwright.config.mjs,tests/e2e/helpers*,serve.sh,seed.py,package*.json, the three e2e workflows, the selector,spec-map.json, or unmapped code undertests/e2e/.e2e-full.yml: full suite on every push tobig-release, nightly (04:17 UTC) onbig-release, andworkflow_dispatchwith arefinput.e2e.yml(workflow_call, inputsmode,base-ref,checkout-ref) holds the steps once. Same pinned SHAs,permissions: {}, no secrets.timeout-minutes: 30per shard.What did not change
uv.lock, package files. Three shards,--pass-with-no-tests.frontend-e2e / frontend-e2e (1)to(3). A reusable workflow always prefixes the caller job. No branch protection or ruleset requires these names today (checked).Real diffs, before and after
spec-map.json)helpers.mjs)seed.py)main...big-releasenpx playwright test --list <selected>matches the selector exactly for #806 (30 files, 200 tests) and #820 (59 files, 465 tests). Full suite: 724 tests in 105 files. Core + smoke alone: 159 tests in 22 files.Trade-off
A non-main PR can pass while a spec outside its core and mapped sets breaks. The push to
big-releaserun catches it on the merge commit, minutes later.Limits
e2e-full.ymlreachesmain. GitHub runs scheduled workflows from the default branch, and the job checks outbig-releaseexplicitly for that reason.gh run cancel <id>thengh run rerun <id> --failed.ci.yml, so its own CI runs the full suite. Expected.