Skip to content

✨ feat(Cargo.toml): Update pyo3 version to 0.20.2 #182

✨ feat(Cargo.toml): Update pyo3 version to 0.20.2

✨ feat(Cargo.toml): Update pyo3 version to 0.20.2 #182

Workflow file for this run

name: shazamio-core CI
on:
workflow_dispatch:
push:
branches:
- 'master'
- 'dev'
tags:
- '*'
permissions:
contents: write
pages: write
id-token: write
jobs:
windows:
runs-on: windows-latest
strategy:
matrix:
python-version: [ "3.9", "3.10", "3.11", "3.12" ]
target: [ x64, x86 ]
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
architecture: ${{ matrix.target }}
- name: Build wheels
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.target }}
args: --release --out dist --interpreter python${{ matrix.python-version }}
sccache: 'true'
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-${{ runner.os }}-${{ matrix.python-version }}-${{ matrix.target }}
path: dist
#
macos:
strategy:
fail-fast: false
matrix:
include:
# macOS 13 (x86_64)
- os: macos-13
target: x86_64-apple-darwin
python-version: "3.9"
- os: macos-13
target: x86_64-apple-darwin
python-version: "3.10"
- os: macos-13
target: x86_64-apple-darwin
python-version: "3.11"
- os: macos-13
target: x86_64-apple-darwin
python-version: "3.12"
# macOS-latest (arm64)
- os: macos-latest
target: aarch64-apple-darwin
python-version: "3.9"
- os: macos-latest
target: aarch64-apple-darwin
python-version: "3.10"
- os: macos-latest
target: aarch64-apple-darwin
python-version: "3.11"
- os: macos-latest
target: aarch64-apple-darwin
python-version: "3.12"
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Build wheels
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.target }}
args: --release --out dist --interpreter python${{ matrix.python-version }}
sccache: 'true'
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-${{ matrix.os }}-${{ matrix.python-version }}-${{ matrix.target }}
path: dist
linux:
strategy:
matrix:
include:
- docker_file: docker/Dockerfile.manylinux_2_28_ARM64
name: manylinux-arm
arch: aarch64
os: ubuntu-22.04-arm
- docker_file: docker/Dockerfile.manylinux_2_28_X64
os: ubuntu-latest
name: manylinux-x86
arch: x86_64
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up docker buildx
uses: docker/setup-buildx-action@v3
- name: Build docker image
uses: docker/build-push-action@v5
with:
file: ${{ matrix.docker_file }}
platforms: ${{ matrix.arch }}
tags: shazamio_core
push: false
load: true
cache-from: type=gha
cache-to: type=gha,mode=max
context: .
- name: List /opt/dist directory
run: docker run --rm shazamio_core ls -la /opt/dist
- name: Copy wheels
run: docker run --rm -v $(pwd)/dist:/tmp shazamio_core sh -c "cp -R /opt/dist/* /tmp/"
- name: Debug List files in /tmp after copy
run: ls -la dist
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-${{ runner.os }}-${{ matrix.name }}
path: dist
sdist:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- 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/') || github.event_name == 'workflow_dispatch'"
needs: [ sdist, macos, linux, windows ]
steps:
- uses: actions/download-artifact@v4
with:
pattern: wheels-*
merge-multiple: true
path: dist
- name: Publish to PyPI
uses: PyO3/maturin-action@v1
env:
MATURIN_PYPI_TOKEN: ${{ secrets.PYPI_API_TOKEN }}
with:
command: upload
args: --skip-existing dist/*
- name: Attach Artifacts to the release
uses: softprops/action-gh-release@v1
with:
files: |
dist/*.whl
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}