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 0d6117e2d ci: test against debug Python interpreter (#2115)
0d6117e2d is described below
commit 0d6117e2dc1fc06aa5d9bd47afd85f3cc0331085
Author: David Li <[email protected]>
AuthorDate: Tue Sep 3 11:03:07 2024 +0900
ci: test against debug Python interpreter (#2115)
Fixes #2077.
---
.github/workflows/nightly-verify.yml | 7 +++++-
ci/docker/python-debug.dockerfile | 31 ++++++++++++++++++++++++++
ci/docker/python-debug.sh | 42 ++++++++++++++++++++++++++++++++++++
docker-compose.yml | 14 ++++++++++++
4 files changed, 93 insertions(+), 1 deletion(-)
diff --git a/.github/workflows/nightly-verify.yml
b/.github/workflows/nightly-verify.yml
index 264d7806b..8fb33e18a 100644
--- a/.github/workflows/nightly-verify.yml
+++ b/.github/workflows/nightly-verify.yml
@@ -185,7 +185,12 @@ jobs:
path: arrow-adbc
persist-credentials: false
- - name: Run Test
+ - name: cpp-clang-latest
run: |
pushd arrow-adbc
docker compose run --rm cpp-clang-latest
+
+ - name: python-debug
+ run: |
+ pushd arrow-adbc
+ docker compose run -e PYTHON=3.12 --rm python-debug
diff --git a/ci/docker/python-debug.dockerfile
b/ci/docker/python-debug.dockerfile
new file mode 100644
index 000000000..c17ca103d
--- /dev/null
+++ b/ci/docker/python-debug.dockerfile
@@ -0,0 +1,31 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+FROM ghcr.io/mamba-org/micromamba:bookworm
+
+ARG ARCH
+ARG GO
+
+USER root
+RUN apt update && apt install -y git make wget && apt clean
+
+# arm64v8 -> arm64
+RUN wget --no-verbose https://go.dev/dl/go${GO}.linux-${ARCH/v8/}.tar.gz && \
+ tar -C /usr/local -xzf go${GO}.linux-${ARCH/v8/}.tar.gz && \
+ rm go${GO}.linux-${ARCH/v8/}.tar.gz
+
+ENV PATH="/usr/local/go/bin:${PATH}"
diff --git a/ci/docker/python-debug.sh b/ci/docker/python-debug.sh
new file mode 100755
index 000000000..cf03c988d
--- /dev/null
+++ b/ci/docker/python-debug.sh
@@ -0,0 +1,42 @@
+#!/bin/bash
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+set -euxo pipefail
+
+echo "Using debug Python ${PYTHON}"
+
+git config --global --add safe.directory /adbc
+
+# https://github.com/mamba-org/mamba/issues/3289
+cat /adbc/ci/conda_env_cpp.txt /adbc/ci/conda_env_python.txt |\
+ grep -v -e '^$' |\
+ grep -v -e '^#' |\
+ sort |\
+ tee /tmp/spec.txt
+
+micromamba install -c conda-forge -y \
+ -f /tmp/spec.txt \
+ "conda-forge/label/python_debug::python=${PYTHON}[build=*_cpython]"
+micromamba clean --all -y
+
+export ADBC_USE_ASAN=ON
+export ADBC_USE_UBSAN=ON
+
+env ADBC_BUILD_TESTS=OFF /adbc/ci/scripts/cpp_build.sh /adbc
/adbc/build/pydebug
+/adbc/ci/scripts/python_build.sh /adbc /adbc/build/pydebug
+/adbc/ci/scripts/python_test.sh /adbc /adbc/build/pydebug
diff --git a/docker-compose.yml b/docker-compose.yml
index 1b0f217c9..1d1fdee37 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -79,6 +79,20 @@ services:
- .:/adbc:delegated
command: "/bin/bash -c '/adbc/ci/scripts/python_conda_test.sh /adbc
/adbc/build'"
+ python-debug:
+ image: ${REPO}:${ARCH}-python-${PYTHON}-debug-adbc
+ build:
+ context: .
+ cache_from:
+ - ${REPO}:${ARCH}-python-${PYTHON}-debug-adbc
+ dockerfile: ci/docker/python-debug.dockerfile
+ args:
+ ARCH: ${ARCH}
+ GO: ${GO}
+ volumes:
+ - .:/adbc:delegated
+ command: /adbc/ci/docker/python-debug.sh
+
############################ Python sdist ##################################
python-sdist: