Skip to content

Update CI.yml

Update CI.yml #155

Workflow file for this run

name: shazamio-core CI
on:
workflow_dispatch:
push:
branches:
- 'master'
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/dist --interpreter python${{ matrix.python-version }}
sccache: 'true'
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-${{ matrix.python-version }}-${{ matrix.target }}
path: dist
macos:
runs-on: macos-latest
strategy:
matrix:
include:
- name: x86_64
target: x86_64-apple-darwin
arch: x86_64
- name: aarch64
target: aarch64-apple-darwin
arch: arm64
python-version: [ "3.9", "3.10", "3.11", "3.12" ]
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/dist --interpreter python${{ matrix.python-version }}
sccache: 'true'
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-${{ matrix.python-version }}-${{ matrix.target }}
path: dist
linux:
runs-on: ubuntu-latest
strategy:
matrix:
include:
# - docker_file: docker/Dockerfile.manylinux_2_28_ARM64
# name: manylinux-arm
# arch: linux/arm64
- docker_file: docker/Dockerfile.manylinux_2_28_X64
name: manylinux-x86
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: Copy wheels
run: docker run --rm -v $(pwd)/dist:/tmp shazamio_core cp -R /opt/dist /tmp
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-${{ matrix.python-version }}-${{ matrix.target }}
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: dist
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@v3
with:
name: wheels
- 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 }}