name: Release

on:
  workflow_dispatch:
  release:
    types: [published]

jobs:
  build:
    name: Build sdist and wheel
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
      name: Checkout repository

    - uses: actions/setup-python@v5
      with:
        python-version: "3.12"

    - name: Install pypa/build
      run: >-
        python3 -m
        pip install
        build
        --user

    - name: Build wheel and source tarball
      run: python3 -m build

    - name: Upload artifacts
      uses: actions/upload-artifact@v4
      with:
        name: python-package-distributions
        path: dist/
        if-no-files-found: error

  publish:
    needs: [build]
    name: Upload to PyPI
    runs-on: ubuntu-latest
    environment:
      name: pypi
      url: https://pypi.org/p/pyerrors
    permissions:
      id-token: write

    steps:
      - name: Download artifacts
        uses: actions/download-artifact@v4
        with:
          name: python-package-distributions
          path: dist/

      - name: Sanity check
        run: ls -la dist/

      - name: Publish to PyPI
        uses: pypa/gh-action-pypi-publish@release/v1