Skip to content

Release 0.2.1 (#4)

Release 0.2.1 (#4) #37

Workflow file for this run

# This file is autogenerated by maturin v1.5.0
# To update, run
#
# maturin generate-ci github
#
---
name: Distribution
on: # yamllint disable-line rule:truthy
push:
branches:
- main
pull_request:
workflow_dispatch:
permissions:
contents: read
jobs:
linux:
runs-on: ubuntu-latest
strategy:
matrix:
target: [ x86_64, x86, aarch64, armv7, s390x, ppc64le ]
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.target }}
args: --release --out dist
sccache: 'true'
manylinux: auto
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-linux-${{ matrix.target }}
path: dist
windows:
runs-on: windows-latest
strategy:
matrix:
target: [ x64, x86 ]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.10'
architecture: ${{ matrix.target }}
- name: Build wheels
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.target }}
args: --release --out dist
sccache: 'true'
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-windows-${{ matrix.target }}
path: dist
macos:
runs-on: macos-latest
strategy:
matrix:
target: [ x86_64, 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.target }}
args: --release --out dist
sccache: 'true'
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-macos-${{ matrix.target }}
path: dist
sdist:
runs-on: ubuntu-latest
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
should-publish:
name: Should Publish
runs-on: ubuntu-latest
outputs:
result: ${{ steps.determine.outputs.result }}
steps:
- uses: actions/checkout@v4
- name: Install yq
run: pipx install yq
- name: Compare current version to released tags
id: determine
env:
GH_TOKEN: ${{ github.token }}
run: |
current_version=$(tomlq -r .package.version Cargo.toml)
will_publish=$( \
gh api repos/:owner/:repo/git/refs/tags \
| jq --arg current_version $current_version \
'[ .[].ref | ltrimstr("refs/tags/v") ] | contains([$current_version]) | not' \
)
echo "result=$will_publish" >> "$GITHUB_OUTPUT"
echo "Will publish? $will_publish"
publish:
name: Publish
runs-on: ubuntu-latest
if: ${{ github.event_name != 'pull_request' && fromJSON(needs.should-publish.outputs.result) }}
needs: [ should-publish, linux, windows, macos, sdist ]
environment:
name: pypi
url: https://pypi.org/p/antsi
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-*/*
release:
name: Release
runs-on: ubuntu-latest
needs: [ publish ]
permissions:
contents: write
id-token: write
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
path: artifacts/
- name: Relocate distribution files
run: |
mkdir ./dist
mv ./artifacts/*/* ./dist
- uses: sigstore/gh-action-sigstore-python@v2.1.1
with:
inputs: >-
./dist/*.tar.gz
./dist/*.whl
- name: Get version
id: version
run: |
pipx install yq
version=$(tomlq -r .package.version Cargo.toml)
echo "version=v$version" >> "$GITHUB_OUTPUT"
- name: Create release
env:
GH_TOKEN: ${{ github.token }}
run: >-
gh release create
${{ steps.version.outputs.version }}
--generate-notes --latest
- name: Upload assets
env:
GH_TOKEN: ${{ github.token }}
run: >-
gh release upload
${{ steps.version.outputs.version }} dist/**