Switch to unified view

a b/.github/workflows/python-publish.yml
1
# This workflow will upload a Python Package to PyPI when a release is created
2
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python#publishing-to-package-registries
3
4
# This workflow uses actions that are not certified by GitHub.
5
# They are provided by a third-party and are governed by
6
# separate terms of service, privacy policy, and support
7
# documentation.
8
9
name: Upload Python Package
10
11
on:
12
  release:
13
    types: [published]
14
15
permissions:
16
  contents: read
17
18
jobs:
19
  release-build:
20
    runs-on: ubuntu-latest
21
22
    steps:
23
      - uses: actions/checkout@v4
24
25
      - uses: actions/setup-python@v5
26
        with:
27
          python-version: "3.x"
28
29
      - name: Build release distributions
30
        run: |
31
          # NOTE: put your own distribution build steps here.
32
          python -m pip install build
33
          python -m build
34
35
      - name: Upload distributions
36
        uses: actions/upload-artifact@v4
37
        with:
38
          name: release-dists
39
          path: dist/
40
41
  pypi-publish:
42
    runs-on: ubuntu-latest
43
    needs:
44
      - release-build
45
    permissions:
46
      # IMPORTANT: this permission is mandatory for trusted publishing
47
      id-token: write
48
49
    # Dedicated environments with protections for publishing are strongly recommended.
50
    # For more information, see: https://docs.github.com/en/actions/deployment/targeting-different-environments/using-environments-for-deployment#deployment-protection-rules
51
    environment:
52
      name: pypi
53
      # OPTIONAL: uncomment and update to include your PyPI project URL in the deployment status:
54
      # url: https://pypi.org/p/YOURPROJECT
55
      #
56
      # ALTERNATIVE: if your GitHub Release name is the PyPI project version string
57
      # ALTERNATIVE: exactly, uncomment the following line instead:
58
      # url: https://pypi.org/project/YOURPROJECT/${{ github.event.release.name }}
59
60
    steps:
61
      - name: Retrieve release distributions
62
        uses: actions/download-artifact@v4
63
        with:
64
          name: release-dists
65
          path: dist/
66
67
      - name: Publish release distributions to PyPI
68
        uses: pypa/gh-action-pypi-publish@release/v1
69
        with:
70
          packages-dir: dist/