name: CI
on:
push:
branches:
- main
tags:
- "*"
pull_request:
workflow_dispatch:
permissions:
contents: read
jobs:
tests:
runs-on: ${{ matrix.platform.runner }}
strategy:
matrix:
platform:
- runner: ubuntu-24.04
target: x86_64
- runner: ubuntu-24.04
target: aarch64
- runner: ubuntu-24.04
target: armv7
- runner: windows-latest
target: x64
- runner: macos-13
target: x86_64
- runner: macos-14
target: aarch64
steps:
- uses: actions/checkout@v4
- name: Install uv
uses: astral-sh/setup-uv@v5
with:
enable-cache: true
cache-dependency-glob: "uv.lock"
- name: Install maturin
run: uv tool install maturin
- name: Install ruff
run: uv tool install ruff
- name: Set up Python
run: uv python install
- name: Set up venv and install dependencies
run: uv sync --no-install-project --managed-python
- name: Install wheel
run: uv run --no-sync maturin develop
- name: Check
run: uv run --no-sync ruff check
- name: Tests
run: uv run --no-sync pytest tests