Skip to content

[CI] Publish nightly sglang wheel under both cu129 and cu130 indexes#24176

Merged
Kangyan-Zhou merged 1 commit intomainfrom
fix_nightly_sgl_kernel
Apr 30, 2026
Merged

[CI] Publish nightly sglang wheel under both cu129 and cu130 indexes#24176
Kangyan-Zhou merged 1 commit intomainfrom
fix_nightly_sgl_kernel

Conversation

@Kangyan-Zhou
Copy link
Copy Markdown
Collaborator

Summary

  • Matrix release-nightly over cuda_version: ['129', '130'] so the daily nightly wheel is registered under both cu129/sglang/ and cu130/sglang/ on sgl-project/whl. The wheel itself is CUDA-agnostic and built once; only the index registration differs. max-parallel: 1 serializes the two legs since they both clone and push to the same sgl-whl branch.
  • Removed the now-unused cuda_version workflow_dispatch input — both variants are always published.
  • Tightened silent-return paths in scripts/update_nightly_whl_index.py so a broken artifact download fails loudly instead of producing a green workflow run with no index update:
    • missing dist/FileNotFoundError
    • empty dist/RuntimeError
    • per-wheel hash error: propagate instead of silently skipping

Effect on sgl-project/whl (default branch gh-pages)

path before after
cu129/sglang/index.html live nightly index new wheel link prepended
cu130/sglang/ does not exist created; index written
cu130/index.html sgl-kernel, sglang-kernel sgl-kernel, sglang, sglang-kernel (sorted, merged)

After this lands, users can install nightlies via either:

pip install sglang --pre --extra-index-url https://sgl-project.github.io/whl/cu129/
pip install sglang --pre --extra-index-url https://sgl-project.github.io/whl/cu130/

Test plan

  • python3 -c "import ast; ast.parse(...)" on the modified script
  • Smoke-tested update_nightly_whl_index.py against synthetic dist/:
    • happy path (cu130, fresh folder) → exit 0, correct cu130/index.html and cu130/sglang/index.html
    • missing dist/ → exit 1, FileNotFoundError
    • empty dist/ → exit 1, RuntimeError
  • First scheduled run (or manual workflow_dispatch) confirms both cu129/sglang/ and cu130/sglang/ are updated and the GH Release contains the wheel exactly once

🤖 Generated with Claude Code

The single nightly wheel is CUDA-agnostic, so we register the same
artifact under cu129/sglang/ and cu130/sglang/ on sgl-project/whl by
matrixing release-nightly over cuda_version. max-parallel: 1 serializes
the two legs because both clone and push to the same sgl-whl branch.

Also tighten silent-return paths in update_nightly_whl_index.py so a
broken artifact download fails the workflow loudly instead of producing
a green run with no index update:
  - missing dist/ -> FileNotFoundError
  - empty  dist/ -> RuntimeError
  - per-wheel hash error: propagate instead of swallowing

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@gemini-code-assist
Copy link
Copy Markdown
Contributor

Warning

You have reached your daily quota limit. Please wait up to 24 hours and I will start processing your requests again!

@Kangyan-Zhou Kangyan-Zhou merged commit e45b8ec into main Apr 30, 2026
46 checks passed
@Kangyan-Zhou Kangyan-Zhou deleted the fix_nightly_sgl_kernel branch April 30, 2026 23:09
vguduruTT pushed a commit to vguduruTT/sglang that referenced this pull request May 2, 2026
…gl-project#24176)

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant