ci: cross-build PyO3 extension for linux-aarch64 and macos-x86_64#16
ci: cross-build PyO3 extension for linux-aarch64 and macos-x86_64#16
Conversation
Previously the PyO3 extension was skipped for the two cross-compiled targets, leaving those wheels CLI-only. FastLED's SerialMonitor (and the rest of the fbuild-python API) was unavailable on those platforms. Build the extension for every target now: - linux aarch64: cargo-zigbuild --target aarch64-unknown-linux-gnu.2.17 (glibc, not musl, for manylinux_2_17 compatibility — CLI binaries remain musl for static-link portability) - macos x86_64: cargo rustc --target x86_64-apple-darwin with the same -undefined dynamic_lookup flag as the native macOS builds - PYO3_NO_PYTHON=1 + abi3-py39 lets pyo3-build-config skip host interpreter detection on cross builds Also adds a fail-fast check so missing extensions fail the job rather than silently shipping a CLI-only wheel.
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughThe workflow now builds PyO3 Python extensions for all target configurations instead of skipping cross-compilation. The build step branches by target type, with Linux cross and macOS cross using specific tools and parameters, while native builds use existing logic. Artifact staging, validation, and stripping behavior are updated accordingly. Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Poem
✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
Previously the PyO3 extension was skipped for the two cross-compiled targets, leaving those wheels CLI-only. FastLED's SerialMonitor (and the rest of the fbuild-python API) was unavailable on those platforms.
Build the extension for every target now:
Also adds a fail-fast check so missing extensions fail the job rather than silently shipping a CLI-only wheel.
Summary by CodeRabbit