Skip to content

ci: add riscv64 manylinux wheel builds#1177

Open
gounthar wants to merge 2 commits intopyca:mainfrom
gounthar:feat/riscv64-wheels
Open

ci: add riscv64 manylinux wheel builds#1177
gounthar wants to merge 2 commits intopyca:mainfrom
gounthar:feat/riscv64-wheels

Conversation

@gounthar
Copy link

@gounthar gounthar commented Mar 18, 2026

Add native riscv64 wheel builds using RISE RISC-V runners (ubuntu-24.04-riscv) — no QEMU emulation.

Changes

  • New manylinux-riscv64 job in wheel-builder.yml
  • Uses native RISE riscv64 runners (as discussed — no QEMU)
  • Installs Rust via rustup, Python from /opt/python-3.12
  • Cargo registry cached across runs
  • Same smoke test as existing jobs

Evidence

Context

Updated per @reaperhulk's feedback — switched from QEMU to native runners.

Related: riscv64 Docker images for pyca infra: pyca/infra#748

Signed-off-by: Bruno Verachten <gounthar@gmail.com>
@reaperhulk
Copy link
Member

Thanks for the contribution but we won’t ship wheels for architectures we don’t test. For CI we require native (and ephemeral) runners with sufficient performance as a general rule to keep our CI pleasant to use, so qemu isn’t an option there unfortunately.

@gounthar
Copy link
Author

gounthar commented Mar 18, 2026

@reaperhulk Understood, makes total sense. Native riscv64 runners are becoming available through RISE, which provides free ephemeral self-hosted runners on real hardware. I'll revisit this once those are ready for pyca. Thanks for considering it.

Replace QEMU emulation with native riscv64 runners (ubuntu-24.04-riscv)
provided by the RISE project. Build time: ~5.5 minutes on native hardware.

Uses /opt/python-3.12/bin/python3.12 and rustup (system versions on
RISE runners). Cargo registry cached across runs.

Validated on riseproject-dev/bcrypt fork:
riseproject-dev#1

Thanks to Ludovic Henry and RISE for providing native riscv64 runners.

Signed-off-by: Bruno Verachten <gounthar@gmail.com>
@gounthar
Copy link
Author

gounthar commented Mar 18, 2026

@reaperhulk Updated. Switched from QEMU to native riscv64 runners provided by RISE. Build time is ~5.5 minutes on real hardware. Validated on a fork: riseproject-dev#1

Also opened pyca/infra#748 for the riscv64 Docker images needed for the full pyca build pipeline.

@gounthar
Copy link
Author

gounthar commented Mar 18, 2026

@luhenry Thank you for enabling the RISE riscv64 runners that made this possible. Would it be possible to add native runners for the pyca organization as well? That would unblock riscv64 wheels for cryptography, bcrypt, and pynacl, three of the most downloaded packages on PyPI.

@luhenry
Copy link

luhenry commented Mar 18, 2026

@luhenry Thank you for enabling the RISE riscv64 runners that made this possible. Would it be possible to add native runners for the pyca organization as well? That would unblock riscv64 wheels for cryptography, bcrypt, and pynacl, three of the most downloaded packages on PyPI.

I’ll add them tomorrow. Now that we have access to more runners I’ll make sure to lift the restriction on registered organizations

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

3 participants