/ scripts / .github / workflows / publish-python.yml
publish-python.yml
 1  name: Publish Python SDK
 2  
 3  on:
 4    push:
 5      tags: ["v*"]
 6    workflow_dispatch:
 7  
 8  permissions:
 9    contents: read
10  
11  jobs:
12    build-wheels:
13      name: Build wheels (${{ matrix.target }})
14      runs-on: ${{ matrix.os }}
15      strategy:
16        fail-fast: false
17        matrix:
18          include:
19            - os: ubuntu-latest
20              target: x86_64-unknown-linux-gnu
21              args: ""
22            - os: ubuntu-latest
23              target: aarch64-unknown-linux-gnu
24              args: "--zig"
25            - os: macos-latest
26              target: universal2-apple-darwin
27              args: ""
28            - os: windows-latest
29              target: x86_64-pc-windows-msvc
30              args: ""
31      steps:
32        - uses: actions/checkout@v4
33  
34        - uses: actions/setup-python@v5
35          with:
36            python-version: "3.12"
37  
38        - name: Build wheels
39          uses: PyO3/maturin-action@v1
40          with:
41            target: ${{ matrix.target }}
42            args: --release --out dist ${{ matrix.args }}
43            working-directory: packages/auths-verifier-python
44            sccache: "true"
45  
46        - uses: actions/upload-artifact@v4
47          with:
48            name: wheels-${{ matrix.target }}
49            path: packages/auths-verifier-python/dist/*.whl
50  
51    build-sdist:
52      name: Build sdist
53      runs-on: ubuntu-latest
54      steps:
55        - uses: actions/checkout@v4
56  
57        - name: Build sdist
58          uses: PyO3/maturin-action@v1
59          with:
60            command: sdist
61            args: --out dist
62            working-directory: packages/auths-verifier-python
63  
64        - uses: actions/upload-artifact@v4
65          with:
66            name: sdist
67            path: packages/auths-verifier-python/dist/*.tar.gz
68  
69    publish:
70      name: Publish to PyPI
71      needs: [build-wheels, build-sdist]
72      runs-on: ubuntu-latest
73      permissions:
74        id-token: write
75      environment:
76        name: pypi
77        url: https://pypi.org/p/auths-verifier
78      steps:
79        - uses: actions/download-artifact@v4
80          with:
81            path: dist
82            merge-multiple: true
83  
84        - name: Publish to PyPI
85          uses: pypa/gh-action-pypi-publish@release/v1
86          with:
87            packages-dir: dist/