@@ -4,115 +4,16 @@ name: Publish OpenSIPS Python package to PyPI
44on : push
55
66jobs :
7- build :
8- name : Build distribution
7+ pypi-publish :
8+ name : Upload release to PyPI
99 runs-on : ubuntu-latest
10-
11- steps :
12- - uses : actions/checkout@v4
13- - name : Set up Python
14- uses : actions/setup-python@v5
15- with :
16- python-version : " 3.x"
17- - name : Install pypa/build
18- run : >-
19- python3 -m
20- pip install
21- build
22- --user
23- - name : Build a binary wheel and a source tarball
24- run : python3 -m build
25- - name : Store the distribution packages
26- uses : actions/upload-artifact@v4
27- with :
28- name : python-package-distributions
29- path : dist/
30-
31- publish-to-pypi :
32- name : >-
33- Publish Python OpenSIPS Python package to PyPI
34- if : startsWith(github.ref, 'refs/tags/') # only publish to PyPI on tag pushes
35- needs :
36- - build
37- runs-on : ubuntu-latest
38- environment :
39- name : pypi
40- url : https://pypi.org/p/opensips
10+ # Specifying a GitHub environment is optional, but strongly encouraged
11+ environment : release
4112 permissions :
42- id-token : write # IMPORTANT: mandatory for trusted publishing
43-
13+ # IMPORTANT: this permission is mandatory for trusted publishing
14+ id-token : write
4415 steps :
45- - name : Download all the dists
46- uses : actions/download-artifact@v4
47- with :
48- name : python-package-distributions
49- path : dist/
50- - name : Publish distribution OpenSIPS to PyPI
51- uses : pypa/gh-action-pypi-publish@release/v1
52-
53- github-release :
54- name : >-
55- Sign the OpenSIPS Python package with Sigstore
56- and upload them to GitHub Release
57- needs :
58- - publish-to-pypi
59- runs-on : ubuntu-latest
60-
61- permissions :
62- contents : write # IMPORTANT: mandatory for making GitHub Releases
63- id-token : write # IMPORTANT: mandatory for sigstore
16+ # retrieve your distributions here
6417
65- steps :
66- - name : Download all the dists
67- uses : actions/download-artifact@v4
68- with :
69- name : python-package-distributions
70- path : dist/
71- - name : Sign the dists with Sigstore
72- uses : sigstore/gh-action-sigstore-python@v2.1.1
73- with :
74- inputs : >-
75- ./dist/*.tar.gz
76- ./dist/*.whl
77- - name : Create GitHub Release
78- env :
79- GITHUB_TOKEN : ${{ github.token }}
80- run : >-
81- gh release create
82- '${{ github.ref_name }}'
83- --repo '${{ github.repository }}'
84- --notes ""
85- - name : Upload artifact signatures to GitHub Release
86- env :
87- GITHUB_TOKEN : ${{ github.token }}
88- # Upload to GitHub Release using the `gh` CLI.
89- # `dist/` contains the built packages, and the
90- # sigstore-produced signatures and certificates.
91- run : >-
92- gh release upload
93- '${{ github.ref_name }}' dist/**
94- --repo '${{ github.repository }}'
95-
96- publish-to-testpypi :
97- name : Publish Python OpenSIPS package TestPyPI
98- needs :
99- - build
100- runs-on : ubuntu-latest
101-
102- environment :
103- name : testpypi
104- url : https://test.pypi.org/p/opensips
105-
106- permissions :
107- id-token : write # IMPORTANT: mandatory for trusted publishing
108-
109- steps :
110- - name : Download all the dists
111- uses : actions/download-artifact@v4
112- with :
113- name : python-package-distributions
114- path : dist/
115- - name : Publish distribution OpenSIPS to TestPyPI
116- uses : pypa/gh-action-pypi-publish@release/v1
117- with :
118- repository-url : https://test.pypi.org/legacy/
18+ - name : Publish package distributions to PyPI
19+ uses : pypa/gh-action-pypi-publish@release/v1
0 commit comments