ci(afm): gate wasm + playground build at PR time; harden docs rustdoc#41
Merged
Conversation
Mirror of the sibling aozora fix. The cargo-target / cargo-registry /
cargo-git / sccache named volumes were mounted at
/workspace/{target,.cargo,.sccache} — nested inside the `.:/workspace`
source bind mount. Because the dev container runs as root, the Docker
daemon created those host-side mountpoints (./target, ./.cargo,
./.sccache) as root, littering the working tree with root-owned dirs and
breaking any host-side cargo invocation.
Move all four caches to /cargo/* (CARGO_HOME=/cargo/home,
CARGO_TARGET_DIR=/cargo/target, SCCACHE_DIR=/cargo/sccache) — outside the
bind mount. The daemon no longer touches the host tree and the checkout
stays clean. The named volumes still persist the caches between runs. The
build-time rustup override (CARGO_HOME=/usr/local/cargo for the fuzz
stage's nightly install) is unaffected.
Verified: `docker compose run dev` leaves the host ./target absent.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The pre-push hook ran only `test` / `deny` / `prop-deep` (in parallel), even though the repo already owns an 18-step `just ci` recipe — so a push could still introduce a lint / check / doc / spec / coverage / upstream-diff / verify-version-pins / book regression that only surfaced on the PR. Mirror the sibling aozora repo: run `just ci` sequentially (cheap-to-expensive) with `prop-deep` as a trailing deep sweep, and drop the now-redundant standalone `test` / `deny`. Also bring over aozora's lefthook DX: an explicit `output:` block so failures stay loud across lefthook version bumps, and a `fail_text:` on every command with a concrete repro hint (matches the project's dev-visibility / "no silent death" posture). `prop-deep` is tagged `deep` for `SKIP_TAGS=deep` opt-out. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…tdoc - Add a PR-time `wasm-build` job (needs: check) that runs `just wasm-build` + `just playground-build`. afm-wasm and the Vite playground were built only post-merge in docs.yml, so a wasm-pack or playground regression stayed invisible until it blocked the Pages deploy. Now it fails the PR. Mirrors the sibling aozora repo's PR-time wasm-build job. (Native cross-target jobs aozora has — wasip1 / aarch64 / ffi / pandoc / wheel — are correctly NOT ported: afm has no such crates.) - Add `RUSTDOCFLAGS: "-D warnings"` to docs.yml's `cargo doc` step as defense-in-depth, so the deploy build can't ship a doc regression even if the ci.yml `doc` gate is ever weakened. Note: this gate verifies afm-wasm BUILDS; whether afm-wasm should also be PUBLISHED to npm (vs build-from-source for sibling hosts) remains an open owner decision and is intentionally out of scope here. 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.
wasm-buildjob (needs: check) runningjust wasm-buildjust playground-build. afm-wasm and the Vite playground were builtonly post-merge in docs.yml, so a wasm-pack / playground break stayed
invisible until it blocked the Pages deploy — now it fails the PR.
Mirrors aozora's PR-time wasm job. (aozora's native cross-target jobs —
wasip1 / aarch64 / ffi / pandoc / wheel — are correctly NOT ported.)
RUSTDOCFLAGS: "-D warnings"to docs.yml'scargo docstep asdefense-in-depth for the deploy build.
This gate verifies afm-wasm BUILDS; whether it should be PUBLISHED to npm
(vs build-from-source for sibling hosts) is an open owner decision, out of
scope here.
🤖 Generated with Claude Code