Repository navigation
Deploy Docs has been failing on main: one shared PTX toolchain action instead of five copies - #256
Merged
Merged
Conversation
Deploy Docs has failed on main for every run since 2026-10-09 with error: .../nightly-2026-09-17-.../lib/rustlib/src/rust/library/... (rust-src absent) > Task :backend-cuda:compilePtx FAILED :backend-cuda:compilePtx pins its own nightly and builds with -Zbuild-std, so it needs rust-src and links through llvm-bitcode-linker. A toolchain rustup auto-installs on first use arrives with the minimal profile and none of that, so every workflow reaching compilePtx must install the components explicitly. Five workflows reach it. ci, codeql, model-determinism and release each carried their own copy of the install step; docs had no Rust setup at all. Four green, one red, same root cause as two other defects today: a step copied into N places gets fixed in N-1 of them. All five now use .github/actions/ptx-toolchain, which is the single definition. The toolchain is an input defaulting to the pinned nightly so it can still be overridden without re-copying the step.
The PTX toolchain install existed in five copies and the one that was missing a component was the one nobody noticed, because the other four were green. That is the third defect today with the same shape: a change applied in N-1 of N places. check-workflow-duplication.py fails if any workflow installs the pinned nightly, rust-src or the nvptx64 target itself instead of using the shared action, and it has a mutation in mutation-check.py so it is proven to fail when the step is copied back inline. Six guards now pass clean and fail on their own defect.
…e checkout The shared action broke every workflow that used it: Can't find 'action.yml' ... under '/home/runner/work/models/models/.github/actions/ptx-toolchain' `uses: ./` resolves from the workspace root. All five of these workflows check the repository out with `path: models`, so the action is one level down and the reference has to be ./models/.github/actions/ptx-toolchain. I wrote the repo- relative path, which is what it looks like it should be and is not. Corrected in all five. The duplication check matches the repo-relative tail so it is independent of that prefix, and its comment now records why the prefix exists. The mutation harness caught its own anchor going stale in the same edit -- reported as 'mutation anchor missing' rather than passing, which is the fail-closed behaviour it was written for. Six guards green again.
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.
The failure
Deploy Docshas failed on main for every run since 2026-10-09::backend-cuda:compilePtxpins its own nightly and builds with-Zbuild-std, so it needsrust-srcand links throughllvm-bitcode-linker. A toolchainrustupauto-installs on first use arrives with the minimal profile and none of that.Why only docs
Five workflows reach
compilePtx.ci,codeql,model-determinismandreleaseeach carried their own copy of the install step.docshad no Rust setup at all.Four green, one red, and nothing connected the two facts. Same shape as two other defects found today: a step copied into N places gets fixed in N−1 of them.
The fix
All five now use
.github/actions/ptx-toolchain, a single composite action. The toolchain is an input defaulting to the pinned nightly, so it can be overridden without re-copying the step.scripts/integrity/check-workflow-duplication.pyfails if any workflow installs the pinned nightly,rust-srcor thenvptx64target itself, and it has a mutation inmutation-check.py— proven to fail when the step is copied back inline, not just asserted to.Six guards now pass on a clean tree and fail on their own defect.