name: deploy

on:
  push:
    tags:
    - '*'

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-python@v5
        with:
          python-version: 3.13
      - name: Build
        run: |
          pip install --upgrade pip build
          python -m build -s -w
      - name: Store the distribution packages
        uses: actions/upload-artifact@v4
        with:
          name: python-package-distributions
          path: dist/

  pypi-publish:
    needs:
      - build
    runs-on: ubuntu-latest
    environment: pypi
    permissions:
      # IMPORTANT: this permission is mandatory for Trusted Publishing
      id-token: write

    steps:
      - name: Download all the dists
        uses: actions/download-artifact@v4
        with:
          name: python-package-distributions
          path: dist/
      - name: Publish distribution
        uses: pypa/gh-action-pypi-publish@release/v1
        with:
          print-hash: true
