1111 runs-on : ${{ matrix.os }}
1212 strategy :
1313 matrix :
14- os : [ubuntu-22.04, windows-2022, macos-14, macos-15]
14+ # Use explicit Apple Silicon and Intel macOS runners so each job
15+ # produces a distinct wheel artifact.
16+ os : [ubuntu-22.04, windows-2022, macos-15, macos-15-intel]
1517
1618 steps :
1719 - uses : actions/checkout@v4
8284 # Keep native arm64 builds on a portable CPU baseline instead of
8385 # tuning wheels to the hosted runner.
8486 CIBW_ENVIRONMENT : CMAKE_ARGS="-DGGML_NATIVE=off"
85- CIBW_BUILD : " cp38-* cp39-* cp310-* cp311-* cp312-*"
87+ # wheel.py-api = "py3" means one aarch64 build covers every supported
88+ # CPython version, so building more just duplicates the artifact name.
89+ CIBW_BUILD : " cp38-*"
8690 with :
8791 output-dir : wheelhouse
8892
9397 path : ./wheelhouse/*.whl
9498
9599 build_wheels_riscv64 :
96- name : Build riscv64 wheels (${{ matrix.shard.name }})
100+ name : Build riscv64 wheels
97101 runs-on : ubuntu-latest
98- strategy :
99- fail-fast : false
100- matrix :
101- shard :
102- - name : cp310
103- build : " cp310-*"
104- artifact : wheels_riscv64_cp310
105- - name : cp311
106- build : " cp311-*"
107- artifact : wheels_riscv64_cp311
108- - name : cp312
109- build : " cp312-*"
110- artifact : wheels_riscv64_cp312
111- - name : cp313
112- build : " cp313-*"
113- artifact : wheels_riscv64_cp313
114- - name : cp314
115- build : " cp314-*"
116- artifact : wheels_riscv64_cp314
117102 steps :
118103 - uses : actions/checkout@v4
119104 with :
@@ -133,16 +118,16 @@ jobs:
133118 # Build riscv64 wheels against a conservative baseline instead of
134119 # enabling RVV-related extensions from the build container.
135120 CIBW_ENVIRONMENT : CMAKE_ARGS="-DGGML_NATIVE=off -DGGML_RVV=off -DGGML_RV_ZFH=off -DGGML_RV_ZVFH=off -DGGML_RV_ZICBOP=off -DGGML_RV_ZIHINTPAUSE=off"
136- # Split the emulated riscv64 build into one Python version per job
137- # to minimize wall-clock time without changing the release artifacts .
138- CIBW_BUILD : ${{ matrix.shard.build }}
121+ # wheel.py-api = "py3" means one riscv64 build covers every supported
122+ # CPython version, so sharding by interpreter only duplicates assets .
123+ CIBW_BUILD : " cp310-* "
139124 with :
140125 output-dir : wheelhouse
141126
142127 - name : Upload wheels as artifacts
143128 uses : actions/upload-artifact@v4
144129 with :
145- name : ${{ matrix.shard.artifact }}
130+ name : wheels_riscv64
146131 path : ./wheelhouse/*.whl
147132
148133 build_sdist :
0 commit comments