ci: make release sccache failures non-fatal - #1079
Conversation
📝 WalkthroughWalkthroughThe PR configures sccache with a disk-first, best-effort GitHub Actions cache chain, adds disk-only fallback behavior, strengthens release contract validation, and updates CI documentation and inventory. Changessccache cache contract
Estimated code review effort: 3 (Moderate) | ~20 minutes Sequence Diagram(s)sequenceDiagram
participant ReleaseWorkflow
participant ConfigureSccacheGHA
participant Sccache
participant GithubActionsCache
ReleaseWorkflow->>ConfigureSccacheGHA: configure sccache environment
ConfigureSccacheGHA->>Sccache: start disk,gha cache chain
Sccache->>GithubActionsCache: probe best-effort remote cache
ConfigureSccacheGHA->>Sccache: restart with disk-only chain on probe failure
Possibly related PRs
Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
🧹 Nitpick comments (1)
tools/xtask/src/workflow_checks.rs (1)
439-459: 🎯 Functional Correctness | 🔵 Trivial | ⚡ Quick winValidate exact configuration values, not substrings.
ensure_containscan accept malformed workflow values such asSCCACHE_MULTILEVEL_CHAIN: disk,gha-disabledorSCCACHE_MULTILEVEL_WRITE_ERROR_POLICY: ignore-disabled. Since this checker gates the release fallback contract, use exact-line/scoped validation (or parsed YAML/source checks) and add wrong-value regression tests.Also applies to: 487-502
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@tools/xtask/src/workflow_checks.rs` around lines 439 - 459, The release workflow checks in the validation function around the required sccache entries currently allow malformed values through substring matching. Replace the ensure_contains checks for SCCACHE_DIR, SCCACHE_IGNORE_SERVER_IO_ERROR, SCCACHE_MULTILEVEL_CHAIN, and SCCACHE_MULTILEVEL_WRITE_ERROR_POLICY with exact-line or scoped YAML/source validation, and add regression tests proving suffixed or otherwise incorrect values are rejected.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Nitpick comments:
In `@tools/xtask/src/workflow_checks.rs`:
- Around line 439-459: The release workflow checks in the validation function
around the required sccache entries currently allow malformed values through
substring matching. Replace the ensure_contains checks for SCCACHE_DIR,
SCCACHE_IGNORE_SERVER_IO_ERROR, SCCACHE_MULTILEVEL_CHAIN, and
SCCACHE_MULTILEVEL_WRITE_ERROR_POLICY with exact-line or scoped YAML/source
validation, and add regression tests proving suffixed or otherwise incorrect
values are rejected.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro Plus
Run ID: d847d9fd-0b85-4259-a9c1-ecf19b86d64a
📒 Files selected for processing (5)
.agents/skills/manage-ci/references/current-inventory.md.github/actions/configure-sccache-gha/action.yml.github/workflows/release.ymlci/ci.mdtools/xtask/src/workflow_checks.rs
* origin/main: Fix Metal small-batch matmul parity for GLM verification (#1078) Handle K-only transposed KV page import and export (#1084) Refresh llama.cpp upstream patch queue (#1085) chore: improve embedded native-runtime compatibility guidance (#1043) fix(console-ui): chat transcript snapping during live status updates (#1083) ci: bump Linux CUDA slim container to gha-convention base runner image fix: record activation cache prefix identities (#1041) fix: read-only model download caches (#1042) ci: disable sccache for Windows ROCm native runtime build (#1087) ci: fix v0.74 release GPU builds (sccache disk-only + force_hosted_runners) (#1086) Make release sccache failures non-fatal (#1079) Keep client-only nodes out of model election (#1074) # Conflicts: # crates/mesh-llm-host-runtime/src/runtime/auto_join.rs # crates/mesh-llm-host-runtime/src/runtime/tests/auto_join.rs # third_party/llama.cpp/patches/0004-Add-lanes-external-media-and-chat-grammar-support.patch
Summary
Investigation
Release run https://github.com/Mesh-LLM/mesh-llm/actions/runs/30063516285 failed for two cache-related reasons:
Both failures blocked release artifacts even though the compiler inputs and build logic were otherwise valid.
Validation
actionlint -config-file .github/actionlint.yamlgit diff --checkjust check-releasejust with-lld cargo test -p xtask workflow_checksjust with-lld cargo fmt --all -- --checkjust with-lld cargo check -p xtaskjust with-lld cargo clippy -p xtask --all-targets -- -D warningsA release workflow dispatch was not started: the repository CI policy requires explicit authorization for that expensive live operation.
Summary by CodeRabbit
CI Improvements
Documentation