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:

Reply via email to