@@ -234,78 +234,53 @@ jobs:
234234 "
235235
236236 build-wheels-linux :
237- name : Build wheels on Linux
237+ name : Build wheels on Linux (Python ${{ matrix.python-version }})
238238 needs : [test-binding-installation, test-binding-development]
239239 runs-on : ubuntu-latest
240240 if : github.event_name == 'pull_request' || (github.event_name == 'push' && (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v')))
241-
241+ strategy :
242+ matrix :
243+ python-version : ['3.10', '3.12']
244+
242245 steps :
243246 - name : Checkout repository
244247 uses : actions/checkout@v4
245248
246- - name : Set up Python
249+ - name : Set up Python ${{ matrix.python-version }}
247250 uses : actions/setup-python@v4
248251 with :
249- python-version : " 3.12 "
252+ python-version : ${{ matrix.python-version }}
250253
251254 - name : Install system dependencies
252255 run : |
253256 sudo apt update
254- sudo apt install -y cmake build-essential libtbb-dev libspdlog-dev libsimdjson-dev doxygen
257+ sudo apt install -y cmake build-essential doxygen libtbb-dev libfmt-dev libspdlog-dev libsimdjson-dev
258+
259+ - name : Install build dependencies
260+ run : |
261+ python -m pip install --upgrade pip
262+ python -m pip install build wheel setuptools pybind11-stubgen auditwheel
255263
256- - name : Install cibuildwheel
257- run : python -m pip install cibuildwheel==2.16.2
264+ - name : Build wheel
265+ run : |
266+ rm -rf dist wheelhouse
267+ python -m build --wheel
258268
259- - name : Build wheels
260- env :
261- CIBW_BUILD : " cp310-* cp311-* cp312-*"
262- CIBW_SKIP : " *-musllinux_*"
263- CIBW_ARCHS_LINUX : " x86_64"
264- CIBW_MANYLINUX_X86_64_IMAGE : " manylinux_2_28"
265- CIBW_BEFORE_ALL_LINUX : >
266- dnf install -y --nogpgcheck epel-release &&
267- dnf config-manager --set-enabled powertools &&
268- dnf install -y --nogpgcheck cmake make doxygen git wget unzip &&
269- dnf install -y --nogpgcheck gcc-toolset-13 gcc-toolset-13-gcc-c++ &&
270- source /opt/rh/gcc-toolset-13/enable &&
271- export CC=/opt/rh/gcc-toolset-13/root/usr/bin/gcc &&
272- export CXX=/opt/rh/gcc-toolset-13/root/usr/bin/g++ &&
273- wget https://github.com/oneapi-src/oneTBB/archive/refs/tags/v2021.11.0.tar.gz &&
274- tar -xzf v2021.11.0.tar.gz && cd oneTBB-2021.11.0 &&
275- mkdir build && cd build &&
276- cmake .. -DCMAKE_BUILD_TYPE=Release -DTBB_TEST=OFF -DCMAKE_POSITION_INDEPENDENT_CODE=ON &&
277- make -j2 && make install && cd ../.. &&
278- wget https://github.com/fmtlib/fmt/releases/download/10.1.1/fmt-10.1.1.zip &&
279- unzip fmt-10.1.1.zip && cd fmt-10.1.1 &&
280- mkdir build && cd build &&
281- cmake .. -DCMAKE_BUILD_TYPE=Release -DFMT_TEST=OFF -DFMT_DOC=OFF -DCMAKE_POSITION_INDEPENDENT_CODE=ON &&
282- make -j2 && make install && cd ../.. &&
283- wget https://github.com/gabime/spdlog/archive/refs/tags/v1.12.0.tar.gz &&
284- tar -xzf v1.12.0.tar.gz && cd spdlog-1.12.0 &&
285- mkdir build && cd build &&
286- cmake .. -DCMAKE_BUILD_TYPE=Release -DSPDLOG_BUILD_SHARED=ON -DCMAKE_POSITION_INDEPENDENT_CODE=ON &&
287- make -j2 && make install && cd ../.. &&
288- wget https://github.com/simdjson/simdjson/archive/refs/tags/v3.6.0.tar.gz &&
289- tar -xzf v3.6.0.tar.gz && cd simdjson-3.6.0 &&
290- mkdir build && cd build &&
291- cmake .. -DCMAKE_BUILD_TYPE=Release -DSIMDJSON_BUILD_STATIC=OFF -DCMAKE_POSITION_INDEPENDENT_CODE=ON &&
292- make -j2 && make install && cd ../.. &&
293- ldconfig
294- CIBW_ENVIRONMENT_LINUX : >
295- CMAKE_BUILD_PARALLEL_LEVEL=2
296- CMAKE_PREFIX_PATH=/usr/local
297- PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig:/usr/local/lib/pkgconfig:/usr/lib64/pkgconfig
298- LD_LIBRARY_PATH=/usr/local/lib64:/usr/local/lib
299- CC=/opt/rh/gcc-toolset-13/root/usr/bin/gcc
300- CXX=/opt/rh/gcc-toolset-13/root/usr/bin/g++
301- PATH=/opt/rh/gcc-toolset-13/root/usr/bin:$PATH
302- run : python -m cibuildwheel --output-dir wheelhouse
269+ - name : Repair wheel (auditwheel)
270+ run : |
271+ mkdir -p wheelhouse
272+ auditwheel repair dist/*.whl -w wheelhouse
273+
274+ - name : Test wheel installation
275+ run : |
276+ python -m pip install wheelhouse/*.whl
277+ python -c "import dsf; print('DSF wheel installation successful')"
303278
304279 - name : Upload wheels as artifacts
305280 uses : actions/upload-artifact@v4
306281 with :
307- name : wheels -linux
308- path : ./ wheelhouse/*.whl
282+ name : wheel -linux-${{ matrix.python-version }}
283+ path : wheelhouse/*.whl
309284
310285 build-wheels-macos :
311286 name : Build wheels on macOS (Python ${{ matrix.python-version }})
0 commit comments