Skip to content

🔧Excluded cfpyo3_rs_py in rust test #40

🔧Excluded cfpyo3_rs_py in rust test

🔧Excluded cfpyo3_rs_py in rust test #40

Workflow file for this run

# This file is autogenerated by maturin v1.7.1
# To update, run
#
# maturin generate-ci github
#
name: CI
on:
push:
branches:
- main
- master
tags:
- "*"
pull_request:
workflow_dispatch:
permissions:
contents: read
env:
PYTHON_VERSION: "3.8"
CARGO_TERM_COLOR: always
jobs:
check:
if: ${{ !contains(github.event.commits[0].message, '📦️') }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Install dependencies
run: |
pip install toml && python -c 'import toml; c = toml.load("pyproject.toml") \
print("\n".join(c["build-system"]["requires"]))' | pip install -r /dev/stdin
- name: Install check dependencies
run: pip install black mypy pandas-stubs
- name: black
run: black . --check --diff
- name: mypy
run: mypy cfpyo3
test-py:
if: ${{ !contains(github.event.commits[0].message, '📦️') }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Build wheel
uses: PyO3/maturin-action@v1
with:
command: build
args: >
--manifest-path cfpyo3_rs_py/Cargo.toml
--out dist
sccache: "true"
- name: Install wheel
run: pip install dist/*.whl
- name: Install test dependencies
run: pip install pytest
- name: Run tests
run: pytest
test-rs:
if: ${{ !contains(github.event.commits[0].message, '📦️') }}
runs-on: ubuntu-latest
strategy:
matrix:
toolchain:
- stable
- beta
- nightly
steps:
- uses: actions/checkout@v4
- uses: conda-incubator/setup-miniconda@v2
with:
miniconda-version: "latest"
activate-environment: test
python-version: ${{ env.PYTHON_VERSION }}
- run: rustup update ${{ matrix.toolchain }} && rustup default ${{ matrix.toolchain }}
- run: cargo test --workspace --exclude cfpyo3_rs_py --verbose
build-wheels:
needs: [test-py, test-rs]
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-13, windows-latest]
architecture: [x86-64, aarch64]
exclude:
- os: windows-latest
architecture: aarch64
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Set Rust target for aarch64
if: matrix.architecture == 'aarch64'
id: target
run: |
TARGET=${{ matrix.os == 'macos-13' && 'aarch64-apple-darwin' || 'aarch64-unknown-linux-gnu'}}
echo "target=$TARGET" >> $GITHUB_OUTPUT
- name: Build wheel
uses: PyO3/maturin-action@v1
with:
command: build
target: ${{ steps.target.outputs.target }}
args: >
--release
--manifest-path cfpyo3_rs_py/Cargo.toml
--out dist
manylinux: ${{ matrix.architecture == 'aarch64' && '2_24' || 'auto' }}
- name: Upload wheel
uses: actions/upload-artifact@v4
with:
name: wheel-${{ matrix.os }}-${{ matrix.architecture }}
path: dist/*.whl
sdist:
needs: [test-py, test-rs]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build sdist
uses: PyO3/maturin-action@v1
with:
command: sdist
args: >
--manifest-path cfpyo3_rs_py/Cargo.toml
--out dist
- name: Upload sdist
uses: actions/upload-artifact@v4
with:
name: wheel-sdist
path: dist
release:
name: Release
runs-on: ubuntu-latest
if: "${{ startsWith(github.ref, 'refs/tags/') }}"
needs: [build-wheels, sdist]
steps:
- uses: actions/download-artifact@v4
- name: Publish to PyPI
uses: PyO3/maturin-action@v1
env:
MATURIN_PYPI_TOKEN: ${{ secrets.PYPI_API_TOKEN }}
with:
command: upload
args: --non-interactive --skip-existing wheel-*/*