ci: ci.yml introduce riscv64 linux and musllinux to wheels build#1666
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #1666 +/- ##
=======================================
Coverage 99.76% 99.76%
=======================================
Files 33 33
Lines 3401 3401
Branches 461 461
=======================================
Hits 3393 3393
Misses 5 5
Partials 3 3 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
5befd46 to
595dbec
Compare
fb8be59 to
f22f1ee
Compare
|
force pushed with requested changes rolled into single commit, resolves linter reported errors in commit subject formatting |
f22f1ee to
092db90
Compare
1b00238 to
092db90
Compare
|
I don't know what to suggest to fix the more general workflow problems on this repository for external contributions, tracking issue for that is #1668 |
092db90 to
a3c2401
Compare
Adding RISC-V architecture to build and publish workflow via QEMU Dropped pyver 3.9 from riscv64 as suggested in code review Co-authored-by: J. Nick Koston <nick+github@koston.org>
a3c2401 to
8e703fa
Compare
|
@bluetoothbot review |
PR Review — ci: ci.yml introduce riscv64 linux and musllinux to wheels buildMechanically the change is correct and mirrors the established armv7l QEMU-split pattern, just with riscv64 as the target arch. The cp39 entries from the earlier revision are gone, addressing @bdraco's review comments. Two non-blocking notes: (1) the new entries use YAML flow style while the surrounding armv7l entries use block style — worth normalising for grep/diff ergonomics; (2) cp314t on emulated riscv64 is the riskiest cell and worth watching on the first green run before relying on it. No correctness, security, or build-correctness concerns with the matrix itself ( 🟢 Suggestions1. Match the existing block-style YAML for matrix entries (`.github/workflows/ci.yml`, L261-272)The existing armv7l entries above (lines 197-260) use multi-line block style: - os: ubuntu-latest
qemu: armv7l
musl: "musllinux"
pyver: cp310The new riscv64 entries use YAML flow style ( 2. cp314t under emulated riscv64 will be slow and potentially flaky (`.github/workflows/ci.yml`, L266-272)Free-threaded CPython under QEMU user-mode emulation is the slowest combination in this matrix (no GIL fast paths, all-emulated). The PR description cites ~55 min wall time for the full split — the cp314t-riscv64 cell is likely to be the long-tail straggler and the one most prone to timeouts as cibuildwheel pulls in the free-threaded toolchain in an emulated rootfs. It's worth verifying the cp314t-riscv64-musllinux and cp314t-riscv64-manylinux cells actually green on the first run before declaring this matrix stable; if they routinely timeout, consider dropping just those two entries (cp310–cp314 still gives RISC-V coverage) rather than letting them block the wheel job. Checklist
SummaryMechanically the change is correct and mirrors the established armv7l QEMU-split pattern, just with riscv64 as the target arch. The cp39 entries from the earlier revision are gone, addressing @bdraco's review comments. Two non-blocking notes: (1) the new entries use YAML flow style while the surrounding armv7l entries use block style — worth normalising for grep/diff ergonomics; (2) cp314t on emulated riscv64 is the riskiest cell and worth watching on the first green run before relying on it. No correctness, security, or build-correctness concerns with the matrix itself ( |
Let's add the build and publish of RISC-V architecture to the workflows using qemu split target strategy similar to how this is currently done for armv7l
Relative build duration comparison:
0h 49m 01s qemu split strategy on RISE RISC-V Runners
ubuntu-24.04-riscv1h 51m 48s default strategy RISE RISC-V Runners
ubuntu-24.04-riscv0h 55m 28s qemu split strategy on GitHub Actions runners
ubuntu-latestI'm sending this PR with changes aligned with the latter strategy (qemu split on GitHub Actions runners) as it fits closest to the existing build system and does not involve any decision making on whether to integrate the RISE RISC-V Runners add-on from GitHub marketplace to the repo; and the build time is comparable or favorable, even.
Resolves: #1665