Skip to content

Commit 64b26e1

Browse files
authored
Merge pull request #1320 from effigies/ci/osx
CI: Add arm64 runners for macos-latest, macos-13 runners for x64
2 parents a2e5dee + feda198 commit 64b26e1

File tree

2 files changed

+29
-7
lines changed

2 files changed

+29
-7
lines changed

.github/workflows/test.yml

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,9 +112,9 @@ jobs:
112112
strategy:
113113
fail-fast: false
114114
matrix:
115-
os: ['ubuntu-latest', 'windows-latest', 'macos-latest']
115+
os: ['ubuntu-latest', 'windows-latest', 'macos-13', 'macos-latest']
116116
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
117-
architecture: ['x64', 'x86']
117+
architecture: ['x64', 'x86', 'arm64']
118118
dependencies: ['full', 'pre']
119119
include:
120120
# Basic dependencies only
@@ -130,12 +130,33 @@ jobs:
130130
python-version: '3.12'
131131
dependencies: 'dev'
132132
exclude:
133+
# x86 for Windows + Python<3.12
133134
- os: ubuntu-latest
134135
architecture: x86
136+
- os: macos-13
137+
architecture: x86
135138
- os: macos-latest
136139
architecture: x86
137140
- python-version: '3.12'
138141
architecture: x86
142+
# arm64 is available for macos-14+
143+
- os: ubuntu-latest
144+
architecture: arm64
145+
- os: windows-latest
146+
architecture: arm64
147+
- os: macos-13
148+
architecture: arm64
149+
# x64 is not available for macos-14+
150+
- os: macos-latest
151+
architecture: x64
152+
# Drop pre tests for macos-13
153+
- os: macos-13
154+
dependencies: pre
155+
# Drop pre tests for SPEC-0-unsupported Python versions
156+
- python-version: '3.8'
157+
dependencies: pre
158+
- python-version: '3.9'
159+
dependencies: pre
139160

140161
env:
141162
DEPENDS: ${{ matrix.dependencies }}

tox.ini

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -43,14 +43,14 @@ DEPENDS =
4343
ARCH =
4444
x64: x64
4545
x86: x86
46+
arm64: arm64
4647

4748
[testenv]
4849
description = Pytest with coverage
4950
labels = test
5051
install_command =
5152
python -I -m pip install -v \
52-
x64: --only-binary numpy,scipy,h5py,pillow \
53-
x86: --only-binary numpy,scipy,h5py,pillow,matplotlib \
53+
--only-binary numpy,scipy,h5py,pillow,matplotlib \
5454
pre,dev: --extra-index-url https://pypi.anaconda.org/scientific-python-nightly-wheels/simple \
5555
{opts} {packages}
5656
pip_pre =
@@ -91,11 +91,11 @@ deps =
9191
pre: numpy <2.0.dev0
9292
dev: numpy >=2.0.dev0
9393
# Scipy stopped producing win32 wheels at py310
94-
py3{8,9}-full-x86,x64: scipy >=1.6
94+
py3{8,9}-full-x86,x64,arm64: scipy >=1.6
9595
# Matplotlib depends on scipy, so cannot be built for py310 on x86
96-
py3{8,9}-full-x86,x64: matplotlib >=3.4
96+
py3{8,9}-full-x86,x64,arm64: matplotlib >=3.4
9797
# h5py stopped producing win32 wheels at py39
98-
py38-full-x86,x64: h5py >=2.10
98+
py38-full-x86,x64,arm64: h5py >=2.10
9999
full,pre,dev: pillow >=8.1
100100
full,pre,dev: indexed_gzip >=1.4
101101
full,pre,dev: pyzstd >=0.14.3
@@ -106,6 +106,7 @@ commands =
106106
pytest --doctest-modules --doctest-plus \
107107
--cov nibabel --cov-report xml:cov.xml \
108108
--junitxml test-results.xml \
109+
--durations=20 --durations-min=1.0 \
109110
--pyargs nibabel {posargs:-n auto}
110111

111112
[testenv:install]

0 commit comments

Comments
 (0)