Skip to content

Merge pull request #361 from hawkinsp:cmake #925

Merge pull request #361 from hawkinsp:cmake

Merge pull request #361 from hawkinsp:cmake #925

Workflow file for this run

name: Test
on:
# Trigger the workflow on push or pull request, but only on main branch
push:
branches:
- main
pull_request:
branches:
- main
permissions: {}
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
cancel-in-progress: true
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
persist-credentials: false
- name: Set up Python 3.12
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version: 3.12
- uses: pre-commit/action@2c7b3805fd2a0fd8c1884dcaebf91fc102a13ecd # v3.0.1
build:
name: ${{ matrix.os }} Python ${{ matrix.python-version }} freethreaded ${{ matrix.freethreaded }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: ["ubuntu-latest"]
python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
freethreaded: [false, true]
exclude:
- python-version: 3.10
freethreaded: true
- python-version: 3.11
freethreaded: true
- python-version: 3.12
freethreaded: true
include:
- os: macos-14
python-version: "3.12"
freethreaded: false
- os: macos-14
python-version: "3.14"
freethreaded: true
- os: windows-2022
python-version: "3.12"
freethreaded: false
- os: windows-2022
python-version: "3.14"
freethreaded: true
- os: windows-11-arm
python-version: "3.12"
freethreaded: false
- os: windows-11-arm
python-version: "3.14"
freethreaded: true
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
submodules: true
persist-credentials: false
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version: ${{ matrix.python-version }}
freethreaded: ${{ matrix.freethreaded }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install .[dev]
- name: Run tests
run: |
pytest -n auto
build-nightly:
name: Python 3.14 with nightly numpy
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
submodules: true
persist-credentials: false
- name: Set up Python 3.14
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version: "3.14"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
python -m pip install scikit-build-core cmake wheel
python -m pip install -U --pre numpy \
-i https://pypi.anaconda.org/scientific-python-nightly-wheels/simple
python -c "import numpy; print(f'{numpy.__version__=}')"
- name: Build ml_dtypes
run: |
python -m pip install .[dev] --no-build-isolation
- name: Run tests
run: |
pytest -n auto
build-oldest-numpy:
name: Python 3.10 with oldest supported numpy
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
submodules: true
persist-credentials: false
- name: Set up Python 3.10
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version: "3.10"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
python -m pip install --upgrade scikit-build-core cmake wheel
- name: Build ml_dtypes
run: |
python -m pip install .[dev]
python -m pip install numpy==1.24.0 # keep in sync with oldest numpy version in pyproject.toml
- name: Run tests
run: |
pytest -n auto