ci: run Next.js adapter integration suite against harper PRs (downstream gate)#1385
ci: run Next.js adapter integration suite against harper PRs (downstream gate)#1385kriszyp wants to merge 1 commit into
Conversation
Closes the regression loop from the nextjs side: when a harper PR touches the HTTP/cache/resource/server paths, call HarperFast/nextjs's reusable integration workflow with harper_ref = this PR's head SHA, so the adapter's Playwright suite runs against the in-PR harper build. Depends on HarperFast/nextjs#49 (the workflow_call + harper_ref input). Pin the @main ref to the #49 merge SHA before merging. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
Note Gemini is unable to generate a review for this pull request due to the file types involved not being currently supported. |
| jobs: | ||
| nextjs-integration: | ||
| name: Next.js adapter integration (against this PR's harper) | ||
| uses: HarperFast/nextjs/.github/workflows/integration-tests.yml@main # TODO: pin to nextjs#49 merge SHA before merging |
There was a problem hiding this comment.
Blocker — mutable @main ref not caught by the repo's validator.
validate-caller-workflows.yml only covers claude-*.yml files, so this workflow bypasses the SHA-pinning check entirely. The @main ref means any push to HarperFast/nextjs main can silently change what CI code runs against harper PRs — an unguarded supply-chain injection vector.
The PR body already tracks this as a pre-merge TODO ("replace the mutable @main ref below with the 40-char merge-commit SHA of nextjs#49"). Do that before lifting the draft — this should not land with @main.
| uses: HarperFast/nextjs/.github/workflows/integration-tests.yml@main # TODO: pin to nextjs#49 merge SHA before merging | |
| uses: HarperFast/nextjs/.github/workflows/integration-tests.yml@<40-char-SHA-of-nextjs#49-merge-commit> |
|
One blocker: the |
- next-16-secrets.pw.ts: use auto-retrying toHaveText assertion instead of
innerText() + toBe (avoids hydration/render-delay flakiness)
- rename next-16-{coexist,secrets}/next.config.ts -> .mjs (pure-JS fixtures;
avoids TypeScript install prompt, matches next-16-caching convention)
- remove .github/workflows/CALLER-SNIPPET.md: the caller workflow now lives in
HarperFast/harper#1385
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
What
Adds
.github/workflows/integration-tests-nextjs.yml— a caller workflow that runs the @harperfast/nextjs adapter's Playwright integration suite against this PR's harper build. When a harper PR touches the HTTP / cache / resource / server paths the adapter exercises, it calls the reusable workflow inHarperFast/nextjs, passing the PR head SHA asharper_ref; that workflow checks out + builds harper at the ref and resolves it as theharperthe harness and fixtures run against.This is the harper side of the cross-repo regression loop — the counterpart to the parameterized
workflow_calladded in HarperFast/nextjs#49. Framework hosting is owned by thenextjsrepo (per the Harper Release Testing Strategy's multi-repo topology), so this gate keeps harper from silently breaking it.workflow_call+harper_refinput must land onnextjsmainfirst, or this caller has nothing to call. Kept as a draft until then.@mainref with the 40-char merge SHA of fix(deps): update dependency systeminformation to v5.27.11 #49 (cross-repo reusableuses:should pin to a SHA, matchingvalidate-caller-workflows.yml's convention).Generated by a Claude (Opus 4.8) session on Kris's behalf.