Skip to content

prepare for release #109

prepare for release

prepare for release #109

Workflow file for this run

name: Release Workflow
permissions: {}
on:
push:
tags:
- "*"
jobs:
lint:
name: Linters
runs-on: ubuntu-latest
permissions:
security-events: write # Required for upload-sarif (used by zizmor-action) to upload SARIF files.
steps:
- name: Checkout code
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: zizmor
uses: zizmorcore/zizmor-action@135698455da5c3b3e55f73f4419e481ab68cdd95 # v0.4.1
- name: typos
uses: crate-ci/typos@65120634e79d8374d1aa2f27e54baa0c364fff5a # v1.42.1
- name: Install tombi
uses: tombi-toml/setup-tombi@f7cb38e77d9a62bc27a8445bf50e660e9496b893 # v1.0.7
- name: Validate TOML files
run: tombi lint
- name: Ruff
uses: astral-sh/ruff-action@57714a7c8a2e59f32539362ba31877a1957dded1 # v3.5.1
build:
name: Build distribution
runs-on: ubuntu-latest
needs: lint
permissions:
actions: write # Upload artifact
steps:
- name: Checkout code
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: Install uv
uses: astral-sh/setup-uv@61cb8a9741eeb8a550a1b8544337180c0fc8476b # v7.2.0
with:
version: "latest"
enable-cache: false
- name: Build wheel and sdist
run: uv build
- name: Upload dists
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
with:
name: python-package-distributions
path: dist/
publish-to-pypi:
name: Publish to PyPI
runs-on: ubuntu-latest
needs: build
environment:
name: publish-to-pypi
permissions:
actions: read # Download artifact
id-token: write # Needed for trusted publishing
steps:
- name: Download all dists
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
with:
name: python-package-distributions
path: dist/
- name: Install uv
uses: astral-sh/setup-uv@61cb8a9741eeb8a550a1b8544337180c0fc8476b # v7.2.0
with:
version: "latest"
enable-cache: false
- name: Upload to PyPI
run: uv publish --trusted-publishing always
github-release:
name: GitHub release
runs-on: ubuntu-latest
needs: build
permissions:
actions: read # Download artifact
contents: write # Create GitHub release
steps:
- name: Checkout code
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: Download all dists
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
with:
name: python-package-distributions
path: ./dist/
- name: Create release
env:
GITHUB_TOKEN: ${{ github.token }}
run: gh release create "${GITHUB_REF#refs/tags/}" ./dist/*