|
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/ |