Skip to content

fix(ci): use native ARM64 runner for Linux aarch64 wheel build#1501

Merged
douenergy merged 1 commit intoCanner:mainfrom
goldmedal:fix/pypi-linux-aarch64-build
Apr 1, 2026
Merged

fix(ci): use native ARM64 runner for Linux aarch64 wheel build#1501
douenergy merged 1 commit intoCanner:mainfrom
goldmedal:fix/pypi-linux-aarch64-build

Conversation

@goldmedal
Copy link
Copy Markdown
Contributor

@goldmedal goldmedal commented Apr 1, 2026

Summary

  • Switch Linux aarch64 wheel build from cross-compilation on ubuntu-latest (x86_64) to native ubuntu-24.04-arm runner
  • Fixes ring crate build failure: #error "ARM assembler must define __ARM_ARCH" when cross-compiling with aarch64-unknown-linux-gnu-gcc

Root Cause

The ring crate's assembly files require __ARM_ARCH to be defined by the compiler. When cross-compiling on x86_64 with the GCC cross-compiler, this macro is not set, causing the build to fail. Using a native ARM64 runner eliminates cross-compilation entirely.

Ref: https://github.com/Canner/wren-engine/actions/runs/23836078522/job/69480140572

Test plan

  • Trigger pypi-publish.yml workflow and verify all 5 wheel builds pass

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Chores
    • Optimized the build process for ARM64 architecture by utilizing native ARM64 runners, which may improve build reliability and performance on ARM-based systems.

Cross-compiling ring crate on x86_64 for aarch64 fails because the
GCC cross-compiler doesn't define __ARM_ARCH. Switch to ubuntu-24.04-arm
native runner to avoid cross-compilation entirely.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@github-actions github-actions bot added the ci label Apr 1, 2026
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Apr 1, 2026

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 13c5f5e1-24cc-42db-afd0-f8b177d31bdc

📥 Commits

Reviewing files that changed from the base of the PR and between a524a75 and 2d42823.

📒 Files selected for processing (1)
  • .github/workflows/pypi-publish.yml

📝 Walkthrough

Walkthrough

The PyPI publishing GitHub Actions workflow was updated to use a native ARM64 runner (ubuntu-24.04-arm) instead of the x86_64 ubuntu-latest runner for building wheels targeting the aarch64-unknown-linux-gnu platform. All other workflow logic remains unchanged.

Changes

Cohort / File(s) Summary
CI/CD Workflow Configuration
.github/workflows/pypi-publish.yml
Updated the wheel-build matrix to use native ARM64 runner (ubuntu-24.04-arm) for aarch64 architecture builds instead of x86_64 ubuntu-latest.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Poem

🐰 Hopping swift on forty-eight's bright ARM,
No more the x86 shall cause alarm,
Native runners now build wheels so fine,
For aarch64 platforms, a perfect design! ✨

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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.

@douenergy douenergy merged commit 0c3f6e6 into Canner:main Apr 1, 2026
2 of 3 checks passed
@goldmedal goldmedal deleted the fix/pypi-linux-aarch64-build branch April 1, 2026 07:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants