Skip to content

Commit 17a472b

Browse files
Merge pull request #5 from betterproto/update-workflow
Update workflow
2 parents b9741e2 + 8586b78 commit 17a472b

File tree

4 files changed

+152
-82
lines changed

4 files changed

+152
-82
lines changed

.github/workflows/CI.yml

Lines changed: 99 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# This file is autogenerated by maturin v1.3.2
1+
# This file is autogenerated by maturin v1.7.8
22
# To update, run
33
#
44
# maturin generate-ci github
@@ -20,101 +20,161 @@ permissions:
2020

2121
jobs:
2222
linux:
23-
runs-on: ubuntu-latest
23+
runs-on: ${{ matrix.platform.runner }}
2424
strategy:
25+
fail-fast: false
2526
matrix:
26-
target: [x86_64, x86, aarch64, armv7, s390x, ppc64le]
27+
platform:
28+
- runner: ubuntu-22.04
29+
target: x86_64
30+
- runner: ubuntu-22.04
31+
target: x86
32+
- runner: ubuntu-22.04
33+
target: aarch64
34+
- runner: ubuntu-22.04
35+
target: armv7
36+
- runner: ubuntu-22.04
37+
target: s390x
38+
- runner: ubuntu-22.04
39+
target: ppc64le
2740
steps:
28-
- uses: actions/checkout@v3
29-
- uses: actions/setup-python@v4
41+
- uses: actions/checkout@v4
42+
- uses: actions/setup-python@v5
3043
with:
31-
python-version: '3.10'
44+
python-version: 3.12
3245
- name: Build wheels
3346
uses: PyO3/maturin-action@v1
3447
with:
35-
target: ${{ matrix.target }}
36-
args: --release --out dist --find-interpreter
48+
target: ${{ matrix.platform.target }}
49+
args: --release --out dist
3750
sccache: 'true'
3851
manylinux: auto
3952
- name: Upload wheels
40-
uses: actions/upload-artifact@v3
53+
uses: actions/upload-artifact@v4
54+
with:
55+
name: wheels-linux-${{ matrix.platform.target }}
56+
path: dist
57+
58+
musllinux:
59+
runs-on: ${{ matrix.platform.runner }}
60+
strategy:
61+
matrix:
62+
platform:
63+
- runner: ubuntu-22.04
64+
target: x86_64
65+
- runner: ubuntu-22.04
66+
target: x86
67+
- runner: ubuntu-22.04
68+
target: aarch64
69+
- runner: ubuntu-22.04
70+
target: armv7
71+
steps:
72+
- uses: actions/checkout@v4
73+
- uses: actions/setup-python@v5
74+
with:
75+
python-version: 3.12
76+
- name: Build wheels
77+
uses: PyO3/maturin-action@v1
78+
with:
79+
target: ${{ matrix.platform.target }}
80+
args: --release --out dist
81+
sccache: 'true'
82+
manylinux: musllinux_1_2
83+
- name: Upload wheels
84+
uses: actions/upload-artifact@v4
4185
with:
42-
name: wheels
86+
name: wheels-musllinux-${{ matrix.platform.target }}
4387
path: dist
4488

4589
windows:
46-
runs-on: windows-latest
90+
runs-on: ${{ matrix.platform.runner }}
4791
strategy:
4892
matrix:
49-
target: [x64, x86]
93+
platform:
94+
- runner: windows-latest
95+
target: x64
96+
- runner: windows-latest
97+
target: x86
5098
steps:
51-
- uses: actions/checkout@v3
52-
- uses: actions/setup-python@v4
99+
- uses: actions/checkout@v4
100+
- uses: actions/setup-python@v5
53101
with:
54-
python-version: '3.10'
55-
architecture: ${{ matrix.target }}
102+
python-version: 3.12
103+
architecture: ${{ matrix.platform.target }}
56104
- name: Build wheels
57105
uses: PyO3/maturin-action@v1
58106
with:
59-
target: ${{ matrix.target }}
60-
args: --release --out dist --find-interpreter
107+
target: ${{ matrix.platform.target }}
108+
args: --release --out dist
61109
sccache: 'true'
62110
- name: Upload wheels
63-
uses: actions/upload-artifact@v3
111+
uses: actions/upload-artifact@v4
64112
with:
65-
name: wheels
113+
name: wheels-windows-${{ matrix.platform.target }}
66114
path: dist
67115

68116
macos:
69-
runs-on: macos-latest
117+
runs-on: ${{ matrix.platform.runner }}
70118
strategy:
71119
matrix:
72-
target: [x86_64, aarch64]
120+
platform:
121+
- runner: macos-13
122+
target: x86_64
123+
- runner: macos-14
124+
target: aarch64
73125
steps:
74-
- uses: actions/checkout@v3
75-
- uses: actions/setup-python@v4
126+
- uses: actions/checkout@v4
127+
- uses: actions/setup-python@v5
76128
with:
77-
python-version: '3.10'
129+
python-version: 3.12
78130
- name: Build wheels
79131
uses: PyO3/maturin-action@v1
80132
with:
81-
target: ${{ matrix.target }}
82-
args: --release --out dist --find-interpreter
133+
target: ${{ matrix.platform.target }}
134+
args: --release --out dist
83135
sccache: 'true'
84136
- name: Upload wheels
85-
uses: actions/upload-artifact@v3
137+
uses: actions/upload-artifact@v4
86138
with:
87-
name: wheels
139+
name: wheels-macos-${{ matrix.platform.target }}
88140
path: dist
89141

90142
sdist:
91143
runs-on: ubuntu-latest
92144
steps:
93-
- uses: actions/checkout@v3
145+
- uses: actions/checkout@v4
94146
- name: Build sdist
95147
uses: PyO3/maturin-action@v1
96148
with:
97149
command: sdist
98150
args: --out dist
99151
- name: Upload sdist
100-
uses: actions/upload-artifact@v3
152+
uses: actions/upload-artifact@v4
101153
with:
102-
name: wheels
154+
name: wheels-sdist
103155
path: dist
104156

105157
release:
106158
name: Release
107159
runs-on: ubuntu-latest
108-
if: "startsWith(github.ref, 'refs/tags/')"
109-
needs: [linux, windows, macos, sdist]
160+
if: ${{ startsWith(github.ref, 'refs/tags/') || github.event_name == 'workflow_dispatch' }}
161+
needs: [linux, musllinux, windows, macos, sdist]
162+
permissions:
163+
# Use to sign the release artifacts
164+
id-token: write
165+
# Used to upload release artifacts
166+
contents: write
167+
# Used to generate artifact attestation
168+
attestations: write
110169
steps:
111-
- uses: actions/download-artifact@v3
170+
- uses: actions/download-artifact@v4
171+
- name: Generate artifact attestation
172+
uses: actions/attest-build-provenance@v1
112173
with:
113-
name: wheels
174+
subject-path: 'wheels-*/*'
114175
- name: Publish to PyPI
176+
if: ${{ startsWith(github.ref, 'refs/tags/') }}
115177
uses: PyO3/maturin-action@v1
116-
env:
117-
MATURIN_PYPI_TOKEN: ${{ secrets.PYPI_TOKEN }}
118178
with:
119179
command: upload
120-
args: --non-interactive --skip-existing *
180+
args: --non-interactive --skip-existing wheels-*/*

0 commit comments

Comments
 (0)