1111 types : [published]
1212
1313env :
14- # macOS universal and arm64 builds
14+ # macOS universal and arm64 wheels build on Intel
1515 CIBW_ARCHS_MACOS : " x86_64 universal2 arm64"
1616 CIBW_SKIP : " cp36-* cp37-*"
1717 CIBW_BUILD_VERBOSITY : 1
1818
1919jobs :
2020
2121 # --------------------------------------------------------------------------
22- # Build wheels for each OS and Python version
22+ # Build wheels for all OS × Python versions
2323 # --------------------------------------------------------------------------
2424 build_wheels :
2525 name : Build wheels (${{ matrix.os }} / Python ${{ matrix.python-version }})
@@ -28,11 +28,78 @@ jobs:
2828 strategy :
2929 fail-fast : false
3030 matrix :
31- os : [ubuntu-latest, windows-latest, macos-latest]
32- python-version : ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13", "3.14"]
31+ include :
32+ # ---------------- Ubuntu ----------------
33+ - os : ubuntu-latest
34+ python-version : " 3.8"
35+ tag : cp38
36+ - os : ubuntu-latest
37+ python-version : " 3.9"
38+ tag : cp39
39+ - os : ubuntu-latest
40+ python-version : " 3.10"
41+ tag : cp310
42+ - os : ubuntu-latest
43+ python-version : " 3.11"
44+ tag : cp311
45+ - os : ubuntu-latest
46+ python-version : " 3.12"
47+ tag : cp312
48+ - os : ubuntu-latest
49+ python-version : " 3.13"
50+ tag : cp313
51+ - os : ubuntu-latest
52+ python-version : " 3.14"
53+ tag : cp314
54+
55+ # ---------------- Windows ----------------
56+ - os : windows-latest
57+ python-version : " 3.8"
58+ tag : cp38
59+ - os : windows-latest
60+ python-version : " 3.9"
61+ tag : cp39
62+ - os : windows-latest
63+ python-version : " 3.10"
64+ tag : cp310
65+ - os : windows-latest
66+ python-version : " 3.11"
67+ tag : cp311
68+ - os : windows-latest
69+ python-version : " 3.12"
70+ tag : cp312
71+ - os : windows-latest
72+ python-version : " 3.13"
73+ tag : cp313
74+ - os : windows-latest
75+ python-version : " 3.14"
76+ tag : cp314
77+
78+ # ---------------- macOS ----------------
79+ - os : macos-latest
80+ python-version : " 3.8"
81+ tag : cp38
82+ - os : macos-latest
83+ python-version : " 3.9"
84+ tag : cp39
85+ - os : macos-latest
86+ python-version : " 3.10"
87+ tag : cp310
88+ - os : macos-latest
89+ python-version : " 3.11"
90+ tag : cp311
91+ - os : macos-latest
92+ python-version : " 3.12"
93+ tag : cp312
94+ - os : macos-latest
95+ python-version : " 3.13"
96+ tag : cp313
97+ - os : macos-latest
98+ python-version : " 3.14"
99+ tag : cp314
33100
34101 env :
35- CIBW_BUILD : cp ${{ matrix.python-version.replace('.', '') }}-*
102+ CIBW_BUILD : " ${{ matrix.tag }}-*"
36103
37104 steps :
38105 - uses : actions/checkout@v4
@@ -47,11 +114,12 @@ jobs:
47114 if-no-files-found : error
48115
49116 # --------------------------------------------------------------------------
50- # Build sdist (only once)
117+ # Build sdist (once)
51118 # --------------------------------------------------------------------------
52119 build_sdist :
53120 name : Build source distribution
54121 runs-on : ubuntu-latest
122+
55123 steps :
56124 - uses : actions/checkout@v4
57125
64132 path : dist/*.tar.gz
65133
66134 # --------------------------------------------------------------------------
67- # Upload wheels and sdist to PyPI (only for version tags)
135+ # Upload all wheels + sdist to PyPI (only on version tags)
68136 # --------------------------------------------------------------------------
69137 upload_pypi :
70138 name : Upload to PyPI
@@ -76,17 +144,11 @@ jobs:
76144 id-token : write
77145
78146 steps :
79- - name : Download wheel artifacts
147+ - name : Download all artifacts
80148 uses : actions/download-artifact@v4
81149 with :
82150 path : dist
83151 merge-multiple : true
84152
85- - name : Download sdist
86- uses : actions/download-artifact@v4
87- with :
88- name : sdist
89- path : dist
90-
91153 - name : Publish to PyPI
92- uses : pypa/gh-action-pypi-publish@release/v1
154+ uses : pypa/gh-action-pypi-publish@release/v1
0 commit comments