Skip to content

[CI/Build] Publish ROCm nightly wheels to TestPyPI - #4266

Merged
Aionw merged 1 commit into
kvcache-ai:mainfrom
andyluo7:codex/rocm-nightly-testpypi
Sep 22, 2026
Merged

Aionw merged 1 commit into
kvcache-ai:mainfrom
andyluo7:codex/rocm-nightly-testpypi

Conversation

@andyluo7

@andyluo7 andyluo7 commented Sep 21, 2026 •

Copy link
Copy Markdown
Contributor

Description

Mooncake's scheduled nightly workflow already builds ROCm wheels for Python 3.10 and 3.12, but those artifacts are neither stamped with the computed nightly version nor included in the TestPyPI upload.

This change:

  • adds an optional version_override input to the reusable ROCm wheel workflow;
  • passes the nightly .devYYYYMMDD version into the ROCm build;
  • makes publish-testpypi wait for the ROCm wheel matrix and download its artifacts;
  • preserves the existing mooncake-wheel-rocm-ubuntu-* artifact names used by the MI350X integration workflow; and
  • adds a structural regression test for the version, dependency, artifact, and execution-order contracts.

This complements #4265, which rejects ROCm wheels built without multi-protocol routing. The PRs are independent: #4265 guards wheel correctness, while this PR makes validated development wheels available through the existing nightly TestPyPI channel.

Related roadmap: #3556.

Overlap: #3970 also edits ci_rocm.yml and nightly.yml as part of a broader packaging-backend migration, but it does not publish ROCm nightly wheels. If #3970 lands first, this small change will need to be rebased onto its root-package version override.

Deployment prerequisite: the existing TESTPYPI_API_TOKEN in the nightly environment must be authorized to create or upload the currently absent mooncake-transfer-engine-rocm TestPyPI project.

Module

  • Transfer Engine (mooncake-transfer-engine)
  • Mooncake Store (mooncake-store)
  • Mooncake Conductor (mooncake-conductor)
  • Reshard (mooncake-reshard)
  • Mooncake EP (mooncake-ep)
  • Mooncake PG (mooncake-pg)
  • Integration (mooncake-integration)
  • P2P Store (mooncake-p2p-store)
  • Python Wheel (mooncake-wheel)
  • Common (mooncake-common)
  • Mooncake RL (mooncake-rl)
  • CI/CD
  • Docs
  • Other

Type of Change

  • Bug fix
  • New feature
  • Refactor
  • Breaking change
  • Documentation update
  • Performance improvement
  • Other

How Has This Been Tested?

Test commands:

python3 -m unittest discover -s scripts/ci/tests -v
python3 -m pytest -q mooncake-wheel/tests/test_testpypi_wheel_gate.py
pre-commit run --files \
  .github/workflows/ci.yml \
  .github/workflows/ci_rocm.yml \
  .github/workflows/nightly.yml \
  scripts/ci/tests/test_nightly_rocm_publish.py
actionlint -shellcheck= \
  .github/workflows/ci.yml \
  .github/workflows/ci_rocm.yml \
  .github/workflows/nightly.yml
git diff --check

Test results:

  • Unit tests pass
  • Integration tests pass (if applicable)
  • Manual testing done (workflow YAML parsed successfully; the version-substitution command produced the expected PEP 440 nightly version)

Results: 7/7 CI-script tests and 6/6 TestPyPI gate tests passed. The scoped pre-commit suite and workflow syntax validation passed. Native ROCm wheel builds and TestPyPI publication require upstream CI and repository credentials and were not run locally.

Checklist

  • I have performed a self-review of my own code
  • I have formatted my code using the repository's scoped pre-commit hooks
  • I have run pre-commit on the files changed in this PR and all hooks pass
  • I have updated the documentation (not applicable; workflow-only change)
  • I have added tests to prove my changes are effective
  • For changes >500 LOC: not applicable (109 added lines)

AI Assistance Disclosure

  • No AI tools were used
  • AI tools were used (specified below)

OpenAI Codex inspected the existing nightly, ROCm build, integration, and publication workflows; implemented the scoped workflow changes and regression tests; and ran the validation commands listed above. The human submitter remains responsible for reviewing every changed line and for the TestPyPI credential configuration.

Signed-off-by: andyluo7 <andy.luo@amd.com>
@stmatengss

Copy link
Copy Markdown
Collaborator

@Aionw Could you double-check?

@Aionw Aionw left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@Aionw
Aionw merged commit a87818d into kvcache-ai:main Sep 22, 2026
27 checks passed
Aionw added a commit to Aionw/Mooncake that referenced this pull request Sep 28, 2026
Conflict resolution:
- .github/CODEOWNERS: kept both sides. The /python/mooncake/pg.py and
  /python/tests/pg/ entries stay grouped after /python/tests/ep/ (same
  owners), followed by main's
  /python/tests/services/test_http_metadata_server.py entry from kvcache-ai#3632.

All other files merged cleanly. .github/workflows/ci_rocm.yml now matches
main (including kvcache-ai#4266's setup-python change).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants