Skip to content

fix: render section headers in approval stage fields #289

fix: render section headers in approval stage fields

fix: render section headers in approval stage fields #289

Workflow file for this run

name: Publish to PyPI
on:
push:
tags:
- 'v*.*.*' # Trigger on version tags like v0.2.0, v1.0.0, etc.
jobs:
build-and-publish:
name: Build and publish Python distribution to PyPI
runs-on: ubuntu-latest
permissions:
contents: write # required for creating GitHub releases
id-token: write # required for PyPI trusted publishing (OIDC)
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0 # Fetch all history for proper versioning
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Install build dependencies
run: |
python -m pip install --upgrade pip
pip install build twine wheel setuptools
- name: Verify version matches tag
run: |
TAG_VERSION=${GITHUB_REF#refs/tags/v}
PACKAGE_VERSION=$(python -c "import tomllib; data=tomllib.load(open('pyproject.toml','rb')); print(data['tool']['poetry']['version'])")
echo "Tag version: $TAG_VERSION"
echo "Package version: $PACKAGE_VERSION"
if [ "$TAG_VERSION" != "$PACKAGE_VERSION" ]; then
echo "Error: Tag version ($TAG_VERSION) does not match package version ($PACKAGE_VERSION)"
exit 1
fi
- name: Build distribution packages
run: |
python -m build
ls -lh dist/
- name: Check distribution packages
run: |
twine check dist/*
- name: Publish to Test PyPI
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') && contains(github.ref, '-rc')
env:
TWINE_USERNAME: __token__
TWINE_PASSWORD: ${{ secrets.TEST_PYPI_API_TOKEN }}
run: |
twine upload --repository testpypi dist/*
- name: Publish to PyPI
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') && !contains(github.ref, '-rc')
env:
TWINE_USERNAME: __token__
TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }}
run: |
twine upload dist/*
# GitHub Release is created by the changelog.yml workflow
# which uses Claude AI to generate release notes.