You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置GitHub托管Apple Silicon Runner的Workflow YAML文件?

问题:如何使用GitHub托管的Apple Silicon runner构建开源项目的ARM Wheels?

我维护一个包含Cython组件、需要构建wheels的开源Python项目,托管在GitHub并使用其CI/CD系统。目前只能构建x86 Mac wheels,因为之前GitHub只提供这类托管runner。虽然可以用自托管Apple Silicon runner,但现在还是手动构建Mac ARM wheels。GitHub相关的跟踪议题已经关闭,指向介绍大尺寸runner的博客,但这类runner不仅用不了还得付费。我试了好几种Workflow配置都没法触发GitHub托管的Apple Silicon runner,相关议题和博客还没法评论。现在想问:

  1. 怎么用GitHub托管的Apple Silicon runner?
  2. 这个功能对开源项目免费吗?

尝试过的无效配置示例

配置1:指定universal2架构

- os: macos-latest
  python-version: 3.8
  cibw-build: cp38-macosx_universal2
- os: macos-latest
  python-version: 3.9
  cibw-build: cp39-macosx_universal2
- os: macos-latest
  python-version: '3.10'
  cibw-build: cp310-macosx_universal2
- os: macos-latest
  python-version: 3.11
  cibw-build: cp311-macosx_universal2

配置2:尝试macos-latest-arm64标签

- os: macos-latest-arm64
  python-version: 3.8
  cibw-build: cp38-macosx_arm64
- os: macos-latest-arm64
  python-version: 3.9
  cibw-build: cp39-macosx_arm64
- os: macos-latest-arm64
  python-version: '3.10'
  cibw-build: cp310-macosx_arm64
- os: macos-latest-arm64
  python-version: 3.11
  cibw-build: cp311-macosx_arm64

配置3:指定macos-13系统

- os: macos-13
  python-version: 3.8
  cibw-build: cp38-macosx_arm64
- os: macos-13
  python-version: 3.9
  cibw-build: cp39-macosx_arm64
- os: macos-13
  python-version: '3.10'
  cibw-build: cp310-macosx_arm64
- os: macos-13
  python-version: 3.11
  cibw-build: cp311-macosx_arm64

配置4:尝试大尺寸runner标签

- os: ubuntu-latest
  python-version: 3.11
  cibw-build: cp311-manylinux_x86_64
- os: macos-latest-xlarge
  python-version: 3.8
  cibw-build: cp38-macosx_arm64
- os: macos-latest-xlarge
  python-version: 3.9
  cibw-build: cp39-macosx_arm64
- os: macos-latest-xlarge
  python-version: '3.10'
  cibw-build: cp310-macosx_arm64
- os: macos-latest-xlarge
  python-version: 3.11
  cibw-build: cp311-macosx_arm64
- os: macos-latest

解答

1. GitHub托管Apple Silicon runner的使用限制

GitHub目前的托管Apple Silicon(arm64)runner仅面向GitHub Team或Enterprise付费计划开放,属于大尺寸runner(Large/XLarge)范畴,开源项目无法免费使用这类托管资源。公开仓库的免费CI/CD资源仅支持x86架构的macOS runner(macos-latest对应x86的macOS 13/14)。

你之前的配置无效的原因:

  • macos-latest-arm64:GitHub从未提供过该官方标签,属于无效配置
  • macos-13:默认仍指向x86架构runner,不会触发ARM设备
  • macos-latest-xlarge:这类大尺寸runner需要付费订阅权限,开源项目无访问资格

2. 开源项目构建ARM Wheels的可行方案

方案1:使用自托管Apple Silicon runner

这是目前开源项目免费构建ARM wheels的唯一官方途径,配置步骤:

  1. 进入项目仓库「Settings → Actions → Runners」,点击「New self-hosted runner」
  2. 选择「macOS」→「ARM64」,按照页面提示的命令在你的Apple Silicon设备上完成runner注册
  3. 在Workflow中指定runs-on: self-hosted,配合CIBW配置构建arm64 wheels

方案2:交叉编译universal2 wheels

在x86的macOS runner上通过交叉编译生成同时支持x86和arm64的universal2 wheels,无需ARM硬件。调整后的CIBW配置示例:

jobs:
  build_wheels:
    runs-on: macos-latest
    steps:
      - uses: actions/checkout@v4
      - uses: pypa/cibuildwheel@v2.16.5
        env:
          CIBW_BUILD: "cp38-* cp39-* cp310-* cp311-*"
          CIBW_PLATFORM: macos
          CIBW_ARCHS_MACOS: universal2
          # 针对Cython组件配置交叉编译环境
          CIBW_ENVIRONMENT_MACOS: |
            ARCHFLAGS="-arch x86_64 -arch arm64"

方案3:第三方CI平台支持

部分第三方CI平台(如GitLab CI)提供免费的ARM runner资源,可迁移CI配置到这些平台完成构建。

内容的提问来源于stack exchange,提问作者Brian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 05:50:21