Skip to content

test build wheels

test build wheels #1

Workflow file for this run

name: Build
on: [push, pull_request]
jobs:
build_wheels:
name: Build wheels on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, ubuntu-24.04-arm]
steps:
- uses: actions/checkout@v5
- uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Install cibuildwheel
run: python -m pip install cibuildwheel==3.1.4
- name: Build wheels (compile-only, CUDA 12.9)
env:
# Which Python/ABI wheels to build
CIBW_BUILD: "cp3{9,10,11,12}-manylinux_{x86_64,aarch64}"
CIBW_SKIP: "pp* *-musllinux* *-win* *-macosx*"
# Point cibuildwheel to custom manylinux images with CUDA 12.9
CIBW_MANYLINUX_X86_64_IMAGE: "ghcr.io/OWNER/REPO:manylinux_2_28_x86_64_cuda12.9"
CIBW_MANYLINUX_AARCH64_IMAGE: "ghcr.io/OWNER/REPO:manylinux_2_28_aarch64_cuda12.9"
# Make CUDA visible in the container
CIBW_ENVIRONMENT: >
CUDA_HOME=/usr/local/cuda
LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
PATH=/usr/local/cuda/bin:$PATH
# Ensure build tooling for nanobind extension is present
CIBW_BEFORE_BUILD: >
python -m pip install -U pip
scikit-build-core cmake ninja nanobind
# Compile-only: don’t run runtime tests (needs GPU)
CIBW_TEST_SKIP: "*"
CIBW_TEST_COMMAND: ""
# Let auditwheel check manylinux tags and bundle CUDA libs
# (set to "" to go faster if you only want compile proof)
CIBW_REPAIR_WHEEL_COMMAND: "auditwheel repair -w {dest_dir} {wheel}"
# Show compiler/linker commands
CIBW_BUILD_VERBOSITY: "1"
run: python -m cibuildwheel --output-dir wheelhouse
- uses: actions/upload-artifact@v4
with:
name: cibw-wheels-${{ matrix.os }}-${{ strategy.job-index }}
path: ./wheelhouse/*.whl