Skip to content

Pre-push gate, Linux-only VRT, CI path filters - #97

Merged
BitcoinErrorLog merged 16 commits into
release/shop-v0.6.8from
cursor/prepush-gate-597e
Sep 24, 2026
Merged

BitcoinErrorLog merged 16 commits into
release/shop-v0.6.8from
cursor/prepush-gate-597e

Conversation

@BitcoinErrorLog

Copy link
Copy Markdown
Owner

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 if filters, 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 over node_modules so npm ci cannot replace the host symlink.

Base: release/shop-v0.6.8. Do not merge.

Proof

Head ce25ee5c6157911ff37aedc428d31d5d90e37132 fixes the push-hook skip check. The suite passed on the parent:

PREPUSH OK 7068482a87f62687df069bdef752bab2001009f1 5

Bad inputs, each restored so the tree stayed clean:

Required status checks

VRT (macos-latest) is not a required check on release/shop-v0.6.8. No required-check rename is needed for the removed macOS job.

Set Variables is required, and that job was deleted with .github/workflows/preview-deploy.yml. Remove the context Set Variables from the branch's required status checks. Leave these contexts:

  • Check Code Quality
  • Check NextJS Build
  • Merge Coverage Reports
  • Run Shard Tests (1)
  • Run Shard Tests (2)
  • Run Shard Tests (3)
  • Run Shard Tests (4)
  • Run Shard Tests (5)
  • Run Tests
  • vrt-marketplace

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.
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.
@BitcoinErrorLog
BitcoinErrorLog merged commit f261995 into release/shop-v0.6.8 Sep 24, 2026
13 checks passed
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