feat: Add support for ubuntu-24.04-arm GHA runner (#2135)
* ci(gha): add tests on ubuntu-24.04-arm * address review comments
This commit is contained in:
@@ -37,7 +37,7 @@ jobs:
|
|||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
os: [ubuntu-latest, windows-latest, macos-13, macos-14]
|
os: [ubuntu-latest, ubuntu-24.04-arm, windows-latest, macos-13, macos-14]
|
||||||
python_version: ['3.13']
|
python_version: ['3.13']
|
||||||
include:
|
include:
|
||||||
- os: ubuntu-latest
|
- os: ubuntu-latest
|
||||||
@@ -88,7 +88,7 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
package-dir: sample_proj
|
package-dir: sample_proj
|
||||||
output-dir: wheelhouse_only
|
output-dir: wheelhouse_only
|
||||||
only: cp312-${{ runner.os == 'Linux' && 'manylinux_x86_64' || (runner.os == 'Windows' && 'win_amd64' || 'macosx_x86_64') }}
|
only: cp312-${{ runner.os == 'Linux' && (runner.arch == 'ARM64' && 'manylinux_aarch64' || 'manylinux_x86_64') || (runner.os == 'Windows' && 'win_amd64' || 'macosx_x86_64') }}
|
||||||
|
|
||||||
- name: Create custom configuration file
|
- name: Create custom configuration file
|
||||||
shell: bash
|
shell: bash
|
||||||
@@ -123,7 +123,7 @@ jobs:
|
|||||||
|
|
||||||
- name: Test cibuildwheel
|
- name: Test cibuildwheel
|
||||||
run: |
|
run: |
|
||||||
uv run bin/run_tests.py --run-podman
|
uv run bin/run_tests.py ${{ (runner.os == 'Linux' && runner.arch == 'X64') && '--run-podman' || '' }}
|
||||||
|
|
||||||
emulated-archs:
|
emulated-archs:
|
||||||
name: Get qemu emulated architectures
|
name: Get qemu emulated architectures
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ Usage
|
|||||||
|
|
||||||
| | Linux | macOS | Windows | Linux ARM | macOS ARM | Windows ARM |
|
| | Linux | macOS | Windows | Linux ARM | macOS ARM | Windows ARM |
|
||||||
|-----------------|-------|-------|---------|-----------|-----------|-------------|
|
|-----------------|-------|-------|---------|-----------|-----------|-------------|
|
||||||
| GitHub Actions | ✅ | ✅ | ✅ | ✅¹ | ✅ | ✅² |
|
| GitHub Actions | ✅ | ✅ | ✅ | ✅ | ✅ | ✅² |
|
||||||
| Azure Pipelines | ✅ | ✅ | ✅ | | ✅ | ✅² |
|
| Azure Pipelines | ✅ | ✅ | ✅ | | ✅ | ✅² |
|
||||||
| Travis CI | ✅ | | ✅ | ✅ | | |
|
| Travis CI | ✅ | | ✅ | ✅ | | |
|
||||||
| AppVeyor | ✅ | ✅ | ✅ | | ✅ | ✅² |
|
| AppVeyor | ✅ | ✅ | ✅ | | ✅ | ✅² |
|
||||||
@@ -88,7 +88,7 @@ jobs:
|
|||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
os: [ubuntu-latest, windows-latest, macos-13, macos-latest]
|
os: [ubuntu-latest, ubuntu-24.04-arm, windows-latest, macos-13, macos-latest]
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
# macos-13 is an intel runner, macos-14 is apple silicon
|
# macos-13 is an intel runner, macos-14 is apple silicon
|
||||||
os: [ubuntu-latest, windows-latest, macos-13, macos-14]
|
os: [ubuntu-latest, ubuntu-24.04-arm, windows-latest, macos-13, macos-14]
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
# macos-13 is an intel runner, macos-14 is apple silicon
|
# macos-13 is an intel runner, macos-14 is apple silicon
|
||||||
os: [ubuntu-latest, windows-latest, macos-13, macos-14]
|
os: [ubuntu-latest, ubuntu-24.04-arm, windows-latest, macos-13, macos-14]
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
|||||||
@@ -9,13 +9,13 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
# macos-13 is an intel runner, macos-14 is apple silicon
|
# macos-13 is an intel runner, macos-14 is apple silicon
|
||||||
os: [ubuntu-latest, windows-latest, macos-13, macos-14]
|
os: [ubuntu-latest, ubuntu-24.04-arm, windows-latest, macos-13, macos-14]
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Set up QEMU
|
- name: Set up QEMU
|
||||||
if: runner.os == 'Linux'
|
if: runner.os == 'Linux' && runner.arch == 'X64'
|
||||||
uses: docker/setup-qemu-action@v3
|
uses: docker/setup-qemu-action@v3
|
||||||
with:
|
with:
|
||||||
platforms: all
|
platforms: all
|
||||||
@@ -23,9 +23,13 @@ jobs:
|
|||||||
- name: Build wheels
|
- name: Build wheels
|
||||||
uses: pypa/cibuildwheel@v2.22.0
|
uses: pypa/cibuildwheel@v2.22.0
|
||||||
env:
|
env:
|
||||||
# configure cibuildwheel to build native archs ('auto'), and some
|
# configure cibuildwheel on Linux to build native archs ('auto'),
|
||||||
# emulated ones
|
# and to split the remaining architectures between the x86_64 and
|
||||||
CIBW_ARCHS_LINUX: auto aarch64 ppc64le s390x
|
# ARM runners
|
||||||
|
# armv7l can be built without QEMU on GitHub Actions ARM runners but that's
|
||||||
|
# not the case on all ARM64 hardware hence 'auto armv7l' for native archs
|
||||||
|
# on the GHA ARM64 runner
|
||||||
|
CIBW_ARCHS_LINUX: ${{ runner.arch == 'X64' && 'auto ppc64le s390x' || 'auto armv7l' }}
|
||||||
|
|
||||||
- uses: actions/upload-artifact@v4
|
- uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
|
|||||||
Reference in New Issue
Block a user