Skip to content

ci(e2e): drop e2e-headed from pull_request trigger#1521

Merged
jackwener merged 1 commit into
mainfrom
ci/drop-e2e-from-pr-trigger
May 13, 2026
Merged

ci(e2e): drop e2e-headed from pull_request trigger#1521
jackwener merged 1 commit into
mainfrom
ci/drop-e2e-from-pr-trigger

Conversation

@jackwener

Copy link
Copy Markdown
Owner

Summary

Per @WAWQAQ direction (DM): per-PR e2e-headed Chrome (~10-15 min, 2 platforms) is the dominant PR wait, especially on fork PRs where it blocks behind maintainer approval. The actual regressions e2e caught in the last 30 days were e2e-test migrations missed by the authoring PR (#1461 / #1505 workspace→session migration), not real product regressions the unit tier missed.

New PR feedback path

Per-PR (fast, ~2 min):

  • typecheck / unit / lint / adapter / build (ci.yml)
  • extension typecheck / build (build-extension.yml)
  • docs build (doc-check.yml)
  • security audit (security.yml)

E2E-headed Chrome guards (still strict):

  • push to main / dev (watched paths)
  • push v* tag (release)
  • nightly cron 08:00 UTC (NEW — catches Chrome version drift / flake drift even when no commits touched watched paths)
  • workflow_dispatch (manual when a PR really wants e2e signal)

smoke-test already gated on schedule || workflow_dispatch only (ci.yml), no change needed.

Test plan

  • e2e-headed.yml workflow trigger change is the only diff
  • yaml syntax valid (preserves anchors, just edits on: block)
  • After merge, next PR should NOT trigger E2E Headed Chrome check
  • After this PR merges to main, e2e-headed should run via push trigger

Per-PR e2e-headed Chrome was the dominant PR-time wait (~10-15 min on
two platforms) and on fork PRs blocks behind maintainer approval, while
the actually-blocking failures it caught in the last 30 days were all
e2e-test migrations missed by the authoring PR (#1461 / #1505 workspace
->session) rather than real regressions the unit/typecheck tier missed.

PR feedback path is now:
  - typecheck / unit / lint / adapter / build  ← `pull_request` (ci.yml)
  - extension typecheck / build                ← `pull_request` (build-extension.yml)
  - docs build                                  ← `pull_request` (doc-check.yml)
  - security audit                              ← `pull_request` (security.yml)

E2E-headed Chrome guards:
  - push to main / dev (watched paths)
  - push v* tag (release)
  - nightly cron 08:00 UTC (added: catches Chrome version drift / flake
    drift even when no commits touch watched paths)
  - workflow_dispatch (manual when a PR really wants e2e signal)

smoke-test was already gated on `schedule || workflow_dispatch` only
(ci.yml), so no change needed there.
@jackwener
jackwener merged commit fd438c2 into main May 13, 2026
9 checks passed
jackwener added a commit that referenced this pull request May 13, 2026
Per @WAWQAQ direction (DM): trim PR-time CI to fast-feedback only.
adapter-test (~30-60s) is the next-largest PR wait after e2e-headed
(which #1521 just removed). Adapter authors typically run focused tests
locally before pushing (`npm run test:adapter`); CI duplication adds
queue latency without catching new classes of bugs.

PR-time CI surface now:
  - typecheck / unit (~1 min)
  - lint gates (typed-error / silent-column-drop)
  - build × 3 platforms

Adapter test guards (still strict):
  - push to main / dev
  - nightly cron
  - workflow_dispatch (manual when an adapter-heavy PR really wants the
    signal before merge)

Same gate as smoke-test (`if: github.event_name == 'push' || schedule
|| workflow_dispatch`) for consistency.
jackwener added a commit that referenced this pull request May 13, 2026
Per @WAWQAQ direction (DM): trim PR-time CI to fast-feedback only.
adapter-test (~30-60s) is the next-largest PR wait after e2e-headed
(which #1521 just removed). Adapter authors typically run focused tests
locally before pushing (`npm run test:adapter`); CI duplication adds
queue latency without catching new classes of bugs.

PR-time CI surface now:
  - typecheck / unit (~1 min)
  - lint gates (typed-error / silent-column-drop)
  - build × 3 platforms

Adapter test guards (still strict):
  - push to main / dev
  - nightly cron
  - workflow_dispatch (manual when an adapter-heavy PR really wants the
    signal before merge)

Same gate as smoke-test (`if: github.event_name == 'push' || schedule
|| workflow_dispatch`) for consistency.
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