Skip to content

Bump version, pypi upload #32

Bump version, pypi upload

Bump version, pypi upload #32

name: Build, Test & Upload Python Package
on:
workflow_dispatch:
push:
tags:
- v*
branches:
- main
permissions:
contents: read
jobs:
build-sdist:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install uv
uses: astral-sh/setup-uv@v7
with:
enable-cache: false
python-version: "3.12"
- name: Lint with uv
run: |
uv format
- name: Build sdist
run: uv build --sdist
- name: Upload distributions
if: startsWith(github.ref, 'refs/tags/v')
uses: actions/upload-artifact@v4
with:
name: release-sdists
path: dist/
build-wheels:
runs-on: ubuntu-latest
needs:
- build-sdist
strategy:
fail-fast: false
matrix:
python-version: ["3.12", "3.13", "3.14"]
steps:
- uses: actions/checkout@v4
- name: Install uv
uses: astral-sh/setup-uv@v7
with:
python-version: ${{ matrix.python-version }}
enable-cache: false
- name: Build wheel
run: uvx cibuildwheel --output-dir dist/
- name: Upload distributions
if: startsWith(github.ref, 'refs/tags/v')
uses: actions/upload-artifact@v4
with:
name: release-dists-${{ matrix.python-version}}
path: dist/*.whl
pypi-publish-sdist:
if: startsWith(github.ref, 'refs/tags/v')
runs-on: ubuntu-latest
needs:
- build-sdist
permissions:
id-token: write
contents: read
environment:
name: pypi
steps:
- name: Retrieve release distributions
uses: actions/download-artifact@v4
with:
pattern: release-sdists
path: dist
merge-multiple: true
- name: Install uv
uses: astral-sh/setup-uv@v7
with:
enable-cache: false
- name: Publish release distributions to PyPI
run: uv publish dist/*.tar.gz
pypi-publish-wheels:
if: startsWith(github.ref, 'refs/tags/v')
runs-on: ubuntu-latest
needs:
- build-wheels
strategy:
fail-fast: false
matrix:
python-version: ["3.12", "3.13", "3.14"]
permissions:
id-token: write
contents: read
environment:
name: pypi
steps:
- name: Retrieve release distributions
uses: actions/download-artifact@v4
with:
pattern: release-dist*
path: dist
merge-multiple: true
- name: Install uv
uses: astral-sh/setup-uv@v7
with:
enable-cache: false
- name: Publish release distributions to PyPI
run: uv publish dist/