Skip to content

migrate to pybind11 #280

migrate to pybind11

migrate to pybind11 #280

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
workflow_dispatch:
defaults:
run:
shell: bash
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
run-tests:
name: Run tests for ${{ matrix.python-version }}-${{ matrix.os-platform[1] }}
runs-on: ${{ matrix.os-platform[0] }}
timeout-minutes: 30
env:
CIBW_BUILD_FRONTEND: "build[uv]"
strategy:
fail-fast: false
matrix:
python-version: [38, 310, 311, 312]
os-platform:
[
[ubuntu-latest, manylinux_x86_64],
[ubuntu-latest, manylinux_aarch64],
[windows-latest, win_amd64],
[macos-12, macosx_x86_64],
[macos-14, macosx_arm64],
]
steps:
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0
with:
submodules: "true"
- name: Set up QEMU
if: matrix.os-platform[1] == 'manylinux_aarch64'
uses: docker/setup-qemu-action@49b3bc8e6bdd4a60e6116a5414239cba5943d3cf # v3.2.0
with:
platforms: arm64
- name: Set up uv
uses: astral-sh/setup-uv@c9aa747934b6867b18bf8f6624a8929c4f76147b # v3.1.4
- name: Build wheels and run tests
uses: pypa/cibuildwheel@f1859528322d7b29d4493ee241a167807661dfb4 # v2.21.2
env:
CIBW_BUILD: cp${{ matrix.python-version }}-${{ matrix.os-platform[1] }}
CIBW_TEST_SKIP: "*linux_aarch64"
- uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0
if: github.event_name == 'push'
with:
name: artifact-cp${{ matrix.python-version }}-${{ matrix.os-platform[1] }}
path: ./wheelhouse/*.whl
retention-days: 1
run_benchmarks:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # 4.2.0
with:
submodules: "true"
- uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3 # 5.2.0
with:
python-version: "3.12"
- name: Install dependencies
run: pip install uv && uv pip install --system ".[dev]" pytest-codspeed
- name: Run benchmarks
uses: CodSpeedHQ/action@ab07afd34cbbb7a1306e8d14b7cc44e029eee37a # 3.0.0
with:
token: ${{ secrets.CODESPEED_TOKEN }}
run: pytest tests/test_efficiency.py --codspeed