Skip to content

Commit a2a9674

Browse files
Migrate to cibuildwheel
1 parent d55a24a commit a2a9674

File tree

2 files changed

+14
-13
lines changed

2 files changed

+14
-13
lines changed

.github/workflows/build_wheels_cibuildwheel.yml

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ jobs:
1717
matrix:
1818
python: ['3.12', '3.13']
1919
package: ['cpu'] # Start with CPU, add GPU later
20-
20+
2121
steps:
2222
- name: Checkout
2323
uses: actions/checkout@v4
@@ -39,26 +39,26 @@ jobs:
3939
# Build configuration
4040
CIBW_BUILD: cp${{ matrix.python == '3.12' && '312' || '313' }}-manylinux_x86_64
4141
CIBW_SKIP: pp* *-musllinux_*
42-
42+
4343
# Use manylinux_2_28 for Colab compatibility (glibc 2.28+)
4444
CIBW_MANYLINUX_X86_64_IMAGE: manylinux_2_28
45-
45+
4646
# Install build dependencies in the manylinux container
4747
# This is the critical part - we need all momentum dependencies
4848
CIBW_BEFORE_ALL_LINUX: |
4949
set -e
5050
echo "=== Installing system packages ==="
5151
yum install -y wget tar gzip bzip2 gcc-c++ make cmake3 ninja-build git
5252
ln -sf /usr/bin/cmake3 /usr/bin/cmake || true
53-
53+
5454
echo "=== Setting up Miniforge3 for conda dependencies ==="
5555
wget -q https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-x86_64.sh -O miniforge.sh
5656
bash miniforge.sh -b -p /opt/miniforge3
5757
rm miniforge.sh
5858
export PATH="/opt/miniforge3/bin:$PATH"
5959
conda init bash
6060
source /root/.bashrc || true
61-
61+
6262
echo "=== Installing momentum dependencies via conda-forge ==="
6363
conda create -y -n momentum -c conda-forge python=${{ matrix.python }} \
6464
'libboost-devel>=1.84' \
@@ -86,21 +86,21 @@ jobs:
8686
'pybind11>=2.13' \
8787
'scikit-build-core>=0.10' \
8888
'setuptools-scm>=8'
89-
89+
9090
echo "=== Conda environment ready ==="
9191
conda info
9292
conda list -n momentum
93-
93+
9494
# Set environment variables for the build
9595
CIBW_ENVIRONMENT_LINUX: |
9696
PATH="/opt/miniforge3/envs/momentum/bin:$PATH"
9797
CMAKE_PREFIX_PATH="/opt/miniforge3/envs/momentum"
9898
LD_LIBRARY_PATH="/opt/miniforge3/envs/momentum/lib:$LD_LIBRARY_PATH"
9999
PKG_CONFIG_PATH="/opt/miniforge3/envs/momentum/lib/pkgconfig"
100-
100+
101101
# Build command
102102
CIBW_BUILD_FRONTEND: "build"
103-
103+
104104
# Repair wheel - exclude PyTorch and CUDA libraries
105105
CIBW_REPAIR_WHEEL_COMMAND_LINUX: |
106106
auditwheel repair \
@@ -111,7 +111,7 @@ jobs:
111111
--exclude 'libnv*.so*' \
112112
-w {dest_dir} \
113113
{wheel}
114-
114+
115115
# Test the wheel after repair
116116
CIBW_TEST_REQUIRES: pytest numpy scipy
117117
CIBW_TEST_COMMAND: pytest {project}/pymomentum/test/*.py -k "not (test_save_motions or test_fbx)" || true
@@ -139,7 +139,7 @@ jobs:
139139
strategy:
140140
matrix:
141141
python: ['3.12']
142-
142+
143143
steps:
144144
- name: Set up Python
145145
uses: actions/setup-python@v5

.github/workflows/publish_to_pypi.yml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,9 @@ permissions:
3737
contents: read
3838

3939
jobs:
40-
build_cpu_wheels:
41-
name: pypi-cpu-py${{ matrix.python-version }}-${{ matrix.os-short }}
40+
build_wheels_pixi:
41+
name: Build wheels (pixi) - ${{ matrix.package-type }} - ${{ matrix.os }} - ${{ matrix.pixi-environment }}
42+
if: github.event_name == 'workflow_dispatch' && inputs.use_cibuildwheel == 'false' || github.event_name != 'workflow_dispatch'
4243
runs-on: ${{ matrix.os }}
4344
strategy:
4445
fail-fast: false

0 commit comments

Comments
 (0)