From bc7691c71501a1a0a41062adc3311969bcfb346f Mon Sep 17 00:00:00 2001 From: Joris Van den Bossche Date: Wed, 7 May 2025 13:54:10 +0200 Subject: [PATCH 1/3] BLD: build linux aarch64 wheels on github actions --- .github/workflows/release.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index a21916b4..231f44ad 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -96,7 +96,7 @@ jobs: build-wheels-linux: name: Build wheels on Linux - runs-on: "ubuntu-latest" + runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: @@ -104,10 +104,16 @@ jobs: # use manylinux2014 for older glibc platforms until discontinued - wheel_name: "pyogrio-wheel-linux-manylinux2014_x86_64" container: "ci/manylinux2014_x86_64-vcpkg-gdal.Dockerfile" + os: ubuntu-latest # use manylinux_2_28 for any platforms with glibc>=2.28 - wheel_name: "pyogrio-wheel-linux-manylinux_2_28_x86_64" container: "ci/manylinux_2_28_x86_64-vcpkg-gdal.Dockerfile" + os: ubuntu-latest + + - wheel_name: "pyogrio-wheel-linux-manylinux_2_28_aarch64" + container: "ci/manylinux_2_28_aarch64-vcpkg-gdal.Dockerfile" + os: ubuntu-24.04-arm steps: - name: Checkout From 65f8eebd62d120b67632a48a4d92a5485056e2ce Mon Sep 17 00:00:00 2001 From: Joris Van den Bossche Date: Wed, 7 May 2025 14:21:02 +0200 Subject: [PATCH 2/3] fix tag + add tests --- .github/workflows/release.yml | 8 +++++++- pyproject.toml | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 231f44ad..3a62dd42 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -105,15 +105,18 @@ jobs: - wheel_name: "pyogrio-wheel-linux-manylinux2014_x86_64" container: "ci/manylinux2014_x86_64-vcpkg-gdal.Dockerfile" os: ubuntu-latest + arch: x86_64 # use manylinux_2_28 for any platforms with glibc>=2.28 - wheel_name: "pyogrio-wheel-linux-manylinux_2_28_x86_64" container: "ci/manylinux_2_28_x86_64-vcpkg-gdal.Dockerfile" os: ubuntu-latest + arch: x86_64 - wheel_name: "pyogrio-wheel-linux-manylinux_2_28_aarch64" container: "ci/manylinux_2_28_aarch64-vcpkg-gdal.Dockerfile" os: ubuntu-24.04-arm + arch: aarch64 steps: - name: Checkout @@ -134,7 +137,7 @@ jobs: with: context: . file: ${{ matrix.container }} - tags: manylinux-vcpkg-gdal:latest + tags: manylinux-${{ matrix.arch }}-vcpkg-gdal:latest push: false load: true cache-from: type=gha @@ -249,6 +252,7 @@ jobs: [ "ubuntu-latest", "ubuntu-22.04", + "ubuntu-24.04-arm", "windows-latest", "macos-13", "macos-latest", @@ -261,6 +265,8 @@ jobs: artifact: pyogrio-wheel-linux-manylinux_2_28_x86_64 - os: "ubuntu-22.04" artifact: pyogrio-wheel-linux-manylinux_2_28_x86_64 + - os: "ubuntu-24.04-arm" + artifact: pyogrio-wheel-linux-manylinux_2_28_aarch64 - os: "windows-latest" artifact: pyogrio-wheel-x64-windows-dynamic-release - os: "macos-13" diff --git a/pyproject.toml b/pyproject.toml index 3ff2aac3..d4d1640b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -43,7 +43,7 @@ Repository = "https://github.com/geopandas/pyogrio" [tool.cibuildwheel] skip = ["pp*", "*musllinux*"] archs = ["auto64"] -manylinux-x86_64-image = "manylinux-vcpkg-gdal:latest" +manylinux-x86_64-image = "manylinux-x86_64-vcpkg-gdal:latest" manylinux-aarch64-image = "manylinux-aarch64-vcpkg-gdal:latest" build-verbosity = 3 From 2abae683d07c34370330b6b9594d978178530406 Mon Sep 17 00:00:00 2001 From: Joris Van den Bossche Date: Wed, 7 May 2025 15:25:09 +0200 Subject: [PATCH 3/3] remove circleci config --- .circleci/config.yml | 48 -------------------------------------------- 1 file changed, 48 deletions(-) delete mode 100644 .circleci/config.yml diff --git a/.circleci/config.yml b/.circleci/config.yml deleted file mode 100644 index d8bb2719..00000000 --- a/.circleci/config.yml +++ /dev/null @@ -1,48 +0,0 @@ -version: 2.1 - -jobs: - linux-aarch64-wheels: - working_directory: ~/linux-aarch64-wheels - machine: - image: default - docker_layer_caching: true - # resource_class is what tells CircleCI to use an ARM worker for native arm builds - # https://circleci.com/product/features/resource-classes/ - resource_class: arm.medium - environment: - CIBUILDWHEEL: 1 - CIBW_BUILD: "cp*-manylinux_aarch64" - steps: - - checkout - - run: - name: Build docker image with GDAL install - command: docker build -f ci/manylinux_2_28_aarch64-vcpkg-gdal.Dockerfile -t manylinux-aarch64-vcpkg-gdal:latest . - - run: - name: Build the Linux aarch64 wheels. - command: | - python3 -m pip install --user cibuildwheel==2.22.0 - python3 -m cibuildwheel --output-dir wheelhouse - - run: - name: Test the wheels - command: | - python3 -m pip install -r ci/requirements-wheel-test.txt - python3 -m pip install --no-deps geopandas - python3 -m pip install --pre --find-links wheelhouse pyogrio - python3 -m pip list - cd .. - python3 -c "import pyogrio; print(f'GDAL version: {pyogrio.__gdal_version__}\nGEOS version: {pyogrio.__gdal_geos_version__}')" - python3 -m pytest --pyargs pyogrio.tests -v - - store_artifacts: - path: wheelhouse/ - -workflows: - wheel-build: - jobs: - - linux-aarch64-wheels: - filters: - branches: - only: - - main - - wheels-linux-aarch64 - tags: - only: /.*/