diff --git a/.github/workflows/python-publish.yml b/.github/workflows/python-publish.yml index 82f8dbd..8434d98 100644 --- a/.github/workflows/python-publish.yml +++ b/.github/workflows/python-publish.yml @@ -1,12 +1,13 @@ -# This workflow will upload a Python Package to PyPI when a release is created -# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python#publishing-to-package-registries +# ========================================================== +# ๐Ÿš€ Professional PyPI Upload Workflow +# Automatically builds and publishes your Python package to PyPI +# when a new GitHub Release is published. +# +# ๐Ÿ“˜ Reference: +# https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python#publishing-to-package-registries +# ========================================================== -# This workflow uses actions that are not certified by GitHub. -# They are provided by a third-party and are governed by -# separate terms of service, privacy policy, and support -# documentation. - -name: Upload Python Package +name: ๐Ÿš€ Publish Python Package to PyPI on: release: @@ -16,55 +17,56 @@ permissions: contents: read jobs: - release-build: + build: + name: ๐Ÿ—๏ธ Build Distribution runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - name: ๐Ÿงพ Checkout Repository + uses: actions/checkout@v4 - - uses: actions/setup-python@v5 + - name: ๐Ÿ Setup Python + uses: actions/setup-python@v5 with: - python-version: "3.x" + python-version: "3.12" + + - name: ๐Ÿ”ง Install Build Dependencies + run: | + python -m pip install --upgrade pip build wheel - - name: Build release distributions + - name: ๐Ÿ“ฆ Build Distribution Files run: | - # NOTE: put your own distribution build steps here. - python -m pip install build python -m build - - name: Upload distributions + - name: ๐Ÿ“ค Upload Build Artifacts uses: actions/upload-artifact@v4 with: - name: release-dists + name: dist-packages path: dist/ - pypi-publish: + publish: + name: ๐Ÿš€ Publish to PyPI runs-on: ubuntu-latest - needs: - - release-build + needs: build permissions: - # IMPORTANT: this permission is mandatory for trusted publishing - id-token: write + id-token: write # Required for trusted publishing - # Dedicated environments with protections for publishing are strongly recommended. - # For more information, see: https://docs.github.com/en/actions/deployment/targeting-different-environments/using-environments-for-deployment#deployment-protection-rules environment: name: pypi - # OPTIONAL: uncomment and update to include your PyPI project URL in the deployment status: - # url: https://pypi.org/p/YOURPROJECT - # - # ALTERNATIVE: if your GitHub Release name is the PyPI project version string - # ALTERNATIVE: exactly, uncomment the following line instead: - # url: https://pypi.org/project/YOURPROJECT/${{ github.event.release.name }} + url: https://pypi.org/project/YOURPROJECT/ steps: - - name: Retrieve release distributions + - name: ๐Ÿ“ฅ Download Built Artifacts uses: actions/download-artifact@v4 with: - name: release-dists + name: dist-packages path: dist/ - - name: Publish release distributions to PyPI + - name: ๐Ÿš€ Upload to PyPI uses: pypa/gh-action-pypi-publish@release/v1 with: packages-dir: dist/ + + - name: โœ… Confirm Successful Deployment + run: echo "๐ŸŽ‰ Package successfully published to PyPI!" +