name: CD

on:
  workflow_dispatch:
  release:
    types:
    - published

env:
  FORCE_COLOR: 3

jobs:
  dist:
    name: Dist
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v6
      with:
        fetch-depth: 0

    - uses: hynek/build-and-inspect-python-package@v2

  deploy:
    name: Deploy
    runs-on: ubuntu-latest
    needs: [dist]
    if: github.event_name == 'release' && github.event.action == 'published'
    environment:
      name: pypi
      url: https://pypi.org/p/plumbum
    permissions:
      id-token: write
      attestations: write

    steps:
    - uses: actions/download-artifact@v8
      with:
        name: Packages
        path: dist

    - name: Generate artifact attestation for sdist and wheel
      uses: actions/attest-build-provenance@v4
      with:
        subject-path: "dist/*"

    - uses: pypa/gh-action-pypi-publish@release/v1
      with:
        attestations: true
