| name: Release |
| |
| on: |
| workflow_dispatch: |
| inputs: |
| tag: |
| description: "Release Tag WITHOUT `v` Prefix (e.g. 6.0.0)" |
| required: true |
| dry-run: |
| description: 'Dry run' |
| required: false |
| type: boolean |
| default: true |
| |
| env: |
| DOCKER_BUILDKIT: '1' |
| FORCE_COLOR: 1 |
| |
| jobs: |
| publish: |
| runs-on: ubuntu-22.04 |
| steps: |
| - uses: actions/checkout@v4 |
| |
| - uses: actions/setup-python@v5 |
| with: |
| python-version: '3.x' |
| |
| - name: Generate Package |
| run: | |
| pip3 install build |
| python -m build . |
| env: |
| # This is also supported by Hatch; see |
| # https://github.com/ofek/hatch-vcs#version-source-environment-variables |
| SETUPTOOLS_SCM_PRETEND_VERSION: ${{ inputs.tag }} |
| |
| - name: Publish to PyPI |
| uses: pypa/gh-action-pypi-publish@release/v1 |
| if: '! inputs.dry-run' |
| with: |
| password: ${{ secrets.PYPI_API_TOKEN }} |
| |
| - name: Create GitHub release |
| uses: ncipollo/release-action@v1 |
| if: '! inputs.dry-run' |
| with: |
| artifacts: "dist/*" |
| generateReleaseNotes: true |
| draft: true |
| commit: ${{ github.sha }} |
| token: ${{ secrets.GITHUB_TOKEN }} |
| tag: ${{ inputs.tag }} |