Skip to content

Commit

Permalink
ci: test against debug Python interpreter (#2115)
Browse files Browse the repository at this point in the history
Fixes #2077.
  • Loading branch information
lidavidm authored Sep 3, 2024
1 parent 31ade42 commit 0d6117e
Show file tree
Hide file tree
Showing 4 changed files with 93 additions and 1 deletion.
7 changes: 6 additions & 1 deletion .github/workflows/nightly-verify.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
31 changes: 31 additions & 0 deletions ci/docker/python-debug.dockerfile
Original file line number Diff line number Diff line change
@@ -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}"
42 changes: 42 additions & 0 deletions ci/docker/python-debug.sh
Original file line number Diff line number Diff line change
@@ -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
14 changes: 14 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down

0 comments on commit 0d6117e

Please sign in to comment.