name: Release

on:
  schedule:
    - cron: '0 0 28 * *'  # Monthly auto-release
  workflow_dispatch:      # Manual trigger for quick fixes

jobs:
  release:
    if: github.repository == 'python-gitlab/python-gitlab'
    runs-on: ubuntu-latest
    concurrency: release
    permissions:
      id-token: write
    environment: pypi.org
    steps:
    - uses: actions/checkout@v6.0.2
      with:
        fetch-depth: 0
        token: ${{ secrets.RELEASE_GITHUB_TOKEN }}

    - name: Python Semantic Release
      id: release
      uses: python-semantic-release/python-semantic-release@v10.5.3
      with:
        github_token: ${{ secrets.RELEASE_GITHUB_TOKEN }}

    - name: Publish package distributions to PyPI
      uses: pypa/gh-action-pypi-publish@release/v1
      # NOTE: DO NOT wrap the conditional in ${{ }} as it will always evaluate to true.
      # See https://github.com/actions/runner/issues/1173
      if: steps.release.outputs.released == 'true'

    - name: Publish package distributions to GitHub Releases
      uses: python-semantic-release/publish-action@v10.5.3
      if: steps.release.outputs.released == 'true'
      with:
        github_token: ${{ secrets.RELEASE_GITHUB_TOKEN }}
