Version bump 0.0.6 #35
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: | |
workflow_dispatch: | |
inputs: | |
tag: | |
description: "The version to tag, without the leading 'v'. If omitted, will initiate a dry run (no uploads)." | |
type: string | |
sha: | |
description: "The full sha of the commit to be released. If omitted, the latest commit on the default branch will be used." | |
default: "" | |
type: string | |
push: | |
tags: [ 'v*' ] | |
env: | |
CARGO_INCREMENTAL: 0 | |
CARGO_NET_RETRY: 10 | |
CARGO_TERM_COLOR: always | |
RUSTUP_MAX_RETRIES: 10 | |
jobs: | |
macos-x86_64: | |
runs-on: macos-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
python-version: [ '3.8', '3.9', '3.10', '3.11', '3.12' ] | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
architecture: x64 | |
- name: "Build wheels - x86_64" | |
uses: PyO3/maturin-action@v1 | |
with: | |
target: x86_64 | |
args: --release -i python${{ matrix.python-version }} --out dist | |
- name: Upload wheels | |
uses: actions/upload-artifact@v3 | |
with: | |
name: wheels | |
path: dist | |
macos-universal: | |
runs-on: macos-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
python-version: [ '3.8', '3.9', '3.10', '3.11', '3.12' ] | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
architecture: x64 | |
- name: "Build wheels - universal" | |
uses: PyO3/maturin-action@v1 | |
with: | |
args: --release -i python${{ matrix.python-version }} --target universal2-apple-darwin --out dist | |
- name: Upload wheels | |
uses: actions/upload-artifact@v3 | |
with: | |
name: wheels | |
path: dist | |
windows: | |
runs-on: windows-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
python-version: [ '3.8', '3.9', '3.10', '3.11', '3.12' ] | |
platform: | |
- target: x86_64-pc-windows-msvc | |
arch: x64 | |
- target: i686-pc-windows-msvc | |
arch: x86 | |
- target: aarch64-pc-windows-msvc | |
arch: x64 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
architecture: ${{ matrix.platform.arch }} | |
- name: "Build wheels - windows" | |
uses: PyO3/maturin-action@v1 | |
with: | |
args: --release -i python${{ matrix.python-version }} --out dist | |
- name: Upload wheels | |
uses: actions/upload-artifact@v3 | |
with: | |
name: wheels | |
path: dist | |
linux: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
python-version: [ '3.8', '3.9', '3.10', '3.11', '3.12' ] | |
target: | |
- x86_64-unknown-linux-gnu | |
- i686-unknown-linux-gnu | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
architecture: x64 | |
- name: "Build wheels - linux" | |
uses: PyO3/maturin-action@v1 | |
with: | |
target: ${{ matrix.target }} | |
manylinux: auto | |
command: build | |
args: --release -i python${{ matrix.python-version }} -o dist | |
- name: Upload wheels | |
uses: actions/upload-artifact@v2 | |
with: | |
name: wheels | |
path: dist | |
linux-cross: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
python-version: [ '3.8', '3.9', '3.10', '3.11', '3.12' ] | |
platform: | |
- target: aarch64-unknown-linux-gnu | |
arch: aarch64 | |
maturin_docker_options: -e JEMALLOC_SYS_WITH_LG_PAGE=16 | |
- target: armv7-unknown-linux-gnueabihf | |
arch: armv7 | |
- target: s390x-unknown-linux-gnu | |
arch: s390x | |
- target: powerpc64le-unknown-linux-gnu | |
arch: ppc64le | |
- target: powerpc64-unknown-linux-gnu | |
arch: ppc64 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
architecture: x64 | |
- name: "Build wheels - linux-cross" | |
uses: PyO3/maturin-action@v1 | |
with: | |
target: ${{ matrix.platform.target }} | |
manylinux: auto | |
docker-options: ${{ matrix.platform.maturin_docker_options }} | |
args: --release -i python${{ matrix.python-version }} -o dist | |
- name: Upload wheels | |
uses: actions/upload-artifact@v2 | |
with: | |
name: wheels | |
path: dist | |
musllinux: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
python-version: [ '3.8', '3.9', '3.10', '3.11', '3.12' ] | |
target: | |
- x86_64-unknown-linux-musl | |
- i686-unknown-linux-musl | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
architecture: x64 | |
- name: "Build wheels - musllinux" | |
uses: PyO3/maturin-action@v1 | |
with: | |
target: ${{ matrix.target }} | |
manylinux: musllinux_1_2 | |
args: --release -i python${{ matrix.python-version }} -o dist | |
- name: Upload wheels | |
uses: actions/upload-artifact@v3 | |
with: | |
name: wheels | |
path: dist | |
musllinux-cross: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
python-version: [ '3.8', '3.9', '3.10', '3.11', '3.12' ] | |
platform: | |
- target: aarch64-unknown-linux-musl | |
arch: aarch64 | |
maturin_docker_options: -e JEMALLOC_SYS_WITH_LG_PAGE=16 | |
- target: armv7-unknown-linux-musleabihf | |
arch: armv7 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: "Build wheels - musllinux-cross" | |
uses: PyO3/maturin-action@v1 | |
with: | |
target: ${{ matrix.platform.target }} | |
manylinux: musllinux_1_2 | |
args: --release -i python${{ matrix.python-version }} -o dist | |
docker-options: ${{ matrix.platform.maturin_docker_options }} | |
- name: Upload wheels | |
uses: actions/upload-artifact@v3 | |
with: | |
name: wheels | |
path: dist | |
validate-tag: | |
name: Validate tag | |
runs-on: ubuntu-latest | |
# If you don't set an input tag, it's a dry run (no uploads). | |
if: ${{ inputs.tag }} | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
ref: main # We checkout the main branch to check for the commit | |
- name: Check main branch | |
if: ${{ inputs.sha }} | |
run: | | |
# Fetch the main branch since a shallow checkout is used by default | |
git fetch origin main --unshallow | |
if ! git branch --contains ${{ inputs.sha }} | grep -E '(^|\s)main$'; then | |
echo "The specified sha is not on the main branch" >&2 | |
exit 1 | |
fi | |
- name: Check tag consistency | |
run: | | |
# Switch to the commit we want to release | |
git checkout ${{ inputs.sha }} | |
version=$(grep "version = " pyproject.toml | sed -e 's/version = "\(.*\)"/\1/g') | |
if [ "${{ inputs.tag }}" != "${version}" ]; then | |
echo "The input tag does not match the version from pyproject.toml:" >&2 | |
echo "${{ inputs.tag }}" >&2 | |
echo "${version}" >&2 | |
exit 1 | |
else | |
echo "Releasing ${version}" | |
fi | |
release: | |
name: Release | |
runs-on: ubuntu-latest | |
needs: | |
- linux | |
- linux-cross | |
- macos-x86_64 | |
- macos-universal | |
- musllinux | |
- musllinux-cross | |
- windows | |
- validate-tag | |
steps: | |
- uses: actions/download-artifact@v2 | |
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 * |