feat: playwright-test — the estate browser testing convention (ADR 0017) - #58
Merged
Conversation
Extracts nmon's proven Playwright CI pattern (nmon#76/#78/#79) into a reusable workflow, per Homelab-Skills ADR 0017 and nmon#125: the estate Playwright pin lives in playwright-test.yml's playwright-image default, consumers run their suites in that container on their own ARC runner, and a lockstep job holds every PR red until the caller's npm pin, the image tag, and the ghcr mirror's content agree. mirror-playwright moves here from nmon with the pin it serves; being operated from a repo that is not the package's source also makes a one-time Actions-access grant possible where nmon's GITHUB_TOKEN was denied. renovate.json points version discovery for the pin back at MCR (the mirror would never propose an upgrade). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…agree Review finding on #58: the reusable lockstep job hardcodes its upstream registry (it checks out the caller, so it cannot parse its own annotation the way nmon's old lockstep did) — this selftest job is what keeps the two lines from rotting apart silently. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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.
Implements the cshuttle/workflows half of nmon#125 (Homelab-Skills ADR 0017: browser testing is a reusable workflow, not a cluster browser pool).
playwright-test.yml(reusable):lockstepjob (caller npm pin ↔ image tag ↔ mirror layers, manifest-HEAD cheap) gating atestjob in the pinnedghcr.io/cshuttle/playwrightmirror container on the caller's ARC runner. Inputs:runner(required),unit-command,e2e-command,playwright-image(the estate pin, as the Renovate-tracked default).mirror-playwright.ymlmoves here from nmon — the tag's source of truth is now this repo. Header documents the package Actions-access grant that becomes possible here (nmon's token was denied as the package source repo).renovate.json: custom manager tracking the pin against MCR (the mirror can't propose upgrades), same as nmon's, retargeted at the input default line.nmon's conversion to a thin caller follows as a separate PR once this is released (minor → v1.7.0).
🤖 Generated with Claude Code