agronholm/typeguard

View on GitHub
.github/workflows/publish.yml

Summary

Maintainability
Test Coverage
name: Publish packages to PyPI

on:
  push:
    tags:
      - "[0-9]+.[0-9]+.[0-9]+"
      - "[0-9]+.[0-9]+.[0-9]+.post[0-9]+"
      - "[0-9]+.[0-9]+.[0-9]+[a-b][0-9]+"
      - "[0-9]+.[0-9]+.[0-9]+rc[0-9]+"

jobs:
  build:
    name: Build the source tarball and the wheel
    runs-on: ubuntu-latest
    environment: release
    steps:
    - uses: actions/checkout@v4
    - name: Set up Python
      uses: actions/setup-python@v5
      with:
        python-version: 3.x
    - name: Install dependencies
      run: pip install build
    - name: Create packages
      run: python -m build
    - name: Archive packages
      uses: actions/upload-artifact@v4
      with:
        name: dist
        path: dist

  publish:
    name: Publish build artifacts to the PyPI
    needs: build
    runs-on: ubuntu-latest
    environment: release
    permissions:
      id-token: write
    steps:
    - name: Retrieve packages
      uses: actions/download-artifact@v4
    - name: Upload packages
      uses: pypa/gh-action-pypi-publish@release/v1

  release:
    name: Create a GitHub release
    needs: build
    runs-on: ubuntu-latest
    permissions:
      contents: write
    steps:
    - uses: actions/checkout@v4
    - id: changelog
      uses: agronholm/release-notes@v1
      with:
        path: docs/versionhistory.rst
    - uses: ncipollo/release-action@v1
      with:
        body: ${{ steps.changelog.outputs.changelog }}