-
Notifications
You must be signed in to change notification settings - Fork 72
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Migrate to using native ARM runners for wheel builds #1031
Conversation
WalkthroughThe pull request modifies the GitHub Actions release workflow configuration for building Python wheels. The changes expand the build matrix to support multiple operating systems and architectures, including Ubuntu and macOS variants. A new matrix for MUSL libc builds is introduced, with dynamic configuration for Linux architectures and artifact naming. The workflow now provides more comprehensive cross-platform wheel building capabilities with increased flexibility in build configurations. Changes
Sequence DiagramsequenceDiagram
participant Workflow as Release Workflow
participant Builder as Wheel Builder
participant Artifact as Artifact Storage
loop Matrix Build
Workflow->>Builder: Configure build for OS/MUSL
alt Linux Build
Builder->>Builder: Set Linux Architecture
else macOS Build
Builder->>Builder: Configure macOS Build
end
Builder->>Artifact: Upload Wheel Artifact
end
The sequence diagram illustrates the workflow's new matrix-based build process, showing how different OS and MUSL configurations are processed and artifacts are generated across multiple platforms. Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 3
🧹 Nitpick comments (2)
.github/workflows/release.yml (2)
23-28
: Simplify MUSL matrix configuration.The current matrix configuration for MUSL builds could be simplified. The empty string in the MUSL matrix might cause confusion, and the exclusions could be more explicit.
Consider this alternative:
musl: [false, true] exclude: - os: macos-13 musl: true - os: macos-latest musl: true
44-44
: Improve artifact naming scheme.The current artifact naming might not be descriptive enough and could cause confusion when matrix values are empty.
Consider a more explicit naming scheme:
- name: wheels-${{ matrix.os }}-${{ matrix.musl }} + name: wheels-${{ matrix.os }}${{ matrix.musl && '-musllinux' || '' }}
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
.github/workflows/release.yml
(1 hunks)
🧰 Additional context used
🪛 actionlint (1.7.4)
.github/workflows/release.yml
18-18: label "ubuntu-24.04-arm" is unknown. available labels are "windows-latest", "windows-latest-8-cores", "windows-2022", "windows-2019", "ubuntu-latest", "ubuntu-latest-4-cores", "ubuntu-latest-8-cores", "ubuntu-latest-16-cores", "ubuntu-24.04", "ubuntu-22.04", "ubuntu-20.04", "macos-latest", "macos-latest-xl", "macos-latest-xlarge", "macos-latest-large", "macos-15-xlarge", "macos-15-large", "macos-15", "macos-14-xl", "macos-14-xlarge", "macos-14-large", "macos-14", "macos-13-xl", "macos-13-xlarge", "macos-13-large", "macos-13", "macos-12-xl", "macos-12-xlarge", "macos-12-large", "macos-12", "self-hosted", "x64", "arm", "arm64", "linux", "macos", "windows". if it is a custom label for self-hosted runner, set list of labels in actionlint.yaml config file
(runner-label)
🔇 Additional comments (1)
.github/workflows/release.yml (1)
16-38
: Verify ARM build migration strategy.While migrating to native ARM runners is a good approach for better build performance, please verify:
- The availability and capacity of ARM runners in your CI environment
- Build times comparison between emulated and native ARM builds
- Impact on CI costs and resource utilization
Run this script to analyze recent workflow runs and compare build times:
✅ Verification successful
ARM build migration strategy is properly configured
The workflow configuration shows a well-structured approach to native ARM builds:
- Build times are consistent (~30 minutes) across recent releases
- Matrix configuration correctly targets ARM architecture using ubuntu-24.04-arm
- Build toolchain and dependencies are properly configured for cross-platform builds
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Compare build times between different runner types gh run list --workflow=release.yml --json duration,status,conclusion,headBranch,databaseId --jq '.[] | select(.conclusion=="success") | {duration: .duration, branch: .headBranch, id: .databaseId}'Length of output: 432
Script:
#!/bin/bash # Get detailed workflow run information gh run list --workflow=release.yml --json startedAt,updatedAt,headBranch,status,conclusion --limit 10 # Check runner assignments in the workflow cat .github/workflows/release.yml # Look for any runner-related configurations fd -t f -e yml -e yaml . .github/Length of output: 3655
🧰 Tools
🪛 actionlint (1.7.4)
18-18: label "ubuntu-24.04-arm" is unknown. available labels are "windows-latest", "windows-latest-8-cores", "windows-2022", "windows-2019", "ubuntu-latest", "ubuntu-latest-4-cores", "ubuntu-latest-8-cores", "ubuntu-latest-16-cores", "ubuntu-24.04", "ubuntu-22.04", "ubuntu-20.04", "macos-latest", "macos-latest-xl", "macos-latest-xlarge", "macos-latest-large", "macos-15-xlarge", "macos-15-large", "macos-15", "macos-14-xl", "macos-14-xlarge", "macos-14-large", "macos-14", "macos-13-xl", "macos-13-xlarge", "macos-13-large", "macos-13", "macos-12-xl", "macos-12-xlarge", "macos-12-large", "macos-12", "self-hosted", "x64", "arm", "arm64", "linux", "macos", "windows". if it is a custom label for self-hosted runner, set list of labels in actionlint.yaml config file
(runner-label)
CodSpeed Performance ReportMerging #1031 will not alter performanceComparing Summary
|
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #1031 +/- ##
=========================================
Coverage 100.00% 100.00%
=========================================
Files 17 17
Lines 2681 2681
=========================================
Hits 2681 2681 ☔ View full report in Codecov by Sentry. |
GitHub now provides native ARM runners