Skip to content

Commit a7692b4

Browse files
committed
Pre-build numpy wheel for Python 3.15 (no pre-built wheel yet)
NumPy does not ship pre-built wheels for Python 3.15 yet. Build the wheel from source during the build stage (where compilers are available), upload it as an artifact, and download/install it in the test stage before running cuda.bindings tests.
1 parent 8a2c9c3 commit a7692b4

3 files changed

Lines changed: 39 additions & 0 deletions

File tree

.github/workflows/build-wheel.yml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -257,6 +257,23 @@ jobs:
257257
mv "/c/Program Files/Git/usr/bin/link.exe" "/c/Program Files/Git/usr/bin/link.exe.bak"
258258
fi
259259
260+
- name: Build numpy wheel (pre-release Python)
261+
if: ${{ startsWith(matrix.python-version, '3.15') }}
262+
run: |
263+
pip wheel "numpy>=1.21.1" --no-binary numpy -w numpy-wheel/
264+
265+
- name: Upload numpy wheel
266+
if: ${{ startsWith(matrix.python-version, '3.15') }}
267+
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
268+
with:
269+
name: numpy-python${{ env.PYTHON_VERSION_FORMATTED }}-${{ inputs.host-platform }}
270+
path: numpy-wheel/*.whl
271+
if-no-files-found: error
272+
273+
- name: Install numpy wheel
274+
if: ${{ startsWith(matrix.python-version, '3.15') }}
275+
run: pip install numpy-wheel/*.whl
276+
260277
- name: Build cuda.bindings Cython tests
261278
run: |
262279
pip install $(ls ${{ env.CUDA_BINDINGS_ARTIFACTS_DIR }}/*.whl)[test]

.github/workflows/test-wheel-linux.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -240,6 +240,17 @@ jobs:
240240
- name: Set up compute-sanitizer
241241
run: setup-sanitizer
242242

243+
- name: Download numpy wheel (pre-release Python)
244+
if: ${{ startsWith(matrix.PY_VER, '3.15') }}
245+
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
246+
with:
247+
name: numpy-python${{ env.PYTHON_VERSION_FORMATTED }}-${{ inputs.host-platform }}
248+
path: numpy-wheel
249+
250+
- name: Install numpy wheel (pre-release Python)
251+
if: ${{ startsWith(matrix.PY_VER, '3.15') }}
252+
run: pip install numpy-wheel/*.whl
253+
243254
- name: Run cuda.bindings tests
244255
if: ${{ env.SKIP_CUDA_BINDINGS_TEST == '0' }}
245256
env:

.github/workflows/test-wheel-windows.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,17 @@ jobs:
215215
host-platform: ${{ inputs.host-platform }}
216216
cuda-version: ${{ matrix.CUDA_VER }}
217217

218+
- name: Download numpy wheel (pre-release Python)
219+
if: ${{ startsWith(matrix.PY_VER, '3.15') }}
220+
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
221+
with:
222+
name: numpy-python${{ env.PYTHON_VERSION_FORMATTED }}-${{ inputs.host-platform }}
223+
path: numpy-wheel
224+
225+
- name: Install numpy wheel (pre-release Python)
226+
if: ${{ startsWith(matrix.PY_VER, '3.15') }}
227+
run: pip install numpy-wheel/*.whl
228+
218229
- name: Run cuda.bindings tests
219230
if: ${{ env.SKIP_CUDA_BINDINGS_TEST == '0' }}
220231
env:

0 commit comments

Comments
 (0)