diff --git a/.github/workflows/nightly-verify.yml b/.github/workflows/nightly-verify.yml index 264d7806b6..8fb33e18a8 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 0000000000..c17ca103dd --- /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 0000000000..cf03c988d9 --- /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 1b0f217c94..1d1fdee37c 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: