fix(ci): serialize mise bootstrap to protect Node GPG state - #287
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Team Run ID: 📒 Files selected for processing (9)
Limit details: You’ve used all 8 included reviews currently available. 📝 WalkthroughWalkthroughCI and release workflows now serialize mise tool installation with ChangesMise installation serialization
Suggested reviewers: Priority: ⬇️ Low Merge Risk: ⚪ Minimal · up to No actionable current-head risk remains; the CI bootstrap race mitigation is ready to merge. 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
Full details: Docstring CoverageExplanation Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 4 functions across 2 files. (7 skipped: 7 unsupported.)
✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 Generate unit tests (beta)
Comment |
Concurrent installation of the pinned Node 24.12.0 and 22.23.2 versions can race GPG's initial directory/keyring creation on clean runners. This failed both the Rust bootstrap and the Python distribution build before project checks ran.
Serialize tool installation with
--jobs=1in CI/release mise-action setup andtools/init.sh. Install the complete root tool set in the Python/npm distribution setup: their firstmise execotherwise auto-installs omitted tools outside the serialized install. All tool/action version pins and signature verification remain unchanged; normal task/build concurrency is unchanged. The native audio setup uses an explicit Node-free tool set and needs no change.The pinned mise install implementation supports
--jobs=1, and the pinned action implementation forwardsinstall_argsto that command.Validation: 120 focused CI policy/public-tree tests pass; Ruff formatting/lint, actionlint, and
git diff --checkpass. Regression checks cover all automatic workflow installs, prevent partial installs from deferring the race tomise exec, and verify init stops when installation fails.Clean Linux verification at
996b07feedc2a55cebd6962895e5d7a0d7afc0b8: fresh bootstrap and Python distributions pass. Both logs show Node 24 installation completing before Node 22 starts, with successful GPG signatures and checksums for both. The distribution job's firstmise execno longer installs omitted tools.The complete CI run, including
CI / Required, and all CodeQL checks pass at this head. CodeRabbit approved the same commit with no inline findings.