Repository navigation
[CI/Build] Improve nightly CI reliability and publishing diagnostics - #4750
Conversation
There was a problem hiding this comment.
🔵 Needs a closer look
Full nightly and publishing validation remain incomplete, and reduced mandatory hardware coverage needs maintainer sign-off.
No open issues 🎉
What changed in this PR
Improves nightly CI reliability and publishing diagnostics as a focused recovery step under RFC #4751.
Changes:
- Makes MI350X hardware tests opt-in and reports missing coverage while preserving required ROCm wheel checks.
- Bounds Docker build concurrency and adds resource diagnostics.
- Adds early TestPyPI credential checks, verbose uploads, and regression tests.
| File | Description |
|---|---|
| scripts/ci/tests/test_nightly_ci.py | Tests gate decisions, credentials, and Docker failure propagation. |
| docker/mooncake.Dockerfile | Limits CMake and PyTorch build concurrency. |
| .github/workflows/nightly.yml | Adds hardware selection, bounded builds, and publishing diagnostics. |
Review effort: Balanced
|
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
|
Read the full diff against the failure modes from last night's run. The three mechanisms all map cleanly:
|
…20261021 * upstream/main: (507 commits) [Reshard] Plan Store KV reuse across TP, PP and host layouts (kvcache-ai#4762) [Store] Walk tenants through shard-backed cursors and build the removes on them (kvcache-ai#4796) [Store-RS][Bugfix] Match TENT Request Layout to the C ABI (kvcache-ai#4732) [TransferEngine] Recover auto GID after data-path retry exhaustion (kvcache-ai#4290) [Store] Add the namespace layer over the object route (kvcache-ai#4721) [Store] Fix silent loss of offload keys deferred to the ungrouped pool (kvcache-ai#3006) (kvcache-ai#3009) [Store] Remove redundant alignment headroom from DFS shard allocation (kvcache-ai#4753) [CI/Build] Gate ROCm hardware tests and bound nightly Docker builds (kvcache-ai#4750) [Bugfix][Store] Fix double-counting of segment OpLog metrics in OpLogApplier (kvcache-ai#4771) [Store] Skip hot-cache writeback for device-resident read destinations (kvcache-ai#4764) [Reshard] Add bounded in-flight execution for weight transfers (kvcache-ai#4628) [Store] Avoid racing with detached hot-cache fills during key scans (kvcache-ai#4334) [Store] HA: drain the master on SIGTERM/SIGINT before exit (part 1 of kvcache-ai#4710) (kvcache-ai#4745) TENT: report a notification the receiver could not take (kvcache-ai#4754) [Store] Reach object metadata through a per-key accessor contract (kvcache-ai#4717) [Store][Bugfix] Fix DFS sync client test retry failure (kvcache-ai#4781) [Wheel] Keep integer dtype for typed_ragged rows when a row is an empty list (kvcache-ai#4611) [Doc] Sync README news onto the docs homepage (kvcache-ai#4767) [CI] remove stale Torch version binding after PG JIT (kvcache-ai#4760) [TransferEngine] Add buffer-protocol and page-gathered batch transfer APIs (kvcache-ai#4763) ...
…-ranges-20261021 * upstream/main: (394 commits) [Reshard] Plan Store KV reuse across TP, PP and host layouts (kvcache-ai#4762) [Store] Walk tenants through shard-backed cursors and build the removes on them (kvcache-ai#4796) [Store-RS][Bugfix] Match TENT Request Layout to the C ABI (kvcache-ai#4732) [TransferEngine] Recover auto GID after data-path retry exhaustion (kvcache-ai#4290) [Store] Add the namespace layer over the object route (kvcache-ai#4721) [Store] Fix silent loss of offload keys deferred to the ungrouped pool (kvcache-ai#3006) (kvcache-ai#3009) [Store] Remove redundant alignment headroom from DFS shard allocation (kvcache-ai#4753) [CI/Build] Gate ROCm hardware tests and bound nightly Docker builds (kvcache-ai#4750) [Bugfix][Store] Fix double-counting of segment OpLog metrics in OpLogApplier (kvcache-ai#4771) [Store] Skip hot-cache writeback for device-resident read destinations (kvcache-ai#4764) [Reshard] Add bounded in-flight execution for weight transfers (kvcache-ai#4628) [Store] Avoid racing with detached hot-cache fills during key scans (kvcache-ai#4334) [Store] HA: drain the master on SIGTERM/SIGINT before exit (part 1 of kvcache-ai#4710) (kvcache-ai#4745) TENT: report a notification the receiver could not take (kvcache-ai#4754) [Store] Reach object metadata through a per-key accessor contract (kvcache-ai#4717) [Store][Bugfix] Fix DFS sync client test retry failure (kvcache-ai#4781) [Wheel] Keep integer dtype for typed_ragged rows when a row is an empty list (kvcache-ai#4611) [Doc] Sync README news onto the docs homepage (kvcache-ai#4767) [CI] remove stale Torch version binding after PG JIT (kvcache-ai#4760) [TransferEngine] Add buffer-protocol and page-gathered batch transfer APIs (kvcache-ai#4763) ...
Description
Improve nightly CI reliability by making unavailable hardware coverage explicit, bounding Docker build resource use, and exposing actionable TestPyPI upload errors. RFC #4751 records the observed failures, evidence, recovery plan, and longer-term decisions.
NIGHTLY_ROCM_INTEGRATION=trueor therun_rocm_integrationdispatch input. Record the choice once, report missing coverage, and accept only an intentional hardware skip. Enabled hardware tests and ROCm wheel builds/smoke tests remain required.TestPyPI storage cleanup, upload-limit changes, and ongoing retention remain owner-side actions described in the RFC. The native test compilation regression was already fixed by #4729. The RFC also documents overlap with #4450 and #2951 and the relationship to the broader roadmap in #3556.
Suggested Merge Priority
Module
mooncake-transfer-engine)mooncake-store)mooncake-conductor)mooncake-reshard)mooncake-ep)mooncake-pg)mooncake-integration)mooncake-p2p-store)mooncake-wheel)mooncake-common)mooncake-rl)Type of Change
How Has This Been Tested?
Test commands:
python -m unittest discover -s scripts/ci/tests -v python -m pytest -q mooncake-wheel/tests/test_testpypi_wheel_gate.py actionlint -shellcheck='' .github/workflows/nightly.yml pre-commit run --files .github/workflows/nightly.yml docker/mooncake.Dockerfile scripts/ci/tests/test_nightly_ci.py git diff --checkTest results:
bash -n; changed-file pre-commit passed.The real hosted Docker build passed in about 32 minutes at
b1da7c6cfd669fd17055d764f7824562e032224d. The complete nightly run is still pending and was dispatched withskip_publish=true.The local Docker regression test uses a stub to check arguments, monitor cleanup, and exit-status preservation. No packages have been uploaded or deleted during this validation.
Checklist
./scripts/code_format.sh(not applicable: no C/C++ changes)AI Assistance Disclosure
OpenAI Codex investigated workflow logs, implemented the changes and regression tests, ran local validation, and prepared the RFC. The human submitter remains responsible for reviewing every changed line and understanding and defending the change end-to-end.