Pre-push gate, Linux-only VRT, CI path filters - #97
Merged
Merged
Conversation
Linux VRT runs in the pinned Playwright image for specs that render a changed component. Required checks stay reported when a path filter skips the heavy job. The inherited preview workflow is removed.
Darwin PNGs stay in the tree. Pre-push and CI compare and regenerate only *-linux.png from the pinned Playwright image.
grep -q under pipefail returns 141 once git log is still writing, so the hook treated every push as skip-ci and did not run the gate.
…arketplace VRT. A failed path filter used to skip Check NextJS Build and vrt-marketplace, and a skipped required check counts as success. Those jobs now run and exit 1 unless the filter succeeded. Marketplace screens render files under public/, so that tree is part of the VRT filter.
The marketplace project and the main project were two Vitest processes in one container. The first hangs on close and the second starts with a dead browser. A one-line note in one spec from each project is how this diff selects both.
The container split stays. Those notes made the gate compare Install screenshots, which missed the Linux baselines by a few pixels.
This reverts commit 86a73af.
Docker's 64MB /dev/shm fills when the non-marketplace project opens Chromium and Firefox together. Chromium's font service aborts with ENOSPC and Vitest reports a closed browser before any spec runs.
Opening every spec while Vite is still bundling dependencies drops the browser sockets, so Vitest aborts before any test. Playwright Chromium already sets --disable-dev-shm-usage; raising /dev/shm does not keep those sockets open.
This was referenced Sep 24, 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.
Summary
Local pre-push for Shop runs Prettier, ESLint, typecheck, related unit tests, and the Linux visual-regression gate. CI skips unchanged Shop work with job-level
iffilters, caches the Next.js build, and deletes the preview-deploy workflow.The merge gate uses Linux baselines from
mcr.microsoft.com/playwright:v1.60.0-noble. It does not require or regenerate*-darwin.png. Existing Darwin baselines stay in the tree. The Linux container mounts a volume overnode_modulessonpm cicannot replace the host symlink.Base:
release/shop-v0.6.8. Do not merge.Proof
Head
ce25ee5c6157911ff37aedc428d31d5d90e37132fixes the push-hook skip check. The suite passed on the parent:PREPUSH OK 7068482a87f62687df069bdef752bab2001009f1 5Bad inputs, each restored so the tree stayed clean:
TS2322insrc/libs/env/env.ts)Required status checks
VRT (macos-latest)is not a required check onrelease/shop-v0.6.8. No required-check rename is needed for the removed macOS job.Set Variablesis required, and that job was deleted with.github/workflows/preview-deploy.yml. Remove the contextSet Variablesfrom the branch's required status checks. Leave these contexts: