@@ -100,7 +100,7 @@ jobs:
100
100
# Note: M1 images on Github Actions start from macOS 14
101
101
- [macos-14, macosx_arm64]
102
102
- [windows-2022, win_amd64]
103
- - [windows-11-arm, win_arm64]
103
+ # - [windows-11-arm, win_arm64]
104
104
# TODO: support PyPy?
105
105
python : [["cp310", "3.10"], ["cp311", "3.11"], ["cp312", "3.12"], ["cp313", "3.13"], ["cp313t", "3.13"]]
106
106
include :
@@ -110,12 +110,13 @@ jobs:
110
110
- buildplat : [ubuntu-24.04, pyodide_wasm32]
111
111
python : ["cp312", "3.12"]
112
112
cibw_build_frontend : ' build'
113
- exclude :
114
- - buildplat : [windows-11-arm, win_arm64]
115
- python : ["cp310", "3.10"]
116
- # BackendUnavailable: Cannot import 'mesonpy'
117
- - buildplat : [windows-11-arm, win_arm64]
118
- python : ["cp313t", "3.13"]
113
+ # TEMP: exclude block no longer needed when win_arm64 is commented
114
+ # exclude:
115
+ # - buildplat: [windows-11-arm, win_arm64]
116
+ # python: ["cp310", "3.10"]
117
+ # # BackendUnavailable: Cannot import 'mesonpy'
118
+ # - buildplat: [windows-11-arm, win_arm64]
119
+ # python: ["cp313t", "3.13"]
119
120
120
121
env :
121
122
IS_PUSH : ${{ github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') }}
@@ -219,3 +220,53 @@ jobs:
219
220
source ci/upload_wheels.sh
220
221
set_upload_vars
221
222
upload_wheels
223
+
224
+ publish :
225
+ if : github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')
226
+ needs :
227
+ - build_sdist
228
+ - build_wheels
229
+ runs-on : ubuntu-latest
230
+
231
+ # ---------- current TEST settings ----------
232
+ environment :
233
+ name : testpypi # keep while testing
234
+ # ---------- FINAL settings (uncomment) ----------
235
+ # environment:
236
+ # name: pypi # ← enable for PyPI
237
+
238
+ permissions :
239
+ id-token : write # OIDC token for Trusted Publishing
240
+ contents : read
241
+
242
+ steps :
243
+ # 1. Pull every artifact produced by the two upstream jobs
244
+ - name : Download all artifacts
245
+ uses : actions/download-artifact@v4
246
+ with :
247
+ path : dist # all files land in ./dist/**
248
+
249
+ # 2. Move wheels & sdist into a flat 'upload' dir (skip Pyodide wheels)
250
+ - name : Collect files
251
+ run : |
252
+ mkdir -p upload
253
+ # skip anything containing 'pyodide' in the filename
254
+ find dist -name '*pyodide*.whl' -prune -o \
255
+ -name '*.whl' -exec mv {} upload/ \;
256
+ find dist -name '*.tar.gz' -exec mv {} upload/ \;
257
+
258
+ # 3. Publish to TestPyPI using Trusted Publishing
259
+ - name : Publish to TestPyPI (Trusted Publishing)
260
+ uses : pypa/gh-action-pypi-publish@release/v1
261
+ with :
262
+ repository-url : https://test.pypi.org/legacy/ # test endpoint
263
+ packages-dir : upload
264
+ skip-existing : true
265
+
266
+ # ---------- FINAL publish block (uncomment, remove test one above) ----------
267
+ # - name: Publish to PyPI (Trusted Publishing) # ← enable for PyPI
268
+ # uses: pypa/gh-action-pypi-publish@release/v1
269
+ # with:
270
+ # repository-url: https://upload.pypi.org/legacy/ # ← production endpoint
271
+ # packages-dir: upload
272
+ # # skip-existing: true # ← remove for production
0 commit comments