Run arm64 linux builds on their own job for faster CI

pull/16/head
Andrew Cassidy 2 years ago
parent b8a80235f8
commit 2a07db8c8f

@ -45,11 +45,15 @@ jobs:
path: dist/*.tar.gz path: dist/*.tar.gz
build-wheels: build-wheels:
name: Build Wheels for ${{ matrix.os }} name: Build Wheels on ${{ matrix.os }}-${{ matrix.arch[0] }}
runs-on: ${{ matrix.os }} runs-on: ${{ matrix.os }}
strategy: strategy:
matrix: matrix:
os: [ macos-11, windows-latest, ubuntu-latest ] os: [ macos-11, windows-latest, ubuntu-latest ]
arch: [ [ x86_64, AMD64, x86_64 ] ] #[mac, windows, linux] arch names
include:
- os: ubuntu-latest
arch: [ arm64, arm64, aarch64 ]
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
@ -71,19 +75,15 @@ jobs:
- name: Install QEMU - name: Install QEMU
# install QEMU if building for arm linux # install QEMU if building for arm linux
uses: docker/setup-qemu-action@v1 uses: docker/setup-qemu-action@v1
if: runner.os == 'Linux' if: matrix.arch == aarch64
with: with:
platforms: arm64 platforms: arm64
- name: Build wheels - name: Build wheels
uses: pypa/cibuildwheel@v2.4.0 uses: pypa/cibuildwheel@v2.4.0
env: env:
# these options are all specific to running in the CI. other options are in pyproject.toml
MACOSX_DEPLOYMENT_TARGET: "10.15" MACOSX_DEPLOYMENT_TARGET: "10.15"
CIBW_ARCHS_MACOS: "x86_64 universal2" CIBW_ARCHS_LINUX: ${{ matrix.arch[2] }}
CIBW_ARCHS_LINUX: "x86_64 aarch64"
CIBW_ARCHS_WINDOWS: "auto64"
CIBW_TEST_SKIP: "*-macosx_arm64 *-macosx_universal2:arm64"
- name: Upload Wheels - name: Upload Wheels
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v3

@ -13,7 +13,6 @@ build-backend = "setuptools.build_meta"
name = "quicktex" name = "quicktex"
description = "A fast block compression library for python" description = "A fast block compression library for python"
readme = "README.md" readme = "README.md"
license = { file = "LICENSE.md" }
authors = [{ name = "Andrew Cassidy", email = "drewcassidy@me.com" }] authors = [{ name = "Andrew Cassidy", email = "drewcassidy@me.com" }]
classifiers = [ classifiers = [
@ -54,16 +53,23 @@ packages = { find = { include = ["quicktex*"] } } # only include quicktex and no
package-data = { '*' = ['py.typed', '*.pyi'] } # include stubs package-data = { '*' = ['py.typed', '*.pyi'] } # include stubs
package-dir = { '' = '.' } # without this line, C++ source files get included in the bdist package-dir = { '' = '.' } # without this line, C++ source files get included in the bdist
[tool.setuptools_scm]
[tool.cibuildwheel] [tool.cibuildwheel]
build = "cp{37,38,39,31*}-*" build = "cp*" # only build wheels for cpython.
skip = ["*cp37-musllinux*", "*musllinux_aarch64*", "cp{38,39,31*}-macosx_x86_64"]
build-frontend = "build" build-frontend = "build"
test-command = "cd {project} && python -m unittest --verbose" test-command = "cd {project} && python -m unittest --verbose"
test-extras = ["tests"] test-extras = ["tests"]
manylinux-x86_64-image = "manylinux2014"
manylinux-aarch64-image = "manylinux2014" [tool.cibuildwheel.macos]
archs = ["x86_64", "universal2"] # build fat binaries, or x86-64 for python 3.7
skip = ["cp{38,39,31*}-macosx_x86_64"] # skip x86-only builds where fat binaries are supported
[tool.cibuildwheel.windows] [tool.cibuildwheel.windows]
test-command = "cd /d {project} && python -m unittest --verbose" archs = ["x86_64"] # arm64 windows builds not yet supported
test-command = "cd /d {project} && python -m unittest --verbose" # windows why is this flag required
[tool.setuptools_scm] [tool.cibuildwheel.linux]
skip = ["cp37-musllinux*", "*musllinux_aarch64*"] # skip targets without available Pillow wheels
manylinux-x86_64-image = "manylinux2014"
manylinux-aarch64-image = "manylinux2014"

Loading…
Cancel
Save