ci(test): build Rust extension in nav-hooks-guard before running the guard (#1752)#1753
Merged
Merged
Conversation
…the guard (#1752) nav-hooks-guard was the only Rust-extension-dependent CI job without a `maturin develop` step — it relied on the uv/.venv cache, whose key is hashFiles(pyproject.toml, uv.lock). A PR changing only crates/*.rs would restore a previously-built djust and exercise OLD rendering, so this now- BLOCKING render guard could pass (or fail) against a stale extension. Add `uv run maturin develop --release` after `uv sync`, mirroring the python-tests and playwright-tests jobs, so the guard always tests fresh code. Closes #1752 (item 1; items 2 blocking-soak + 3 CI-dedup remain tracked there). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Contributor
Author
Code Review (pipeline-run Stage 7) — APPROVESingle, well-scoped CI fix; closes #1752 item 1. What it does: Correctness:
Concern / edge cases considered:
Items 2 (blocking-soak) and 3 (CI dedup) remain tracked in #1752. APPROVE |
Contributor
Author
Retrospective — PR #1753 (#1752 item 1)Task: add Quality: 5/5Minimal, surgical CI fix; empirically validated by its own green CI run; mirrors the established sibling pattern exactly. What went well
What could be improved
Verified
|
johnrtipton
added a commit
that referenced
this pull request
Jun 8, 2026
…1752) (#1755) 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>
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.
Closes #1752 (item 1).
Problem
nav-hooks-guard(added in #1748, now a blocking CI gate) was the only Rust-extension-dependent job without amaturin developbuild step. Itsuv/.venvcache key ishashFiles('**/pyproject.toml','**/uv.lock'), so a PR that changes onlycrates/*.rs(no Python-dep change) restores a previously-built djust and the guard exercises old rendering behavior — a blocking render guard that can pass (or fail) against a stale extension.Fix
Add
uv run maturin develop --releaseafteruv sync --extra dev, mirroring thepython-testsandplaywright-testsjobs, so the guard always tests freshly-built code.Verification
playwright-testsjob.nav-hooks-guardmust stay green with the build step (confirms the step works and doesn't break the job).Follow-ups (remain in #1752)
continue-on-errorsoak for the Playwright-based guard.nav-hooks-guardandplaywright-tests(would prevent exactly this kind of copy-paste drift).🤖 Generated with Claude Code