Skip to content

ci: local TIA test runs; simplify e2e (drop sharding + e2e-gate) - #262

Merged
paulocastellano merged 5 commits into
mainfrom
chore/e2e-shard-visibility
Aug 9, 2026
Merged

ci: local TIA test runs; simplify e2e (drop sharding + e2e-gate)#262
paulocastellano merged 5 commits into
mainfrom
chore/e2e-shard-visibility

Conversation

@paulocastellano

@paulocastellano paulocastellano commented Aug 9, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Reverted e2e sharding: e2e runs tests/Browser as a single job again (no matrix, no --shard). The 2-shard split added complexity — unbalanced shards without timing data, and the Update Shards workflow couldn't push straight to main under branch protection (required_pull_request_reviews + enforce_admins) — without a clear payoff here.
  • Dropped the e2e-gate job — with sharding gone it only mirrored e2e's own result. Updated main's branch protection required_status_checks to require e2e directly instead of e2e-gate.
  • Enabled Pest 5's TIA Engine (pest()->tia()->locally() in tests/Pest.php) for local runs only — CI keeps running the full suite on every commit, unaffected. Added composer test:tia (vendor/bin/pest --parallel --tia); it needs a coverage driver (Xdebug/PCOV) active — on Herd, run it as herd coverage composer test:tia. Kept generic since this project is open-source/self-hosted and not every contributor uses Herd.

Test plan

  • Confirm PR checks show a single e2e check (no e2e-gate, no (1)/(2))
  • Confirm merge is still blocked/unblocked correctly by the required quality / backend / e2e checks
  • Locally, run herd coverage composer test:tia twice and confirm the second run replays cached results

- e2e job now shows as "e2e (shard 1/2)" / "e2e (shard 2/2)" in checks
  instead of the unlabeled matrix "(1)" / "(2)" suffix
- add scheduled/manual "Update Shards" workflow that generates and
  commits tests/.pest/shards.json so Pest balances the two e2e shards
  by real execution time instead of file count
Scoped to local via locally() so CI keeps running the full suite on
every commit. Add composer test:tia script using herd coverage, since
Herd bundles Xdebug but doesn't load it by default.
trypost is open-source and self-hosted; not every contributor runs
Herd. The script now just needs a coverage driver (Xdebug/PCOV)
active however the environment provides it — Herd users can run it
via "herd coverage composer test:tia".
Sharding across 2 runners added complexity (unbalanced shards without
timing data, plus an Update Shards workflow that can't push straight
to main under branch protection) that isn't worth it here. e2e now
runs tests/Browser as a single job again; e2e-gate stays as a
pass-through so the required branch protection check name is
unchanged.
@paulocastellano paulocastellano changed the title ci: descriptive e2e shard names + time-balanced sharding ci: TIA for local test runs; simplify e2e (no sharding) Aug 9, 2026
e2e-gate only mirrored e2e's own result once sharding was removed.
Updated main's branch protection required_status_checks to require
"e2e" directly instead of "e2e-gate".
@paulocastellano paulocastellano changed the title ci: TIA for local test runs; simplify e2e (no sharding) ci: local TIA test runs; simplify e2e (drop sharding + e2e-gate) Aug 9, 2026
@paulocastellano
paulocastellano merged commit 8088864 into main Aug 9, 2026
3 checks passed
@paulocastellano
paulocastellano deleted the chore/e2e-shard-visibility branch August 9, 2026 15:24
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