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}"