This is an automated email from the ASF dual-hosted git repository.

lidavidm pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow-adbc.git


The following commit(s) were added to refs/heads/main by this push:
     new c4d2dab43 ci: use native Linux ARM runner, test Python 3.13 (#2485)
c4d2dab43 is described below

commit c4d2dab43f94daf998a410d8a4b8fcfee40645d1
Author: David Li <[email protected]>
AuthorDate: Mon Jan 27 02:55:38 2025 -0500

    ci: use native Linux ARM runner, test Python 3.13 (#2485)
    
    This cuts the build time from ~1 hour to ~10 minutes
---
 .github/workflows/packaging.yml | 40 +++++++++++++++++++++++++++-------------
 ci/scripts/install_python.sh    |  9 +++++----
 2 files changed, 32 insertions(+), 17 deletions(-)

diff --git a/.github/workflows/packaging.yml b/.github/workflows/packaging.yml
index da9e7389b..1a1d2f89c 100644
--- a/.github/workflows/packaging.yml
+++ b/.github/workflows/packaging.yml
@@ -553,23 +553,21 @@ jobs:
           ./adbc/ci/scripts/python_conda_test.sh $(pwd)/adbc $(pwd)/adbc/build
 
   python-manylinux:
-    name: "Python ${{ matrix.arch }} manylinux${{ matrix.manylinux_version }}"
-    runs-on: ubuntu-latest
+    name: "Python ${{ matrix.arch }} manylinux"
+    runs-on: ${{ matrix.runs_on }}
     needs:
       - source
     strategy:
       fail-fast: false
       matrix:
         arch: ["amd64", "arm64v8"]
-        is_pr:
-          - ${{ startsWith(github.ref, 'refs/pull/') }}
-        exclude:
-          # Don't run arm64v8 build on PRs since the build is excessively slow
-          - arch: arm64v8
-            is_pr: true
         include:
-          - {arch: amd64, platform: linux/amd64}
-          - {arch: arm64v8, platform: linux/arm64/v8}
+          - arch: amd64
+            platform: "linux/amd64"
+            runs_on: "ubuntu-latest"
+          - arch: arm64v8
+            platform: "linux/arm64/v8"
+            runs_on: "ubuntu-24.04-arm"
     steps:
       - uses: actions/download-artifact@v4
         with:
@@ -594,9 +592,6 @@ jobs:
           echo "schedule: ${{ github.event.schedule }}" >> $GITHUB_STEP_SUMMARY
           echo "ref: ${{ github.ref }}" >> $GITHUB_STEP_SUMMARY
 
-      - name: Set up QEMU
-        uses: docker/setup-qemu-action@v3
-
       - name: Build wheel
         env:
           ARCH: ${{ matrix.arch }}
@@ -657,6 +652,14 @@ jobs:
           pushd adbc
           env PYTHON=3.12 docker compose run python-wheel-manylinux-test
 
+      - name: Test wheel 3.13
+        env:
+          ARCH: ${{ matrix.arch }}
+          PLATFORM: ${{ matrix.platform }}
+        run: |
+          pushd adbc
+          env PYTHON=3.13 docker compose run python-wheel-manylinux-test
+
   python-macos:
     name: "Python ${{ matrix.arch }} macOS"
     runs-on: ${{ matrix.os }}
@@ -738,6 +741,7 @@ jobs:
           sudo ci/scripts/install_python.sh macos 3.10
           sudo ci/scripts/install_python.sh macos 3.11
           sudo ci/scripts/install_python.sh macos 3.12
+          sudo ci/scripts/install_python.sh macos 3.13
           popd
 
       - name: Build wheel
@@ -805,6 +809,16 @@ jobs:
           ./ci/scripts/python_wheel_unix_test.sh $(pwd)
           deactivate
 
+      - name: Test wheel 3.13
+        run: |
+          pushd adbc
+
+          /Library/Frameworks/Python.framework/Versions/3.13/bin/python3.13 -m 
venv test-env-313
+          source test-env-313/bin/activate
+          export PYTHON_VERSION=3.13
+          ./ci/scripts/python_wheel_unix_test.sh $(pwd)
+          deactivate
+
   python-windows:
     name: "Python ${{ matrix.python_version }} Windows"
     runs-on: windows-latest
diff --git a/ci/scripts/install_python.sh b/ci/scripts/install_python.sh
index 8f19d0017..946a579de 100755
--- a/ci/scripts/install_python.sh
+++ b/ci/scripts/install_python.sh
@@ -30,7 +30,8 @@ declare -A versions
 versions=([3.9]=3.9.13
           [3.10]=3.10.11
           [3.11]=3.11.8
-          [3.12]=3.12.2)
+          [3.12]=3.12.2
+          [3.13]=3.13.1)
 
 if [ "$#" -ne 2 ]; then
   echo "Usage: $0 <platform> <version>"
@@ -47,10 +48,10 @@ full_version=${versions[$2]}
 if [ $platform = "MacOSX" ]; then
     echo "Downloading Python installer..."
 
-    if [ "$(uname -m)" = "arm64" ] || [ "$version" = "3.10" ] || [ "$version" 
= "3.11" ] || [ "$version" = "3.12" ]; then
-        fname="python-${full_version}-macos11.pkg"
-    else
+    if [ "$(uname -m)" != "arm64" ] && [ "$version" = "3.9" ]; then
         fname="python-${full_version}-macosx10.9.pkg"
+    else
+        fname="python-${full_version}-macos11.pkg"
     fi
     wget "https://www.python.org/ftp/python/${full_version}/${fname}";
 

Reply via email to