1
+ name : Python Packaging
2
+
3
+ on : push
4
+
5
+ jobs :
6
+ build :
7
+ name : Build distribution
8
+ runs-on : ubuntu-latest
9
+
10
+ steps :
11
+ - uses : actions/checkout@v4
12
+ with :
13
+ persist-credentials : false
14
+ - name : Set up Python
15
+ uses : actions/setup-python@v5
16
+ with :
17
+ python-version : " 3.x"
18
+ - name : Install pypa/build
19
+ run : >-
20
+ python3 -m
21
+ pip install
22
+ build
23
+ --user
24
+ - name : Build a binary wheel and a source tarball
25
+ run : python3 -m build
26
+ - name : Store the distribution packages
27
+ uses : actions/upload-artifact@v4
28
+ with :
29
+ name : python-package-distributions
30
+ path : dist/
31
+
32
+ publish-to-pypi :
33
+ name : >-
34
+ Publish Python distribution to PyPI
35
+ if : startsWith(github.ref, 'refs/tags/')
36
+ needs :
37
+ - build
38
+ runs-on : ubuntu-latest
39
+ environment :
40
+ name : pypi
41
+ url : https://pypi.org/p/finra
42
+ permissions :
43
+ id-token : write
44
+
45
+ steps :
46
+ - name : Download all the dists
47
+ uses : actions/download-artifact@v4
48
+ with :
49
+ name : python-package-distributions
50
+ path : dist/
51
+ - name : Publish distribution to PyPI
52
+ uses : pypa/gh-action-pypi-publish@release/v1
53
+
54
+ github-release :
55
+ name : >-
56
+ Sign the Python distribution with Sigstore
57
+ and upload them to GitHub Release
58
+ needs :
59
+ - publish-to-pypi
60
+ runs-on : ubuntu-latest
61
+
62
+ permissions :
63
+ contents : write
64
+ id-token : write
65
+
66
+ steps :
67
+ - name : Download all the dists
68
+ uses : actions/download-artifact@v4
69
+ with :
70
+ name : python-package-distributions
71
+ path : dist/
72
+ - name : Sign the dists with Sigstore
73
+ uses : sigstore/gh-action-sigstore-python@v3.0.0
74
+ with :
75
+ inputs : >-
76
+ ./dist/*.tar.gz
77
+ ./dist/*.whl
78
+ - name : Create GitHub Release
79
+ env :
80
+ GITHUB_TOKEN : ${{ github.token }}
81
+ run : >-
82
+ gh release create
83
+ "$GITHUB_REF_NAME"
84
+ --repo "$GITHUB_REPOSITORY"
85
+ --notes ""
86
+ - name : Upload artifact signatures to GitHub Release
87
+ env :
88
+ GITHUB_TOKEN : ${{ github.token }}
89
+ run : >-
90
+ gh release upload
91
+ "$GITHUB_REF_NAME" dist/**
92
+ --repo "$GITHUB_REPOSITORY"
0 commit comments