Skip to content

test

test #125

Workflow file for this run

name: Build
on:
- push
- pull_request
jobs:
lint:
if: github.event_name == 'push' && !startsWith(github.event.ref, 'refs/tags')
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Install latest rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
profile: minimal
override: true
components: clippy
- name: Lint with clippy
uses: actions-rs/cargo@v1
with:
command: clippy
args: --all-targets --all-features
test:
runs-on: ${{ matrix.os }}
needs: lint
strategy:
fail-fast: false
matrix:
python-version:
- "3.7"
- "3.8"
- "3.9"
- "3.10"
- "3.11"
os:
- ubuntu-latest
- macos-latest
- windows-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install Poetry
uses: abatilo/actions-poetry@v2
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
- name: Install dependencies
run: poetry install
- name: Build Python package
run: poetry run maturin develop
- name: Test
run: poetry run pytest -Werror tests
- name: Install Cross-compilers (Linux)
if: matrix.os == 'ubuntu-latest'
run: |
rustup target add aarch64-unknown-linux-gnu
- name: Publish Linux (arm64) Package
if: matrix.os == 'ubuntu-latest'
uses: PyO3/maturin-action@v1
with:
command: build
args: --interpreter=python3.11 --target=aarch64-unknown-linux-gnu
env:
MATURIN_PASSWORD: ${{ secrets.pypi_password }}