Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # This workflow will upload a Python Package to PyPI when a release is created | |
| # It will also update the version variable in setup.py to match the release tag | |
| name: Upload Python Package | |
| on: | |
| release: | |
| types: [published] | |
| permissions: | |
| contents: read | |
| jobs: | |
| release-build: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.x" | |
| - name: Update version in setup.py | |
| run: | | |
| # Get release tag name (version) | |
| RELEASE_VERSION="${{ github.event.release.tag_name }}" | |
| # Update version variable in setup.py | |
| sed -i "s/^version\s*=\s*['\"][^'\"]*['\"]/version = '$RELEASE_VERSION'/" setup.py | |
| # Verify the change | |
| echo "Updated version in setup.py to:" | |
| grep "^version\s*=" setup.py | |
| - name: Install build tools | |
| run: | | |
| pip install setuptools twine | |
| - name: Build package | |
| run: | | |
| python setup.py sdist | |
| - name: Upload distributions | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: release-dists | |
| path: dist/ | |
| pypi-publish: | |
| runs-on: ubuntu-latest | |
| needs: | |
| - release-build | |
| permissions: | |
| id-token: write | |
| environment: | |
| name: pypi | |
| url: https://pypi.org/project/MaxBridge/${{ github.event.release.tag_name }} | |
| steps: | |
| - name: Retrieve distributions | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: release-dists | |
| path: dist/ | |
| - name: Publish to PyPI | |
| uses: pypa/gh-action-pypi-publish@release/v1 | |
| with: | |
| packages-dir: dist/ |