Skip to content

chore: add wheels for Python 3.13, pypy 3.8, pypy 3.9 and pypy 3.10. … #145

chore: add wheels for Python 3.13, pypy 3.8, pypy 3.9 and pypy 3.10. …

chore: add wheels for Python 3.13, pypy 3.8, pypy 3.9 and pypy 3.10. … #145

Workflow file for this run

name: CI
on:
push:
branches:
- main
tags:
- "*"
pull_request:
workflow_dispatch:
env:
WINDOWS_BUILD_VERSION: 3.7 3.8 3.9 3.10 3.11 3.12 3.13
UNIX_BUILD_VERSION: 3.7 3.8 3.9 3.10 3.11 3.12 3.13 pypy3.8 pypy3.9 pypy3.10
jobs:
test:
name: Test
runs-on: ubuntu-latest
strategy:
matrix:
python-version:
[
"3.7",
"3.8",
"3.9",
"3.10",
"3.11",
"3.13",
"3.13",
"pypy3.8",
"pypy3.9",
"pypy3.10",
]
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- uses: actions-rust-lang/setup-rust-toolchain@v1
- name: Install maturin
run: pip install maturin
- name: Build wheels
run: maturin build --release
- name: Install fastcrc
run: pip install target/wheels/fastcrc*.whl
- name: Test
run: python tests/test_fastcrc.py
linux:
runs-on: ${{ matrix.platform.runner }}
needs: test
strategy:
matrix:
platform:
- runner: ubuntu-latest
target: x86_64
- runner: ubuntu-latest
target: x86
- runner: ubuntu-latest
target: aarch64
- runner: ubuntu-latest
target: armv7
- runner: ubuntu-latest
target: s390x
- runner: ubuntu-latest
target: ppc64le
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.13"
- name: Build wheels
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.platform.target }}
args: --release --out dist -i ${{ env.UNIX_BUILD_VERSION }}
sccache: "true"
manylinux: auto
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-linux-${{ matrix.platform.target }}
path: dist
windows:
runs-on: ${{ matrix.platform.runner }}
needs: test
strategy:
matrix:
platform:
- runner: windows-latest
target: x64
- runner: windows-latest
target: x86
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.13"
architecture: ${{ matrix.platform.target }}
- name: Build wheels
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.platform.target }}
args: --release --out dist -i ${{ env.WINDOWS_BUILD_VERSION }}
sccache: "true"
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-windows-${{ matrix.platform.target }}
path: dist
macos:
runs-on: ${{ matrix.platform.runner }}
needs: test
strategy:
matrix:
platform:
- runner: macos-latest
target: x86_64
- runner: macos-14
target: aarch64
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.13"
- name: Build wheels
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.platform.target }}
args: --release --out dist -i ${{ env.UNIX_BUILD_VERSION }}
sccache: "true"
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-macos-${{ matrix.platform.target }}
path: dist
sdist:
runs-on: ubuntu-latest
needs: test
steps:
- uses: actions/checkout@v4
- name: Build sdist
uses: PyO3/maturin-action@v1
with:
command: sdist
args: --out dist
- name: Upload sdist
uses: actions/upload-artifact@v4
with:
name: wheels-sdist
path: dist
release:
name: Release
runs-on: ubuntu-latest
permissions:
id-token: write
if: "startsWith(github.ref, 'refs/tags/')"
needs: [linux, windows, macos, sdist]
steps:
- uses: actions/download-artifact@v4
with:
pattern: wheels-*
path: wheels/
merge-multiple: true
- run: ls -R wheels
- name: Publish package distributions to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
with:
skip-existing: true
packages-dir: wheels/