]> git.ipfire.org Git - thirdparty/google/fonts.git/commitdiff
publish-release: use trusted publishers approach
authorMarc Foley <m.foley.88@gmail.com>
Fri, 5 Jan 2024 14:58:06 +0000 (14:58 +0000)
committerMarc Foley <m.foley.88@gmail.com>
Fri, 5 Jan 2024 14:58:06 +0000 (14:58 +0000)
.github/workflows/publish-release.yml

index a07aecc529dbaa53de8fda457c4aaf655df36357..52507e12e4dfc8cd7cd55655375ba53caaadb516 100644 (file)
@@ -7,9 +7,8 @@ name: Create and Publish Release
 
 jobs:
   build:
-    name: Create and Publish Release
+    name: Build distribution
     runs-on: ubuntu-latest
-
     steps:
       - uses: actions/checkout@v2
         with:
@@ -23,7 +22,8 @@ jobs:
       - name: Install release dependencies
         run: |
           python -m pip install --upgrade pip
-          pip install --upgrade setuptools wheel twine
+          pip install --upgrade setuptools wheel build
+
       - name: Get release notes
         id: release_notes
         run: |
@@ -34,6 +34,7 @@ jobs:
           git fetch --tags --force
           TAG_NAME=${GITHUB_REF/refs\/tags\//}
           echo "$(git tag -l --format='%(contents)' $TAG_NAME)" > "${{ runner.temp }}/CHANGELOG.md"
+
       - name: Create GitHub release
         id: create_release
         uses: actions/create-release@v1
@@ -46,10 +47,34 @@ jobs:
           draft: false
           prerelease: false
 
-      - name: Build and publish to PyPI
-        env:
-          TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }}
-          TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
-        run: |
-          python setup.py sdist bdist_wheel
-          twine upload dist/gflanguages*
\ No newline at end of file
+      - name: Build a binary wheel and a source tarball
+        run: python3 -m build
+      - name: Store the distribution packages
+        uses: actions/upload-artifact@v3
+        with:
+          name: python-package-distributions
+          path: dist/
+
+  publish-to-pypi:
+    name: >-
+      Publish Python 🐍 distribution 📦 to PyPI
+    if: startsWith(github.ref, 'refs/tags/')  # only publish to PyPI on tag pushes
+    needs:
+      - build
+    runs-on: ubuntu-latest
+    environment:
+      name: pypi
+      url: https://pypi.org/p/gflanguages
+    permissions:
+      id-token: write  # IMPORTANT: mandatory for trusted publishing
+    steps:
+      - name: Download all the dists
+        uses: actions/download-artifact@v3
+        with:
+          name: python-package-distributions
+          path: dist/
+      - name: Publish distribution 📦 to PyPI
+        uses: pypa/gh-action-pypi-publish@v1.8.11
+        with:
+          # repository-url: https://test.pypi.org/legacy/ # for testing purposes
+          verify-metadata: false # twine previously didn't verify metadata when uploading
\ No newline at end of file