From 477a507e5cdec3109d921cfbdbb9415def7aaef4 Mon Sep 17 00:00:00 2001 From: Paul-Edouard Sarlin <15985472+sarlinpe@users.noreply.github.com> Date: Thu, 28 Nov 2024 12:49:45 +0100 Subject: [PATCH] Update CI infra (#57) Update pybind, cibuildwheel, x86_64 runner, add Python 3.13 --- .github/workflows/build.yml | 10 ++++++++-- CMakeLists.txt | 2 +- ...tall-ceres-centos.sh => install-ceres-almalinux.sh} | 0 pyproject.toml | 6 +++--- 4 files changed, 12 insertions(+), 6 deletions(-) rename ci/{install-ceres-centos.sh => install-ceres-almalinux.sh} (100%) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ecd3ea4..dd2d691 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -18,7 +18,7 @@ jobs: matrix: config: [ {os: ubuntu-latest}, - {os: macos-14, arch: x86_64}, + {os: macos-13, arch: x86_64}, {os: macos-14, arch: arm64}, {os: windows-latest}, ] @@ -52,6 +52,7 @@ jobs: echo "VCPKG_INSTALLATION_ROOT=${VCPKG_INSTALLATION_ROOT}" >> "$GITHUB_ENV" echo "CMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}" >> "$GITHUB_ENV" echo "CMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES}" >> "$GITHUB_ENV" + echo "ARCHFLAGS=-arch ${CMAKE_OSX_ARCHITECTURES}" >> "$GITHUB_ENV" # Fix: cibuildhweel cannot interpolate env variables. CONFIG_SETTINGS="cmake.define.CMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}" @@ -118,8 +119,13 @@ jobs: CIBW_MANYLINUX_X86_64_IMAGE="quay.io/pypa/manylinux_2_28_x86_64" echo "CIBW_MANYLINUX_X86_64_IMAGE=${CIBW_MANYLINUX_X86_64_IMAGE}" >> "$GITHUB_ENV" + - name: Install ARM64 Python 3.8 + uses: actions/setup-python@v5 + with: + python-version: 3.8 + if: runner.os == 'macOS' && runner.arch == 'ARM64' && ${{ matrix.config.arch }} == "arm64" - name: Build wheels - uses: pypa/cibuildwheel@v2.19.2 + uses: pypa/cibuildwheel@v2.22.0 env: CIBW_ARCHS_MACOS: ${{ matrix.config.arch }} - name: Archive wheels diff --git a/CMakeLists.txt b/CMakeLists.txt index df3cc9f..c001945 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -12,7 +12,7 @@ find_package(Ceres 2.1 REQUIRED) find_package(Python REQUIRED COMPONENTS Interpreter Development.Module) -find_package(pybind11 2.11.1 REQUIRED) +find_package(pybind11 2.13.6 REQUIRED) pybind11_add_module(pyceres _pyceres/bindings.cc) target_include_directories(pyceres PRIVATE ${PROJECT_SOURCE_DIR}) diff --git a/ci/install-ceres-centos.sh b/ci/install-ceres-almalinux.sh similarity index 100% rename from ci/install-ceres-centos.sh rename to ci/install-ceres-almalinux.sh diff --git a/pyproject.toml b/pyproject.toml index 1f0de56..8eec65c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,5 +1,5 @@ [build-system] -requires = ["scikit-build-core>=0.3.3", "pybind11==2.11.1"] +requires = ["scikit-build-core>=0.3.3", "pybind11==2.13.6"] build-backend = "scikit_build_core.build" [project] @@ -21,7 +21,7 @@ classifiers = [ ] [tool.cibuildwheel] -build = "cp3{8,9,10,11,12}-{macosx,manylinux,win}*" +build = "cp3{8,9,10,11,12,13}-{macosx,manylinux,win}*" archs = ["auto64"] test-command = "python -c \"import pyceres; print(pyceres.__version__)\"" @@ -29,7 +29,7 @@ test-command = "python -c \"import pyceres; print(pyceres.__version__)\"" VCPKG_COMMIT_ID = "e01906b2ba7e645a76ee021a19de616edc98d29f" [tool.cibuildwheel.linux] -before-all = "{package}/ci/install-ceres-centos.sh" +before-all = "{package}/ci/install-ceres-almalinux.sh" [tool.cibuildwheel.macos] before-all = "{package}/ci/install-ceres-macos.sh"