Skip to content

fixing CI

fixing CI #21

Workflow file for this run

name: CI
on:
push:
branches:
- main
- master
pull_request:
workflow_dispatch:
permissions:
contents: read
jobs:
# If it compiles on ubuntu x86_64, then we can start compiling on other
# platforms, otherwise we want to break early
canary_build:
runs-on: ubuntu-latest
if: "startsWith(github.ref, 'refs/tags/')"
container:
image: quay.io/pypa/musllinux_1_1_x86_64
env:
RUSTFLAGS: "" # for some reason it has -D warnings by default
steps:
# setup env
- uses: actions/checkout@v4
- name: Install Openssl
run: apk add openssl-dev
- uses: korandoru/setup-zig@v1
with:
zig-version: 0.13.0
- uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: nightly-2024-06-13
components: rustfmt
cache-workspaces: bindings/python/
- uses: actions/setup-python@v5
with:
python-version: '3.10'
cache: 'pip'
- name: Install Maturin
run: python3 -m pip install 'maturin[zig]'
# Check
- name: Check that the package compiles
run: cargo check --manifest-path=bindings/python/Cargo.toml
# actually build
- name: Build the package
run: python3 build.py
working-directory: bindings/python/
# upload on pypi
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-linux-x86_64
path: dist
linux:
runs-on: ${{ matrix.platform.runner }}
if: "startsWith(github.ref, 'refs/tags/')"
needs: [canary_build]
strategy:
matrix:
platform:
- runner: ubuntu-latest
target: x86_64
- runner: ubuntu-latest
target: x86
- runner: ubuntu-latest
target: aarch64
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.10'
- name: Build wheels
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.platform.target }}
args: --release --out dist --find-interpreter
sccache: 'true'
manylinux: musllinux_1_1
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-linux-${{ matrix.platform.target }}
path: dist
windows:
runs-on: ${{ matrix.platform.runner }}
needs: [canary_build]
if: "startsWith(github.ref, 'refs/tags/')"
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.10'
architecture: ${{ matrix.platform.target }}
- name: Build wheels
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.platform.target }}
args: --release --out dist --find-interpreter
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: [canary_build]
if: "startsWith(github.ref, 'refs/tags/')"
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.10'
- name: Build wheels
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.platform.target }}
args: --release --out dist --find-interpreter
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: [canary_build]
if: "startsWith(github.ref, 'refs/tags/')"
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
if: "startsWith(github.ref, 'refs/tags/')"
needs: [linux, windows, macos, sdist]
permissions:
id-token: write
steps:
- uses: actions/download-artifact@v4
- name: Publish to PyPI
uses: PyO3/maturin-action@v1
with:
command: upload
args: --non-interactive --skip-existing wheels-*/*