Skip to content

ci: add riscv64 wheel build via native RISE runner#2

Merged
gounthar merged 6 commits intomainfrom
feat/riscv64-wheels
Apr 11, 2026
Merged

ci: add riscv64 wheel build via native RISE runner#2
gounthar merged 6 commits intomainfrom
feat/riscv64-wheels

Conversation

@gounthar
Copy link
Copy Markdown
Owner

@gounthar gounthar commented Apr 11, 2026

Internal benchmark PR — targeting the fork to get real build times on ubuntu-24.04-riscv before proposing this upstream to jcrist#987.

Upstream does not have the RISE runners app installed yet, so CI numbers need to come from here first.

Summary by CodeRabbit

  • Chores
    • CI updated to support building and distributing Python wheels for the RISC‑V (riscv64) architecture.
    • Added a dedicated, manually-triggerable workflow to produce and upload riscv64 wheel artifacts for benchmarking and distribution.

Add QEMU emulation for riscv64 and include riscv64 in the build matrix
so that linux_riscv64 wheels are built alongside existing architectures.
Signed-off-by: Bruno Verachten <gounthar@gmail.com>
The QEMU setup step was present but the riscv64 matrix entry was
missing, so it never triggered. Replace the QEMU approach with a
native ubuntu-24.04-riscv runner (RISE Project).

The pypa/cibuildwheel action calls actions/setup-python internally,
which has no riscv64 binaries. Add a dedicated riscv64 step that
installs cibuildwheel via pip and runs it directly, consistent with
how other projects handle native riscv64 CI with RISE runners.

Signed-off-by: Bruno Verachten <gounthar@gmail.com>
@gemini-code-assist
Copy link
Copy Markdown

Note

Gemini is unable to generate a review for this pull request due to the file types involved not being currently supported.

@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Apr 11, 2026

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: c57e9aa2-0ca9-4e3d-8316-a6c2629234ec

📥 Commits

Reviewing files that changed from the base of the PR and between 49fe4a1 and fa85a57.

📒 Files selected for processing (1)
  • .github/workflows/benchmark-riscv64.yml

📝 Walkthrough

Walkthrough

Added RISC-V CI support: build-wheels workflow gains an ubuntu-24.04-riscv matrix entry and conditional RISC-V build step; a new benchmark-riscv64.yml workflow provides a manual sdist → riscv64 wheel build pipeline with artifact upload.

Changes

Cohort / File(s) Summary
Build Wheels Workflow
​.github/workflows/build-wheels.yml
Added ubuntu-24.04-riscv matrix entry (archs: riscv64). Introduced a conditional step that installs cibuildwheel==3.2.1 and runs python3 -m cibuildwheel for riscv64; adjusted the existing Build & Test Wheels step to run only when matrix.archs != 'riscv64'.
RISC-V Benchmark Workflow
​.github/workflows/benchmark-riscv64.yml
New workflow (workflow_dispatch) with two jobs: sdist (builds sdist and uploads artifact-sdist) and build-riscv64 (downloads sdist on ubuntu-24.04-riscv, installs cibuildwheel==3.2.1, builds riscv64 wheels into wheelhouse, uploads artifact-wheels-riscv64).

Sequence Diagram(s)

mermaid
sequenceDiagram
participant Dev as "Developer (triggers workflow)"
participant GH as "GitHub Actions"
participant Runner as "ubuntu-24.04-riscv Runner"
participant CIBW as "cibuildwheel"
participant Art as "Artifact Storage"
Dev->>GH: workflow_dispatch (benchmark-riscv64)
GH->>Runner: run sdist job (uv build --sdist)
Runner->>Art: upload artifact-sdist
GH->>Runner: run build-riscv64 job (download sdist)
Runner->>CIBW: install & run python3 -m cibuildwheel (CIBW_ARCHS=riscv64)
CIBW->>Runner: produce wheelhouse/*.whl
Runner->>Art: upload artifact-wheels-riscv64

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Poem

🐰 I hopped into CI with a curious twitch,
Built sdists, then wheels for a riscv64 switch,
Artifacts tucked in a neat little stash,
RISC‑V wheels rolling with a soft little dash! 🚀

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly describes the main change: adding riscv64 wheel builds to CI using native RISE runner infrastructure.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/riscv64-wheels

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

workflow_dispatch trigger that builds the sdist then runs cibuildwheel
on the native ubuntu-24.04-riscv runner. Bypasses the full CI pipeline
which requires a fork release to exist. Produces real build times for
upstream discussion.

Signed-off-by: Bruno Verachten <gounthar@gmail.com>
@gounthar gounthar merged commit 8b559df into main Apr 11, 2026
1 of 2 checks passed
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