ci: extract shared Playwright-server harness into a composite action (#1752)#1755
Conversation
…1752) nav-hooks-guard and playwright-tests duplicated ~9 setup steps (Python/uv/cache/ uv sync/maturin build/playwright install/migrate/start server/wait). #1753 had to patch the missing maturin step into nav-hooks-guard precisely because the copy had drifted. Extract the shared harness into .github/actions/djust-playwright-server (composite); both jobs now `uses:` it after checkout, then run their own test step + log upload + server stop. One definition can't drift a step out of one job (parallel-path-drift, #1646). Both jobs keep their identity: playwright-tests stays continue-on-error (optional), nav-hooks-guard stays blocking; test-summary wiring unchanged. Closes #1752. Item 1 (maturin) shipped in #1753; item 2 (blocking-soak) resolved by decision — keep nav-hooks-guard blocking (green across #1748/#1753/#1754); item 3 (this dedup). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Code Review (pipeline-run Stage 7) — APPROVECI-only refactor; closes #1752. No 🔴. What it does: extracts the 9 shared setup steps into Correctness:
Concern / edge cases considered:
Item 2 (blocking-soak): resolved by decision — keep APPROVE |
Retrospective — PR #1755 (#1752)Task: extract the shared Playwright-server harness into a composite action (#1752 item 3); resolve item 2 (keep blocking) by decision. Item 1 (maturin) shipped in #1753. Quality: 5/5Fixes the root cause of the whole #1752 thread — the duplication that let the maturin step drift out of one job — not just its symptom. What went well
What could be improved
Verified
|
Closes #1752.
Problem
nav-hooks-guardandplaywright-testsduplicated ~9 setup steps (Python/uv/cache/uv sync/maturin build/Playwright install/migrate/start server/wait). #1753 had to patch the missingmaturin developstep intonav-hooks-guardspecifically because the copy had drifted out of sync — textbook parallel-path drift (#1646).Fix (item 3)
Extract the shared harness into a composite action
.github/actions/djust-playwright-server. Both jobs nowactions/checkout→uses: ./.github/actions/djust-playwright-server→ run their own test step → uploadserver.logon failure → stop server.playwright-testsstayscontinue-on-error: true(optional),nav-hooks-guardstays blocking;test-summaryneeds/AND-condition unchanged.+95/−126).Items 1 & 2
nav-hooks-guardblocking. The soak concern (Free-threaded hardening / perf polish (follow-up to #1432) #1534) is retroactively satisfied — it has run green across Refs #1745 -- Harden nav/hooks regression guard #1748, ci(test): build Rust extension in nav-hooks-guard before running the guard (#1752) #1753, and fix(render): close-side </div> tolerance + consolidate dj-root scanners (#1751) #1754, and the condition-based waits (Refs #1745 -- Harden nav/hooks regression guard #1748) reduce flake.Verification
runstep declaresshell: bash; both jobs preserve checkout→composite ordering + their stop/upload steps +continue-on-errorsettings.playwright-testsandnav-hooks-guardmust run green through the composite (a new runner-only path; per Free-threaded hardening / perf polish (follow-up to #1432) #1534, ≥1 runner iteration may be expected for composite-action quirks).🤖 Generated with Claude Code