|
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 }} |