Skip to content

Commit 751011c

Browse files
Create python-upload.yml
1 parent 4f94668 commit 751011c

File tree

1 file changed

+177
-0
lines changed

1 file changed

+177
-0
lines changed
Lines changed: 177 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,177 @@
1+
# This file is autogenerated by maturin v1.8.2
2+
# To update, run
3+
#
4+
# maturin generate-ci github
5+
#
6+
name: python-bindings-upload-ci
7+
8+
on:
9+
push:
10+
branches:
11+
- main
12+
- master
13+
tags:
14+
- '*'
15+
pull_request:
16+
workflow_dispatch:
17+
18+
permissions:
19+
contents: read
20+
21+
jobs:
22+
linux:
23+
runs-on: ${{ matrix.platform.runner }}
24+
strategy:
25+
matrix:
26+
platform:
27+
- runner: ubuntu-22.04
28+
target: x86_64
29+
- runner: ubuntu-22.04
30+
target: x86
31+
- runner: ubuntu-22.04
32+
target: aarch64
33+
- runner: ubuntu-22.04
34+
target: armv7
35+
steps:
36+
- uses: actions/checkout@v4
37+
- uses: actions/setup-python@v5
38+
with:
39+
python-version: 3.x
40+
- name: Build wheels
41+
uses: PyO3/maturin-action@v1
42+
with:
43+
target: ${{ matrix.platform.target }}
44+
args: --release --features python --out dist --find-interpreter
45+
sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
46+
manylinux: auto
47+
- name: Upload wheels
48+
uses: actions/upload-artifact@v4
49+
with:
50+
name: wheels-linux-${{ matrix.platform.target }}
51+
path: dist
52+
53+
musllinux:
54+
runs-on: ${{ matrix.platform.runner }}
55+
strategy:
56+
matrix:
57+
platform:
58+
- runner: ubuntu-22.04
59+
target: x86_64
60+
- runner: ubuntu-22.04
61+
target: x86
62+
- runner: ubuntu-22.04
63+
target: aarch64
64+
- runner: ubuntu-22.04
65+
target: armv7
66+
steps:
67+
- uses: actions/checkout@v4
68+
- uses: actions/setup-python@v5
69+
with:
70+
python-version: 3.x
71+
- name: Build wheels
72+
uses: PyO3/maturin-action@v1
73+
with:
74+
target: ${{ matrix.platform.target }}
75+
args: --release --out dist --find-interpreter
76+
sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
77+
manylinux: musllinux_1_2
78+
- name: Upload wheels
79+
uses: actions/upload-artifact@v4
80+
with:
81+
name: wheels-musllinux-${{ matrix.platform.target }}
82+
path: dist
83+
84+
windows:
85+
runs-on: ${{ matrix.platform.runner }}
86+
strategy:
87+
matrix:
88+
platform:
89+
- runner: windows-latest
90+
target: x64
91+
- runner: windows-latest
92+
target: x86
93+
steps:
94+
- uses: actions/checkout@v4
95+
- uses: actions/setup-python@v5
96+
with:
97+
python-version: 3.x
98+
architecture: ${{ matrix.platform.target }}
99+
- name: Build wheels
100+
uses: PyO3/maturin-action@v1
101+
with:
102+
target: ${{ matrix.platform.target }}
103+
args: --release --out dist --find-interpreter
104+
sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
105+
- name: Upload wheels
106+
uses: actions/upload-artifact@v4
107+
with:
108+
name: wheels-windows-${{ matrix.platform.target }}
109+
path: dist
110+
111+
macos:
112+
runs-on: ${{ matrix.platform.runner }}
113+
strategy:
114+
matrix:
115+
platform:
116+
- runner: macos-13
117+
target: x86_64
118+
- runner: macos-14
119+
target: aarch64
120+
steps:
121+
- uses: actions/checkout@v4
122+
- uses: actions/setup-python@v5
123+
with:
124+
python-version: 3.x
125+
- name: Build wheels
126+
uses: PyO3/maturin-action@v1
127+
with:
128+
target: ${{ matrix.platform.target }}
129+
args: --release --out dist --find-interpreter
130+
sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
131+
- name: Upload wheels
132+
uses: actions/upload-artifact@v4
133+
with:
134+
name: wheels-macos-${{ matrix.platform.target }}
135+
path: dist
136+
137+
sdist:
138+
runs-on: ubuntu-latest
139+
steps:
140+
- uses: actions/checkout@v4
141+
- name: Build sdist
142+
uses: PyO3/maturin-action@v1
143+
with:
144+
command: sdist
145+
args: --out dist
146+
- name: Upload sdist
147+
uses: actions/upload-artifact@v4
148+
with:
149+
name: wheels-sdist
150+
path: dist
151+
152+
release:
153+
name: Release
154+
runs-on: ubuntu-latest
155+
if: ${{ startsWith(github.ref, 'refs/tags/') || github.event_name == 'workflow_dispatch' }}
156+
needs: [linux, musllinux, windows, macos, sdist]
157+
permissions:
158+
# Use to sign the release artifacts
159+
id-token: write
160+
# Used to upload release artifacts
161+
contents: write
162+
# Used to generate artifact attestation
163+
attestations: write
164+
steps:
165+
- uses: actions/download-artifact@v4
166+
- name: Generate artifact attestation
167+
uses: actions/attest-build-provenance@v1
168+
with:
169+
subject-path: 'wheels-*/*'
170+
- name: Publish to PyPI
171+
if: ${{ startsWith(github.ref, 'refs/tags/') }}
172+
uses: PyO3/maturin-action@v1
173+
env:
174+
MATURIN_PYPI_TOKEN: ${{ secrets.PYPI_API_TOKEN }}
175+
with:
176+
command: upload
177+
args: --non-interactive --skip-existing wheels-*/*

0 commit comments

Comments
 (0)