Skip to content

Add Linux arm64 CI, pin GitHub Actions to hashes #384

Add Linux arm64 CI, pin GitHub Actions to hashes

Add Linux arm64 CI, pin GitHub Actions to hashes #384

Workflow file for this run

name: CI
on:
pull_request:
branches:
- master
push:
branches:
- master
workflow_dispatch:
schedule:
- cron: "0 4 * * *"
env:
PIP_DISABLE_PIP_VERSION_CHECK: "1"
FORCE_COLOR: "3"
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
test:
name: Regular tests / ${{ matrix.platform }} / Python ${{ matrix.python-version }}
runs-on: ${{ matrix.platform }}
strategy:
fail-fast: false
matrix:
platform: [ubuntu-latest, ubuntu-22.04-arm, macos-13, macos-latest, windows-latest]
python-version:
["3.9", "3.10", "3.11", "3.12", "3.13", "pypy-3.9", "pypy-3.10"]
# PyPy for Linux arm64 hasn't made it to a new release yet, see
# https://github.com/actions/setup-python/pull/1011
exclude:
- platform: ubuntu-22.04-arm
python-version: "pypy-3.9"
- platform: ubuntu-22.04-arm
python-version: "pypy-3.10"
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- uses: actions/setup-python@42375524e23c412d93fb67b49958b491fce71c38 # v5.4.0
with:
python-version: ${{ matrix.python-version }}
allow-prereleases: true
- uses: yezz123/setup-uv@ab6be5a42627f19dc36e57b548592a5e52cece4a # v4.1
# On PyPy, we skip SciPy because we don't have wheels
# available, see noxfile.py for more details.
- name: Run tests
run: uvx nox -s tests
# In this job, we test against the NumPy nightly wheels hosted on
# https://anaconda.org/scientific-python-nightly-wheels/numpy
# on the latest Python version available across platforms, instead of
# testing all Python versions and implementations on all platforms.
# We do not test on PyPy.
#
# However, "nox -s nightly-tests" can be used locally anywhere, on
# any Python version and implementation on any platform and we leave
# it to the user to decide what Python version to test against, which
# might or might not have a corresponding NumPy nightly wheel present.
nightlies:
name: Nightly tests / ${{ matrix.platform }} / Python ${{ matrix.python-version }}
runs-on: ${{ matrix.platform }}
strategy:
fail-fast: false
matrix:
platform: [ubuntu-latest, ubuntu-22.04-arm, macos-13, macos-latest, windows-latest]
python-version: ["3.x"]
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- uses: actions/setup-python@42375524e23c412d93fb67b49958b491fce71c38 # v5.4.0
with:
python-version: ${{ matrix.python-version }}
allow-prereleases: true
- uses: yezz123/setup-uv@ab6be5a42627f19dc36e57b548592a5e52cece4a # v4.1
- name: Run tests against nightly wheels for NumPy and SciPy
run: uvx nox -s nightly-tests