Skip to content

Merge pull request #91 from metadsl/saulshanabrook/issue84 #459

Merge pull request #91 from metadsl/saulshanabrook/issue84

Merge pull request #91 from metadsl/saulshanabrook/issue84 #459

Workflow file for this run

name: CI
on:
push:
branches:
- main
- master
tags:
- "*"
pull_request:
workflow_dispatch:
# Allow one concurrent deployment
concurrency:
group: ${{ github.ref }}
cancel-in-progress: true
jobs:
test:
name: test ${{ matrix.py }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
py:
- "3.12"
- "3.11"
- "3.10"
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@1.71.1
- uses: Swatinem/rust-cache@v2
- name: Setup python ${{ matrix.py }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.py }}
cache: "pip"
- run: pip install -e .[test]
- run: pytest
mypy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@1.71.1
- uses: Swatinem/rust-cache@v2
- uses: actions/setup-python@v4
with:
python-version: "3.10"
cache: "pip"
- run: pip install -e .[test] mypy pre-commit
- run: pre-commit run --hook-stage manual mypy
- run: pre-commit run --hook-stage manual stubtest
docs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@1.71.1
- uses: Swatinem/rust-cache@v2
- uses: actions/setup-python@v4
with:
python-version: "3.10"
cache: "pip"
- name: Install graphviz
run: |
sudo apt-get update
sudo apt-get install -y graphviz
- run: pip install -e .[docs] pre-commit
- run: pre-commit run --hook-stage manual docs
linux:
name: build linux
runs-on: ubuntu-latest
needs: [test]
steps:
- uses: actions/checkout@v4
- uses: PyO3/maturin-action@v1.40.1
with:
manylinux: auto
command: build
args: --release --sdist -o dist --find-interpreter
- name: Upload wheels
uses: actions/upload-artifact@v2
with:
name: wheels
path: dist
windows:
name: build windows
runs-on: windows-latest
needs: [test]
steps:
- uses: actions/checkout@v4
- uses: PyO3/maturin-action@v1.40.1
with:
command: build
args: --release -o dist --find-interpreter
- name: Upload wheels
uses: actions/upload-artifact@v2
with:
name: wheels
path: dist
macos:
name: build macos
runs-on: macos-latest
needs: [test]
steps:
- uses: actions/checkout@v4
- uses: PyO3/maturin-action@v1.40.1
with:
command: build
args: --release -o dist --universal2 --find-interpreter
- name: Upload wheels
uses: actions/upload-artifact@v2
with:
name: wheels
path: dist
release:
name: Release
runs-on: ubuntu-latest
if: startsWith(github.ref, 'refs/tags/') || (github.event_name == 'workflow_dispatch')
needs: [macos, windows, linux]
steps:
- uses: actions/download-artifact@v2
with:
name: wheels
- name: Publish to PyPI
uses: PyO3/maturin-action@v1.40.1
env:
MATURIN_PYPI_TOKEN: ${{ secrets.PYPI_API_TOKEN }}
with:
command: upload
args: --skip-existing *