Skip to content

Commit 2fc8d72

Browse files
committed
add cross-platform release workflow
1 parent bee9688 commit 2fc8d72

1 file changed

Lines changed: 65 additions & 0 deletions

File tree

.github/workflows/release.yml

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
name: Release
2+
3+
on:
4+
push:
5+
tags:
6+
- 'v*'
7+
8+
jobs:
9+
build:
10+
name: Build wheels — ${{ matrix.os }}
11+
runs-on: ${{ matrix.os }}
12+
strategy:
13+
matrix:
14+
os: [ubuntu-latest, macos-latest, windows-latest]
15+
include:
16+
- os: ubuntu-latest
17+
target: x86_64
18+
- os: macos-latest
19+
target: universal2-apple-darwin
20+
- os: windows-latest
21+
target: x64
22+
23+
steps:
24+
- uses: actions/checkout@v4
25+
26+
- name: Setup Python
27+
uses: actions/setup-python@v5
28+
with:
29+
python-version: '3.11'
30+
31+
- name: Build wheels
32+
uses: PyO3/maturin-action@v1
33+
with:
34+
target: ${{ matrix.target }}
35+
args: --release --out dist
36+
sccache: 'true'
37+
manylinux: auto
38+
39+
- name: Upload wheels
40+
uses: actions/upload-artifact@v4
41+
with:
42+
name: wheels-${{ matrix.os }}
43+
path: dist
44+
45+
publish:
46+
name: Publish to PyPI
47+
needs: build
48+
runs-on: ubuntu-latest
49+
environment: pypi
50+
permissions:
51+
id-token: write
52+
53+
steps:
54+
- name: Download wheels
55+
uses: actions/download-artifact@v4
56+
with:
57+
pattern: wheels-*
58+
merge-multiple: true
59+
path: dist
60+
61+
- name: Publish to PyPI
62+
uses: PyO3/maturin-action@v1
63+
with:
64+
command: upload
65+
args: --non-interactive --skip-existing dist/*

0 commit comments

Comments
 (0)