mirror of
https://github.com/apache/arrow.git
synced 2026-10-28 08:35:46 +08:00
### Rationale for this change Python 3.15.0 released 2026-10-09 (https://www.python.org/downloads/release/python-3150/). This is a follow-up to https://github.com/apache/arrow/pull/48191, bumping the release pins and versions from 3.15.0rc2 to 3.15.0 (released). ### What changes are included in this PR? - Change version reference from 3.15.0rc2 to 3.15.0 - Update manylinux and musllinux quay.io build dates - Update build date for python-build-standalone - Bump PYTHON_WHEEL_WINDOWS_IMAGE_REVISION and PYTHON_WHEEL_WINDOWS_TEST_IMAGE_REVISION ### Are these changes tested? No ### Are there any user-facing changes? No ### Was AI used for this PR? **PR code and description written by:** - [X] Human - [ ] AI **Reviewed before submission by:** - [X] Human - [X] AI - [ ] Not reviewed * GitHub Issue: #52522 Authored-by: paul@iqmo.com <paul@iqmo.com> Signed-off-by: Raúl Cumplido <raulcd@apache.org>
2124 lines
68 KiB
YAML
2124 lines
68 KiB
YAML
# 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.
|
|
|
|
# Usage
|
|
# -----
|
|
#
|
|
# The docker compose file is parametrized using environment variables, the
|
|
# defaults are set in .env file.
|
|
#
|
|
# Example:
|
|
# $ ARCH=arm64/v8 docker compose build ubuntu-cpp
|
|
# $ ARCH=arm64/v8 docker compose run ubuntu-cpp
|
|
#
|
|
#
|
|
# Coredumps
|
|
# ---------
|
|
#
|
|
# In order to enable coredumps for the C++ tests run by CTest either with
|
|
# command `make unittest` or `ctest --output-on-failure` the correct coredump
|
|
# patterns must be set.
|
|
# The kernel settings are coming from the host, so while it can be enabled from
|
|
# a running container using --privileged option the change will affect all other
|
|
# containers, so prefer setting it explicitly, directly on the host.
|
|
# WARNING: setting this will affect the host machine.
|
|
#
|
|
# Linux host:
|
|
# $ sudo sysctl -w kernel.core_pattern=/tmp/core.%e.%p
|
|
#
|
|
# macOS host running Docker for Mac (won't persist between restarts):
|
|
# $ screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty
|
|
# # echo "/tmp/core.%e.%p" > /proc/sys/kernel/core_pattern
|
|
#
|
|
# The setup attempts to generate coredumps by default, but the correct paths
|
|
# above must be set. In order to disable the coredump generation set
|
|
# ULIMIT_CORE environment variable to 0 before running docker compose
|
|
# (or by setting it in .env file):
|
|
#
|
|
# ULIMIT_CORE=0 docker compose run --rm conda-cpp
|
|
#
|
|
# See more in cpp/build-support/run-test.sh::print_coredumps
|
|
|
|
x-ccache: &ccache
|
|
CCACHE_COMPILERCHECK: content
|
|
CCACHE_COMPRESS: 1
|
|
CCACHE_COMPRESSLEVEL: 6
|
|
CCACHE_MAXSIZE: 1.5G
|
|
CCACHE_DIR: /ccache
|
|
# Some builds (such as PyArrow) copy their source files in a temporary directory,
|
|
# avoid hashing the current directory to make ccache useful on those builds.
|
|
CCACHE_NOHASHDIR: 1
|
|
|
|
x-common: &common
|
|
GITHUB_ACTIONS:
|
|
|
|
x-cpp: &cpp
|
|
ARROW_RUNTIME_SIMD_LEVEL:
|
|
ARROW_SIMD_LEVEL:
|
|
|
|
x-sccache: &sccache
|
|
AWS_ACCESS_KEY_ID:
|
|
AWS_SECRET_ACCESS_KEY:
|
|
AWS_SESSION_TOKEN:
|
|
SCCACHE_BUCKET:
|
|
SCCACHE_REGION:
|
|
SCCACHE_S3_KEY_PREFIX: ${SCCACHE_S3_KEY_PREFIX:-sccache}
|
|
|
|
x-vcpkg-build-secrets: &vcpkg-build-secrets
|
|
- github_repository_owner
|
|
- github_token
|
|
- vcpkg_binary_sources
|
|
|
|
# CPU/memory limit presets to pass to Docker.
|
|
#
|
|
# Usage: archery docker run --resource-limit=github <image>
|
|
#
|
|
# Note that exporting ARCHERY_DOCKER_BIN="sudo docker" is likely required,
|
|
# unless Docker is configured with cgroups v2 (else Docker will silently
|
|
# ignore the limits).
|
|
x-limit-presets:
|
|
# These values emulate GitHub Actions:
|
|
# https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners
|
|
github:
|
|
# Note we use cpuset and not cpus since Ninja only detects and limits
|
|
# parallelism given the former
|
|
cpuset_cpus: [0, 1]
|
|
memory: 7g
|
|
|
|
x-with-gpus:
|
|
- ubuntu-cuda-cpp
|
|
- ubuntu-cuda-python
|
|
|
|
x-hierarchy:
|
|
# This section is used by the archery tool to enable building nested images,
|
|
# so it is enough to call:
|
|
# archery docker run debian-ruby
|
|
# instead of a sequence of docker compose commands:
|
|
# docker compose build debian-cpp
|
|
# docker compose build debian-c-glib
|
|
# docker compose build debian-ruby
|
|
# docker compose run --rm debian-ruby
|
|
#
|
|
# Each node must be either a string scalar of a list containing the
|
|
# descendant images if any. Archery checks that all node has a corresponding
|
|
# service entry, so any new image/service must be listed here.
|
|
- almalinux-verify-rc
|
|
- alpine-linux-cpp
|
|
- alpine-linux-r
|
|
- conda:
|
|
- conda-cpp:
|
|
- conda-integration
|
|
- conda-cpp-valgrind
|
|
- conda-python:
|
|
- conda-python-pandas:
|
|
- conda-python-docs
|
|
- conda-python-cpython-debug
|
|
- conda-python-dask
|
|
- conda-python-emscripten
|
|
- conda-python-hdfs
|
|
- conda-python-no-numpy
|
|
- conda-python-spark
|
|
- conda-verify-rc
|
|
- cpp-jni
|
|
- debian-cpp:
|
|
- debian-c-glib:
|
|
- debian-ruby
|
|
- debian-python:
|
|
- debian-docs
|
|
- dremio
|
|
- fedora-cpp:
|
|
- fedora-python
|
|
- fedora-r-clang
|
|
- python-sdist
|
|
- ubuntu-cpp:
|
|
- ubuntu-cpp-static
|
|
- ubuntu-c-glib:
|
|
- ubuntu-ruby
|
|
- ubuntu-python
|
|
- ubuntu-python-sdist-test
|
|
- ubuntu-r
|
|
- ubuntu-r-only-r
|
|
- ubuntu-cpp-bundled
|
|
- ubuntu-cpp-bundled-offline
|
|
- ubuntu-cpp-odbc
|
|
- ubuntu-cpp-minimal
|
|
- ubuntu-cuda-cpp:
|
|
- ubuntu-cuda-python
|
|
- ubuntu-cpp-sanitizer
|
|
- ubuntu-cpp-thread-sanitizer
|
|
- ubuntu-cpp-emscripten
|
|
- ubuntu-r-valgrind
|
|
- ubuntu-verify-rc
|
|
- r
|
|
- r-revdepcheck
|
|
- r-san
|
|
# helper services
|
|
- impala
|
|
- postgres
|
|
- python-wheel-manylinux-2-28
|
|
- python-wheel-musllinux-1-2
|
|
- python-wheel-manylinux-test-imports
|
|
- python-free-threaded-wheel-manylinux-test-imports
|
|
- python-wheel-musllinux-test-imports
|
|
- python-free-threaded-wheel-musllinux-test-imports
|
|
- python-wheel-manylinux-test-unittests
|
|
- python-free-threaded-wheel-manylinux-test-unittests
|
|
- python-wheel-musllinux-test-unittests
|
|
- python-free-threaded-wheel-musllinux-test-unittests
|
|
- python-wheel-windows-vs2022-base:
|
|
- python-wheel-windows-vs2022
|
|
- python-free-threaded-wheel-windows-vs2022
|
|
- python-wheel-windows-test-base:
|
|
- python-wheel-windows-test
|
|
- python-free-threaded-wheel-windows-test
|
|
|
|
volumes:
|
|
almalinux-ccache:
|
|
name: ${ARCH_SHORT}-almalinux-ccache
|
|
alpine-linux-ccache:
|
|
name: ${ARCH_SHORT}-alpine-linux-ccache
|
|
conda-ccache:
|
|
name: ${ARCH_SHORT}-conda-ccache
|
|
cpp-jni-ccache:
|
|
name: ${ARCH_SHORT}-cpp-jni-ccache
|
|
debian-ccache:
|
|
name: ${ARCH_SHORT}-debian-${DEBIAN}-ccache
|
|
fedora-ccache:
|
|
name: ${ARCH_SHORT}-fedora-${FEDORA}-ccache
|
|
maven-cache:
|
|
name: maven-cache
|
|
python-wheel-manylinux-2-28-ccache:
|
|
name: python-wheel-manylinux-2-28-ccache
|
|
python-wheel-musllinux-1-2-ccache:
|
|
name: python-wheel-musllinux-1-2-ccache
|
|
ubuntu-ccache:
|
|
name: ${ARCH_SHORT}-ubuntu-${UBUNTU}-ccache
|
|
|
|
services:
|
|
|
|
################################# C++ #######################################
|
|
# Release build:
|
|
# docker compose run -e ARROW_BUILD_TYPE=release conda-cpp|debian-cpp|...
|
|
# Shared only:
|
|
# docker compose run -e ARROW_BUILD_STATIC=OFF conda-cpp|debian-cpp|...
|
|
# Static only:
|
|
# docker compose run \
|
|
# -e ARROW_BUILD_SHARED=OFF \
|
|
# -e ARROW_TEST_LINKAGE=static \
|
|
# conda-cpp|debian-cpp|...
|
|
|
|
alpine-linux-cpp:
|
|
# Usage:
|
|
# docker compose build alpine-linux-cpp
|
|
# docker compose run --rm alpine-linux-cpp
|
|
# Parameters:
|
|
# ALPINE_LINUX: 3.22
|
|
# ARCH: amd64, arm64/v8, ...
|
|
image: ${REPO}:${ARCH_SHORT}-alpine-linux-${ALPINE_LINUX}-cpp
|
|
build:
|
|
context: .
|
|
dockerfile: ci/docker/alpine-linux-${ALPINE_LINUX}-cpp.dockerfile
|
|
cache_from:
|
|
- ${REPO}:${ARCH_SHORT}-alpine-linux-${ALPINE_LINUX}-cpp
|
|
args:
|
|
arch: ${ARCH}
|
|
shm_size: &shm-size 2G
|
|
ulimits: &ulimits
|
|
core: ${ULIMIT_CORE}
|
|
environment:
|
|
<<: [*common, *ccache, *cpp]
|
|
ARROW_ENABLE_TIMING_TESTS: # inherit
|
|
ARROW_MIMALLOC: "ON"
|
|
volumes: &alpine-linux-volumes
|
|
- .:/arrow:delegated
|
|
- ${DOCKER_VOLUME_PREFIX}alpine-linux-ccache:/ccache:delegated
|
|
command: >-
|
|
/bin/bash -c "
|
|
/arrow/ci/scripts/cpp_build.sh /arrow /build &&
|
|
/arrow/ci/scripts/cpp_test.sh /arrow /build"
|
|
|
|
conda:
|
|
# Base image for conda builds.
|
|
#
|
|
# Usage:
|
|
# docker compose build conda
|
|
# docker compose run --rm conda
|
|
# Parameters:
|
|
# ARCH: amd64, arm/v7
|
|
image: ${REPO}:${ARCH_SHORT}-conda
|
|
build:
|
|
context: .
|
|
dockerfile: ci/docker/conda.dockerfile
|
|
cache_from:
|
|
- ${REPO}:${ARCH_SHORT}-conda
|
|
args:
|
|
arch: ${ARCH}
|
|
volumes:
|
|
- .:/arrow:delegated
|
|
|
|
conda-cpp:
|
|
# C++ build in conda environment, including the doxygen docs.
|
|
#
|
|
# Usage:
|
|
# docker compose build conda
|
|
# docker compose build conda-cpp
|
|
# docker compose run --rm conda-cpp
|
|
# Parameters:
|
|
# ARCH: amd64, arm/v7
|
|
image: ${REPO}:${ARCH_SHORT}-conda-cpp
|
|
build:
|
|
context: .
|
|
dockerfile: ci/docker/conda-cpp.dockerfile
|
|
cache_from:
|
|
- ${REPO}:${ARCH_SHORT}-conda-cpp
|
|
args:
|
|
repo: ${REPO}
|
|
arch: ${ARCH}
|
|
arch_short: ${ARCH_SHORT}
|
|
shm_size: *shm-size
|
|
ulimits: *ulimits
|
|
environment:
|
|
<<: [*common, *ccache, *sccache, *cpp]
|
|
ARROW_BUILD_BENCHMARKS: "ON"
|
|
ARROW_BUILD_EXAMPLES: "ON"
|
|
ARROW_BUILD_OPENMP_BENCHMARKS: "ON"
|
|
ARROW_ENABLE_TIMING_TESTS: # inherit
|
|
ARROW_EXTRA_ERROR_CONTEXT: "ON"
|
|
ARROW_MIMALLOC: "ON"
|
|
BUILD_DOCS_PYTHON: "ON"
|
|
volumes: &conda-volumes
|
|
- .:/arrow:delegated
|
|
- ${DOCKER_VOLUME_PREFIX}conda-ccache:/ccache:delegated
|
|
command: &conda-cpp-command
|
|
["
|
|
/arrow/ci/scripts/cpp_build.sh /arrow /build &&
|
|
/arrow/ci/scripts/cpp_test.sh /arrow /build"]
|
|
|
|
conda-cpp-valgrind:
|
|
# Usage:
|
|
# docker compose build conda
|
|
# docker compose build conda-cpp
|
|
# docker compose run --rm conda-cpp-valgrind
|
|
# Parameters:
|
|
# ARCH: amd64, arm/v7
|
|
image: ${REPO}:${ARCH_SHORT}-conda-cpp
|
|
build:
|
|
context: .
|
|
dockerfile: ci/docker/conda-cpp.dockerfile
|
|
cache_from:
|
|
- ${REPO}:${ARCH_SHORT}-conda-cpp
|
|
args:
|
|
repo: ${REPO}
|
|
arch: ${ARCH}
|
|
arch_short: ${ARCH_SHORT}
|
|
shm_size: *shm-size
|
|
environment:
|
|
<<: [*common, *ccache, *sccache, *cpp]
|
|
# Shrink test runtime by enabling minimal optimizations
|
|
ARROW_C_FLAGS_DEBUG: "-g1 -Og"
|
|
ARROW_CXX_FLAGS_DEBUG: "-g1 -Og"
|
|
# GH-39973: Do not use debug memory pool for valgrind
|
|
ARROW_DEBUG_MEMORY_POOL: "none"
|
|
ARROW_ENABLE_TIMING_TESTS: # inherit
|
|
ARROW_FLIGHT: "OFF"
|
|
ARROW_FLIGHT_SQL: "OFF"
|
|
ARROW_GANDIVA: "OFF"
|
|
ARROW_JEMALLOC: "OFF"
|
|
ARROW_MIMALLOC: "OFF"
|
|
ARROW_RUNTIME_SIMD_LEVEL: "AVX2" # AVX512 not supported by Valgrind (ARROW-9851)
|
|
ARROW_TEST_MEMCHECK: "ON"
|
|
BUILD_WARNING_LEVEL: "PRODUCTION"
|
|
ARROW_CTEST_TIMEOUT: 500
|
|
volumes: *conda-volumes
|
|
command: *conda-cpp-command
|
|
|
|
debian-cpp:
|
|
# Usage:
|
|
# docker compose build debian-cpp
|
|
# docker compose run --rm debian-cpp
|
|
# Parameters:
|
|
# ARCH: amd64, arm64/v8, ...
|
|
# DEBIAN: 12, experimental
|
|
image: ${REPO}:${ARCH_SHORT}-debian-${DEBIAN}-cpp
|
|
build:
|
|
context: .
|
|
dockerfile: ci/docker/debian-${DEBIAN}-cpp.dockerfile
|
|
cache_from:
|
|
- ${REPO}:${ARCH_SHORT}-debian-${DEBIAN}-cpp
|
|
args:
|
|
arch: ${ARCH}
|
|
gcc: ${GCC}
|
|
llvm: ${LLVM}
|
|
shm_size: *shm-size
|
|
ulimits: *ulimits
|
|
environment:
|
|
<<: [*common, *ccache, *sccache, *cpp]
|
|
ARROW_ENABLE_TIMING_TESTS: # inherit
|
|
ARROW_MIMALLOC: "ON"
|
|
volumes: &debian-volumes
|
|
- .:/arrow:delegated
|
|
- ${DOCKER_VOLUME_PREFIX}debian-ccache:/ccache:delegated
|
|
command: &cpp-command >
|
|
/bin/bash -c "
|
|
/arrow/ci/scripts/cpp_build.sh /arrow /build &&
|
|
/arrow/ci/scripts/cpp_test.sh /arrow /build"
|
|
|
|
dremio:
|
|
platform: linux/x86_64
|
|
image: dremio/dremio-oss:26.0.0
|
|
ports:
|
|
- 9047:9047 # REST API
|
|
- 31010:31010 # JDBC/ODBC
|
|
- 32010:32010
|
|
environment:
|
|
- "DREMIO_JAVA_SERVER_EXTRA_OPTS=-Dsaffron.default.charset=UTF-8 -Dsaffron.default.nationalcharset=UTF-8 -Dsaffron.default.collation.name=UTF-8$$en_US"
|
|
healthcheck:
|
|
test: curl --fail http://localhost:9047
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 30
|
|
|
|
ubuntu-cpp: &ubuntu-cpp-base
|
|
# Usage:
|
|
# docker compose build ubuntu-cpp
|
|
# docker compose run --rm ubuntu-cpp
|
|
# Parameters:
|
|
# ARCH: amd64, arm64/v8, s390x, ...
|
|
# UBUNTU: 22.04, 24.04
|
|
image: ${REPO}:${ARCH_SHORT}-ubuntu-${UBUNTU}-cpp
|
|
build:
|
|
context: .
|
|
dockerfile: ci/docker/ubuntu-${UBUNTU}-cpp.dockerfile
|
|
cache_from:
|
|
- ${REPO}:${ARCH_SHORT}-ubuntu-${UBUNTU}-cpp
|
|
args:
|
|
arch: ${ARCH}
|
|
base: "ubuntu:${UBUNTU}"
|
|
clang_tools: ${CLANG_TOOLS}
|
|
cmake: ${CMAKE}
|
|
gcc: ${GCC}
|
|
llvm: ${LLVM}
|
|
shm_size: *shm-size
|
|
cap_add:
|
|
- SYS_ADMIN
|
|
devices:
|
|
- "/dev/fuse:/dev/fuse"
|
|
security_opt:
|
|
- apparmor:unconfined
|
|
ulimits: *ulimits
|
|
environment:
|
|
<<: [*common, *ccache, *sccache, *cpp]
|
|
ARROW_ENABLE_TIMING_TESTS: # inherit
|
|
ARROW_MIMALLOC: "ON"
|
|
volumes: &ubuntu-volumes
|
|
- .:/arrow:delegated
|
|
- ${DOCKER_VOLUME_PREFIX}ubuntu-ccache:/ccache:delegated
|
|
command: *cpp-command
|
|
|
|
ubuntu-cpp-static:
|
|
# Usage:
|
|
# docker compose build ubuntu-cpp-static
|
|
# docker compose run --rm ubuntu-cpp-static
|
|
# Parameters:
|
|
# ARCH: amd64, arm64/v8, s390x, ...
|
|
# UBUNTU: 22.04, 24.04
|
|
image: ${REPO}:${ARCH_SHORT}-ubuntu-${UBUNTU}-cpp-static
|
|
build:
|
|
context: .
|
|
dockerfile: ci/docker/ubuntu-${UBUNTU}-cpp.dockerfile
|
|
cache_from:
|
|
- ${REPO}:${ARCH_SHORT}-ubuntu-${UBUNTU}-cpp-static
|
|
args:
|
|
arch: ${ARCH}
|
|
base: "ubuntu:${UBUNTU}"
|
|
clang_tools: ${CLANG_TOOLS}
|
|
cmake: ${CMAKE}
|
|
gcc: ${GCC}
|
|
llvm: ${LLVM}
|
|
shm_size: *shm-size
|
|
cap_add:
|
|
- SYS_ADMIN
|
|
devices:
|
|
- "/dev/fuse:/dev/fuse"
|
|
security_opt:
|
|
- apparmor:unconfined
|
|
ulimits: *ulimits
|
|
environment:
|
|
<<: [*common, *ccache, *sccache, *cpp]
|
|
ARROW_HOME: /arrow
|
|
ARROW_DEPENDENCY_SOURCE: BUNDLED
|
|
LIBARROW_MINIMAL: "false"
|
|
# explicitly enable GCS when we build libarrow so that binary libarrow
|
|
# users get more fully-featured builds
|
|
ARROW_GCS: "ON"
|
|
volumes: *ubuntu-volumes
|
|
command: &cpp-static-command
|
|
/bin/bash -c "
|
|
cd /arrow &&
|
|
r/inst/build_arrow_static.sh"
|
|
|
|
ubuntu-cpp-bundled:
|
|
# Arrow build with BUNDLED dependencies
|
|
image: ${REPO}:${ARCH_SHORT}-ubuntu-${UBUNTU}-cpp-minimal
|
|
build:
|
|
context: .
|
|
dockerfile: ci/docker/ubuntu-${UBUNTU}-cpp-minimal.dockerfile
|
|
cache_from:
|
|
- ${REPO}:${ARCH_SHORT}-ubuntu-${UBUNTU}-cpp-minimal
|
|
args:
|
|
arch: ${ARCH}
|
|
base: "ubuntu:${UBUNTU}"
|
|
cmake: ${CMAKE}
|
|
llvm: ${LLVM}
|
|
shm_size: *shm-size
|
|
ulimits: *ulimits
|
|
environment:
|
|
<<: [*common, *ccache, *sccache, *cpp]
|
|
ARROW_DEPENDENCY_SOURCE: BUNDLED
|
|
CMAKE_GENERATOR: "Unix Makefiles"
|
|
volumes: *ubuntu-volumes
|
|
command: *cpp-command
|
|
|
|
ubuntu-cpp-bundled-offline:
|
|
# Arrow build with BUNDLED dependencies with downloaded dependencies.
|
|
image: ${REPO}:${ARCH_SHORT}-ubuntu-${UBUNTU}-cpp-minimal
|
|
build:
|
|
context: .
|
|
dockerfile: ci/docker/ubuntu-${UBUNTU}-cpp-minimal.dockerfile
|
|
cache_from:
|
|
- ${REPO}:${ARCH_SHORT}-ubuntu-${UBUNTU}-cpp-minimal
|
|
args:
|
|
arch: ${ARCH}
|
|
base: "ubuntu:${UBUNTU}"
|
|
llvm: ${LLVM}
|
|
shm_size: *shm-size
|
|
ulimits: *ulimits
|
|
environment:
|
|
# Do not inherit sccache since network is switched off in this build
|
|
<<: [*common, *ccache, *cpp]
|
|
ARROW_DEPENDENCY_SOURCE: BUNDLED
|
|
ARROW_OFFLINE: ON
|
|
# Apache ORC always uses external orc-format.
|
|
ARROW_ORC: OFF
|
|
volumes: *ubuntu-volumes
|
|
command: *cpp-command
|
|
|
|
ubuntu-cpp-odbc:
|
|
# Arrow Flight SQL ODBC build with BUNDLED dependencies with downloaded dependencies.
|
|
<<: *ubuntu-cpp-base
|
|
environment:
|
|
<<: [*common, *ccache, *sccache, *cpp]
|
|
ARROW_ACERO: "OFF"
|
|
ARROW_AZURE: "OFF"
|
|
ARROW_BUILD_TYPE: RELEASE
|
|
ARROW_CSV: "OFF"
|
|
ARROW_DATASET: "OFF"
|
|
ARROW_DEPENDENCY_SOURCE: BUNDLED
|
|
ARROW_DEPENDENCY_USE_SHARED: "OFF"
|
|
ARROW_FLIGHT_SQL_ODBC: "ON"
|
|
ARROW_FLIGHT_SQL_ODBC_CONN: "driver={Apache Arrow Flight SQL ODBC Driver};HOST=dremio;port=32010;pwd=admin2025;uid=admin;useEncryption=false;UseWideChar=true;"
|
|
ARROW_GANDIVA: "OFF"
|
|
ARROW_GCS: "OFF"
|
|
ARROW_HDFS: "OFF"
|
|
ARROW_ORC: "OFF"
|
|
ARROW_PARQUET: "OFF"
|
|
ARROW_S3: "OFF"
|
|
ARROW_SUBSTRAIT: "OFF"
|
|
# Register ODBC before running tests
|
|
depends_on:
|
|
dremio:
|
|
condition: service_healthy
|
|
command: >
|
|
/bin/bash -c "
|
|
/arrow/ci/scripts/cpp_build.sh /arrow /build &&
|
|
sudo /arrow/cpp/src/arrow/flight/sql/odbc/install/unix/install_odbc.sh /usr/local/lib/libarrow_flight_sql_odbc.so &&
|
|
/arrow/ci/scripts/cpp_test.sh /arrow /build"
|
|
|
|
ubuntu-cpp-minimal:
|
|
# Arrow build with minimal components/dependencies
|
|
image: ${REPO}:${ARCH_SHORT}-ubuntu-${UBUNTU}-cpp-minimal
|
|
build:
|
|
context: .
|
|
dockerfile: ci/docker/ubuntu-${UBUNTU}-cpp-minimal.dockerfile
|
|
cache_from:
|
|
- ${REPO}:${ARCH_SHORT}-ubuntu-${UBUNTU}-cpp-minimal
|
|
args:
|
|
arch: ${ARCH}
|
|
base: "ubuntu:${UBUNTU}"
|
|
llvm: ${LLVM}
|
|
shm_size: *shm-size
|
|
ulimits: *ulimits
|
|
environment:
|
|
<<: [*common, *ccache, *sccache, *cpp]
|
|
ARROW_BUILD_UTILITIES: "OFF"
|
|
ARROW_ACERO: "OFF"
|
|
ARROW_AZURE: "OFF"
|
|
ARROW_COMPUTE: "OFF"
|
|
ARROW_CSV: "OFF"
|
|
ARROW_DATASET: "OFF"
|
|
ARROW_FILESYSTEM: "OFF"
|
|
ARROW_FLIGHT: "OFF"
|
|
ARROW_GANDIVA: "OFF"
|
|
ARROW_GCS: "OFF"
|
|
ARROW_HDFS: "OFF"
|
|
ARROW_ORC: "OFF"
|
|
ARROW_PARQUET: "OFF"
|
|
ARROW_S3: "OFF"
|
|
ARROW_SUBSTRAIT: "OFF"
|
|
ARROW_WITH_BROTLI: "OFF"
|
|
ARROW_WITH_BZ2: "OFF"
|
|
ARROW_WITH_LZ4: "OFF"
|
|
ARROW_WITH_SNAPPY: "OFF"
|
|
ARROW_WITH_ZLIB: "OFF"
|
|
ARROW_WITH_ZSTD: "OFF"
|
|
PARQUET_BUILD_EXAMPLES: "OFF"
|
|
PARQUET_BUILD_EXECUTABLES: "OFF"
|
|
PARQUET_REQUIRE_ENCRYPTION: "OFF"
|
|
volumes: *ubuntu-volumes
|
|
command: *cpp-command
|
|
|
|
ubuntu-cuda-cpp:
|
|
# Usage:
|
|
# docker compose build ubuntu-cuda-cpp
|
|
# docker compose run --rm ubuntu-cuda-cpp
|
|
# Parameters:
|
|
# ARCH: amd64
|
|
# UBUNTU: 22.04, 24.04
|
|
# CUDA: <depends on your nvidia driver, should match system CUDA>
|
|
image: ${REPO}:${ARCH_SHORT}-ubuntu-${UBUNTU}-cuda-${CUDA}-cpp
|
|
build:
|
|
context: .
|
|
dockerfile: ci/docker/ubuntu-${UBUNTU}-cpp.dockerfile
|
|
cache_from:
|
|
- ${REPO}:${ARCH_SHORT}-ubuntu-${UBUNTU}-cuda-${CUDA}-cpp
|
|
args:
|
|
arch: ${ARCH}
|
|
base: nvidia/cuda:${CUDA}-devel-ubuntu${UBUNTU}
|
|
clang_tools: ${CLANG_TOOLS}
|
|
cmake: ${CMAKE}
|
|
llvm: ${LLVM}
|
|
shm_size: *shm-size
|
|
ulimits: *ulimits
|
|
environment:
|
|
<<: [*common, *ccache, *sccache, *cpp]
|
|
ARROW_BUILD_UTILITIES: "OFF"
|
|
ARROW_ACERO: "OFF"
|
|
ARROW_AZURE: "OFF"
|
|
ARROW_COMPUTE: "OFF"
|
|
ARROW_CSV: "OFF"
|
|
ARROW_CUDA: "ON"
|
|
ARROW_DATASET: "OFF"
|
|
ARROW_ENABLE_TIMING_TESTS: "OFF"
|
|
ARROW_FILESYSTEM: "OFF"
|
|
ARROW_FLIGHT: "OFF"
|
|
ARROW_FLIGHT_SQL: "OFF"
|
|
ARROW_GANDIVA: "OFF"
|
|
ARROW_GCS: "OFF"
|
|
ARROW_HDFS: "OFF"
|
|
ARROW_JEMALLOC: "OFF"
|
|
ARROW_JSON: "OFF"
|
|
ARROW_ORC: "OFF"
|
|
ARROW_PARQUET: "OFF"
|
|
ARROW_S3: "OFF"
|
|
ARROW_SUBSTRAIT: "OFF"
|
|
ARROW_WITH_OPENTELEMETRY: "OFF"
|
|
volumes: *ubuntu-volumes
|
|
command: *cpp-command
|
|
deploy: &cuda-deploy
|
|
resources:
|
|
reservations:
|
|
devices:
|
|
- driver: nvidia
|
|
capabilities: [gpu]
|
|
|
|
ubuntu-cpp-sanitizer:
|
|
# Usage:
|
|
# docker compose build ubuntu-cpp-sanitizer
|
|
# docker compose run --rm ubuntu-cpp-sanitizer
|
|
# Parameters:
|
|
# ARCH: amd64, arm64/v8, ...
|
|
# UBUNTU: 22.04, ...
|
|
image: ${REPO}:${ARCH_SHORT}-ubuntu-${UBUNTU}-cpp
|
|
cap_add:
|
|
# For LeakSanitizer
|
|
- SYS_PTRACE
|
|
build:
|
|
context: .
|
|
dockerfile: ci/docker/ubuntu-${UBUNTU}-cpp.dockerfile
|
|
cache_from:
|
|
- ${REPO}:${ARCH_SHORT}-ubuntu-${UBUNTU}-cpp
|
|
args:
|
|
arch: ${ARCH}
|
|
clang_tools: ${CLANG_TOOLS}
|
|
cmake: ${CMAKE}
|
|
llvm: ${LLVM}
|
|
shm_size: *shm-size
|
|
volumes: *ubuntu-volumes
|
|
environment:
|
|
<<: [*common, *ccache, *sccache, *cpp]
|
|
CC: clang-${CLANG_TOOLS}
|
|
CXX: clang++-${CLANG_TOOLS}
|
|
# Avoid creating huge static libraries
|
|
ARROW_BUILD_STATIC: "OFF"
|
|
# GH-39973: Do not use debug memory pool for ASAN
|
|
ARROW_DEBUG_MEMORY_POOL: "none"
|
|
ARROW_ENABLE_TIMING_TESTS: # inherit
|
|
# GH-33920: Disable Flight SQL to reduce build time.
|
|
# We'll be able to re-enable this with Ubuntu 24.04 because
|
|
# Ubuntu 24.04 will ship ProtoBuf 3.15.0 or later that is required
|
|
# by Flight SQL.
|
|
ARROW_FLIGHT_SQL: "OFF"
|
|
ARROW_FUZZING: "ON" # Check fuzz regressions
|
|
ARROW_JEMALLOC: "OFF"
|
|
ARROW_MIMALLOC: "OFF"
|
|
ARROW_ORC: "OFF"
|
|
ARROW_S3: "OFF"
|
|
ARROW_USE_ASAN: "ON"
|
|
ARROW_USE_UBSAN: "ON"
|
|
# 1 GB isn't enough for a single sanitizer build
|
|
CCACHE_MAXSIZE: 2G
|
|
Protobuf_SOURCE: "AUTO"
|
|
command: *cpp-command
|
|
|
|
ubuntu-cpp-thread-sanitizer:
|
|
# Usage:
|
|
# docker compose build ubuntu-cpp-thread-sanitizer
|
|
# docker compose run --rm ubuntu-cpp-thread-sanitizer
|
|
# Parameters:
|
|
# ARCH: amd64, arm64/v8, ...
|
|
# UBUNTU: 22.04, 24.04
|
|
image: ${REPO}:${ARCH_SHORT}-ubuntu-${UBUNTU}-cpp
|
|
build:
|
|
context: .
|
|
dockerfile: ci/docker/ubuntu-${UBUNTU}-cpp.dockerfile
|
|
cache_from:
|
|
- ${REPO}:${ARCH_SHORT}-ubuntu-${UBUNTU}-cpp
|
|
args:
|
|
arch: ${ARCH}
|
|
clang_tools: ${CLANG_TOOLS}
|
|
llvm: ${LLVM}
|
|
shm_size: *shm-size
|
|
volumes: *ubuntu-volumes
|
|
environment:
|
|
<<: [*common, *ccache, *sccache, *cpp]
|
|
CC: clang-${CLANG_TOOLS}
|
|
CXX: clang++-${CLANG_TOOLS}
|
|
ARROW_BUILD_STATIC: "OFF"
|
|
ARROW_CTEST_TIMEOUT: 500
|
|
ARROW_ENABLE_TIMING_TESTS: # inherit
|
|
ARROW_FLIGHT: "OFF"
|
|
ARROW_FLIGHT_SQL: "OFF"
|
|
ARROW_JEMALLOC: "OFF"
|
|
ARROW_MIMALLOC: "OFF"
|
|
ARROW_ORC: "OFF"
|
|
ARROW_USE_TSAN: "ON"
|
|
command: *cpp-command
|
|
|
|
ubuntu-cpp-emscripten:
|
|
# Usage:
|
|
# docker compose build ubuntu-cpp-emscripten
|
|
# docker compose run --rm ubuntu-cpp-emscripten
|
|
# Parameters:
|
|
# ARCH: amd64, arm64/v8, ...
|
|
# UBUNTU: 22.04
|
|
image: ${REPO}:${ARCH_SHORT}-ubuntu-${UBUNTU}-cpp
|
|
build:
|
|
context: .
|
|
dockerfile: ci/docker/ubuntu-${UBUNTU}-cpp.dockerfile
|
|
cache_from:
|
|
- ${REPO}:${ARCH_SHORT}-ubuntu-${UBUNTU}-cpp
|
|
args:
|
|
arch: ${ARCH}
|
|
clang_tools: ${CLANG_TOOLS}
|
|
cmake: ${CMAKE}
|
|
llvm: ${LLVM}
|
|
shm_size: *shm-size
|
|
volumes: *ubuntu-volumes
|
|
environment:
|
|
<<: [*common, *ccache, *sccache, *cpp]
|
|
ARROW_EMSCRIPTEN: "ON"
|
|
UBUNTU:
|
|
command: *cpp-command
|
|
|
|
fedora-cpp:
|
|
# Usage:
|
|
# docker compose build fedora-cpp
|
|
# docker compose run --rm fedora-cpp
|
|
# Parameters:
|
|
# ARCH: amd64, arm64/v8, ...
|
|
# FEDORA: 42
|
|
image: ${REPO}:${ARCH_SHORT}-fedora-${FEDORA}-cpp
|
|
build:
|
|
context: .
|
|
dockerfile: ci/docker/fedora-${FEDORA}-cpp.dockerfile
|
|
cache_from:
|
|
- ${REPO}:${ARCH_SHORT}-fedora-${FEDORA}-cpp
|
|
args:
|
|
arch: ${ARCH}
|
|
llvm: ${LLVM}
|
|
shm_size: *shm-size
|
|
ulimits: *ulimits
|
|
environment:
|
|
<<: [*common, *ccache, *sccache, *cpp]
|
|
ARROW_ENABLE_TIMING_TESTS: # inherit
|
|
ARROW_MIMALLOC: "ON"
|
|
volumes: &fedora-volumes
|
|
- .:/arrow:delegated
|
|
- ${DOCKER_VOLUME_PREFIX}fedora-ccache:/ccache:delegated
|
|
command: *cpp-command
|
|
|
|
cpp-jni:
|
|
# Test for the build configuration for JNI.
|
|
#
|
|
# Usage:
|
|
# docker compose run --rm cpp-jni
|
|
# Parameters:
|
|
# ARCH: amd64, arm64/v8
|
|
# ARCH_ALIAS: x86_64, aarch64
|
|
# ARCH_SHORT: amd64, arm64
|
|
image: ${REPO}:${ARCH_SHORT}-cpp-jni-${VCPKG}
|
|
build:
|
|
args:
|
|
arch: ${ARCH}
|
|
arch_short: ${ARCH_SHORT}
|
|
# See available versions at:
|
|
# https://quay.io/repository/pypa/manylinux_2_28_x86_64?tab=tags
|
|
# https://quay.io/repository/pypa/manylinux_2_28_aarch64?tab=tags
|
|
base: quay.io/pypa/manylinux_2_28_${ARCH_ALIAS}:2025.10.09-1
|
|
vcpkg: ${VCPKG}
|
|
context: .
|
|
dockerfile: ci/docker/cpp-jni.dockerfile
|
|
cache_from:
|
|
- ${REPO}:${ARCH_SHORT}-cpp-jni-${VCPKG}
|
|
secrets: *vcpkg-build-secrets
|
|
environment:
|
|
<<: [*common, *ccache, *sccache]
|
|
volumes:
|
|
- .:/arrow:delegated
|
|
- ${DOCKER_VOLUME_PREFIX}cpp-jni-ccache:/ccache:delegated
|
|
command: *cpp-command
|
|
|
|
############################### C GLib ######################################
|
|
|
|
debian-c-glib:
|
|
# Usage:
|
|
# docker compose build debian-cpp
|
|
# docker compose build debian-c-glib
|
|
# docker compose run --rm debian-c-glib
|
|
# Parameters:
|
|
# ARCH: amd64, arm64/v8, ...
|
|
# DEBIAN: 12
|
|
image: ${REPO}:${ARCH_SHORT}-debian-${DEBIAN}-c-glib
|
|
build:
|
|
context: .
|
|
dockerfile: ci/docker/linux-apt-c-glib.dockerfile
|
|
cache_from:
|
|
- ${REPO}:${ARCH_SHORT}-debian-${DEBIAN}-c-glib
|
|
args:
|
|
arch: ${ARCH}
|
|
base: ${REPO}:${ARCH_SHORT}-debian-${DEBIAN}-cpp
|
|
shm_size: *shm-size
|
|
ulimits: *ulimits
|
|
environment:
|
|
<<: [*common, *ccache, *sccache]
|
|
BUILD_DOCS_C_GLIB: "ON"
|
|
volumes: *debian-volumes
|
|
command: &c-glib-command >
|
|
/bin/bash -c "
|
|
/arrow/ci/scripts/cpp_build.sh /arrow /build &&
|
|
/arrow/ci/scripts/c_glib_build.sh /arrow /build &&
|
|
/arrow/ci/scripts/c_glib_test.sh /arrow /build"
|
|
|
|
ubuntu-c-glib:
|
|
# Usage:
|
|
# docker compose build ubuntu-cpp
|
|
# docker compose build ubuntu-c-glib
|
|
# docker compose run --rm ubuntu-c-glib
|
|
# Parameters:
|
|
# ARCH: amd64, arm64/v8, ...
|
|
# UBUNTU: 22.04, 24.04
|
|
image: ${REPO}:${ARCH_SHORT}-ubuntu-${UBUNTU}-c-glib
|
|
build:
|
|
context: .
|
|
dockerfile: ci/docker/linux-apt-c-glib.dockerfile
|
|
cache_from:
|
|
- ${REPO}:${ARCH_SHORT}-ubuntu-${UBUNTU}-c-glib
|
|
args:
|
|
arch: ${ARCH}
|
|
base: ${REPO}:${ARCH_SHORT}-ubuntu-${UBUNTU}-cpp
|
|
shm_size: *shm-size
|
|
ulimits: *ulimits
|
|
environment:
|
|
<<: [*common, *ccache, *sccache]
|
|
volumes: *ubuntu-volumes
|
|
command: *c-glib-command
|
|
|
|
############################### Ruby ########################################
|
|
# Until Ruby is the only dependent implementation on top of C Glib we can
|
|
# test C Glib and Ruby in one pass. This is an optimization to avoid
|
|
# redundant (one for C GLib and one for Ruby doing the same work twice)
|
|
# builds on CI services.
|
|
|
|
debian-ruby:
|
|
# Usage:
|
|
# docker compose build debian-cpp
|
|
# docker compose build debian-c-glib
|
|
# docker compose build debian-ruby
|
|
# docker compose run --rm debian-ruby
|
|
# Parameters:
|
|
# ARCH: amd64, arm64/v8, ...
|
|
# DEBIAN: 12
|
|
image: ${REPO}:${ARCH_SHORT}-debian-${DEBIAN}-ruby
|
|
build:
|
|
context: .
|
|
dockerfile: ci/docker/linux-apt-ruby.dockerfile
|
|
cache_from:
|
|
- ${REPO}:${ARCH_SHORT}-debian-${DEBIAN}-ruby
|
|
args:
|
|
arch: ${ARCH}
|
|
base: ${REPO}:${ARCH_SHORT}-debian-${DEBIAN}-c-glib
|
|
shm_size: *shm-size
|
|
ulimits: *ulimits
|
|
environment:
|
|
<<: [*common, *ccache, *sccache]
|
|
BUILD_DOCS_C_GLIB: "ON"
|
|
volumes: *debian-volumes
|
|
command: &ruby-command >
|
|
/bin/bash -c "
|
|
/arrow/ci/scripts/cpp_build.sh /arrow /build &&
|
|
/arrow/ci/scripts/c_glib_build.sh /arrow /build &&
|
|
/arrow/ci/scripts/c_glib_test.sh /arrow /build &&
|
|
/arrow/ci/scripts/ruby_test.sh /arrow /build &&
|
|
/arrow/ci/scripts/ccache_fix_perms.sh"
|
|
|
|
ubuntu-ruby:
|
|
# Usage:
|
|
# docker compose build ubuntu-cpp
|
|
# docker compose build ubuntu-c-glib
|
|
# docker compose build ubuntu-ruby
|
|
# docker compose run --rm ubuntu-ruby
|
|
# Parameters:
|
|
# ARCH: amd64, arm64/v8, ...
|
|
# UBUNTU: 22.04, 24.04
|
|
image: ${REPO}:${ARCH_SHORT}-ubuntu-${UBUNTU}-ruby
|
|
build:
|
|
context: .
|
|
dockerfile: ci/docker/linux-apt-ruby.dockerfile
|
|
cache_from:
|
|
- ${REPO}:${ARCH_SHORT}-ubuntu-${UBUNTU}-ruby
|
|
args:
|
|
arch: ${ARCH}
|
|
base: ${REPO}:${ARCH_SHORT}-ubuntu-${UBUNTU}-c-glib
|
|
shm_size: *shm-size
|
|
ulimits: *ulimits
|
|
environment:
|
|
<<: [*common, *ccache, *sccache]
|
|
volumes: *ubuntu-volumes
|
|
command: *ruby-command
|
|
|
|
############################### Python ######################################
|
|
|
|
conda-python:
|
|
# Usage:
|
|
# docker compose build conda
|
|
# docker compose build conda-cpp
|
|
# docker compose build conda-python
|
|
# docker compose run --rm conda-python
|
|
# Parameters:
|
|
# ARCH: amd64, arm/v7
|
|
# PYTHON: 3.11, 3.12, 3.13, 3.14
|
|
image: ${REPO}:${ARCH_SHORT}-conda-python-${PYTHON}
|
|
build:
|
|
context: .
|
|
dockerfile: ci/docker/conda-python.dockerfile
|
|
cache_from:
|
|
- ${REPO}:${ARCH_SHORT}-conda-python-${PYTHON}
|
|
args:
|
|
repo: ${REPO}
|
|
arch: ${ARCH}
|
|
arch_short: ${ARCH_SHORT}
|
|
python: ${PYTHON}
|
|
shm_size: *shm-size
|
|
environment:
|
|
<<: [*common, *ccache, *sccache]
|
|
PYTEST_ARGS: # inherit
|
|
volumes: *conda-volumes
|
|
command: &python-conda-command
|
|
["
|
|
/arrow/ci/scripts/cpp_build.sh /arrow /build &&
|
|
/arrow/ci/scripts/python_build.sh /arrow /build &&
|
|
/arrow/ci/scripts/python_test.sh /arrow"]
|
|
|
|
conda-python-emscripten:
|
|
# Usage:
|
|
# docker compose build conda-python-emscripten
|
|
# docker compose run --rm conda-python-emscripten
|
|
# Parameters:
|
|
# ARCH: amd64, arm64/v8, ...
|
|
# UBUNTU: 22.04
|
|
image: ${REPO}:${ARCH_SHORT}-conda-python-emscripten
|
|
build:
|
|
context: .
|
|
dockerfile: ci/docker/conda-python-emscripten.dockerfile
|
|
cache_from:
|
|
- ${REPO}:${ARCH_SHORT}-conda-python-${PYTHON}
|
|
args:
|
|
repo: ${REPO}
|
|
arch: ${ARCH}
|
|
arch_short: ${ARCH_SHORT}
|
|
clang_tools: ${CLANG_TOOLS}
|
|
llvm: ${LLVM}
|
|
pyodide_version: "0.27.1"
|
|
chrome_version: "latest"
|
|
selenium_version: "4.41.0"
|
|
required_python_min: "(3,12)"
|
|
python: ${PYTHON}
|
|
shm_size: *shm-size
|
|
volumes: *ubuntu-volumes
|
|
environment:
|
|
<<: [*common, *ccache, *sccache, *cpp]
|
|
command: ["
|
|
/arrow/ci/scripts/cpp_build.sh /arrow /build &&
|
|
/arrow/ci/scripts/python_build_emscripten.sh /arrow /build &&
|
|
/arrow/ci/scripts/python_test_emscripten.sh /build /pyodide"]
|
|
|
|
ubuntu-cuda-python:
|
|
# Usage:
|
|
# docker compose build ubuntu-cuda-cpp
|
|
# docker compose build ubuntu-cuda-python
|
|
# docker compose run --rm ubuntu-cuda-python
|
|
# Parameters:
|
|
# ARCH: amd64
|
|
# CUDA: <depends on your nvidia driver, should match system CUDA>
|
|
# UBUNTU: 22.04, 24.04
|
|
# NUMBA: master, latest, <version>
|
|
# NUMBA_CUDA: master, latest, <version>
|
|
image: ${REPO}:${ARCH_SHORT}-ubuntu-${UBUNTU}-cuda-${CUDA}-python-3
|
|
build:
|
|
context: .
|
|
dockerfile: ci/docker/linux-apt-python-3.dockerfile
|
|
cache_from:
|
|
- ${REPO}:${ARCH_SHORT}-ubuntu-${UBUNTU}-cuda-${CUDA}-python-3
|
|
args:
|
|
arch: ${ARCH}
|
|
base: ${REPO}:${ARCH_SHORT}-ubuntu-${UBUNTU}-cuda-${CUDA}-cpp
|
|
numba: ${NUMBA}
|
|
numba_cuda: ${NUMBA_CUDA}
|
|
cuda: ${CUDA}
|
|
shm_size: *shm-size
|
|
environment:
|
|
<<: [*common, *ccache, *sccache]
|
|
ARROW_BUILD_UTILITIES: "OFF"
|
|
ARROW_ACERO: "OFF"
|
|
ARROW_AZURE: "OFF"
|
|
ARROW_CUDA: "ON"
|
|
ARROW_DATASET: "OFF"
|
|
ARROW_ENABLE_TIMING_TESTS: "OFF"
|
|
ARROW_FILESYSTEM: "OFF"
|
|
ARROW_FLIGHT: "OFF"
|
|
ARROW_FLIGHT_SQL: "OFF"
|
|
ARROW_GANDIVA: "OFF"
|
|
ARROW_GCS: "OFF"
|
|
ARROW_HDFS: "OFF"
|
|
ARROW_JEMALLOC: "OFF"
|
|
ARROW_ORC: "OFF"
|
|
ARROW_PARQUET: "OFF"
|
|
ARROW_S3: "OFF"
|
|
ARROW_SUBSTRAIT: "OFF"
|
|
ARROW_WITH_OPENTELEMETRY: "OFF"
|
|
SETUPTOOLS_SCM_PRETEND_VERSION:
|
|
volumes: *ubuntu-volumes
|
|
deploy: *cuda-deploy
|
|
command: &python-command >
|
|
/bin/bash -c "
|
|
/arrow/ci/scripts/cpp_build.sh /arrow /build &&
|
|
/arrow/ci/scripts/python_build.sh /arrow /build &&
|
|
/arrow/ci/scripts/python_test.sh /arrow"
|
|
|
|
debian-python:
|
|
# Usage:
|
|
# docker compose build debian-cpp
|
|
# docker compose build debian-python
|
|
# docker compose run --rm debian-python
|
|
# Parameters:
|
|
# ARCH: amd64, arm64/v8, ...
|
|
# DEBIAN: 12
|
|
image: ${REPO}:${ARCH_SHORT}-debian-${DEBIAN}-python-3
|
|
build:
|
|
context: .
|
|
dockerfile: ci/docker/linux-apt-python-3.dockerfile
|
|
cache_from:
|
|
- ${REPO}:${ARCH_SHORT}-debian-${DEBIAN}-python-3
|
|
args:
|
|
arch: ${ARCH}
|
|
base: ${REPO}:${ARCH_SHORT}-debian-${DEBIAN}-cpp
|
|
shm_size: *shm-size
|
|
environment:
|
|
<<: [*common, *ccache, *sccache]
|
|
volumes: *debian-volumes
|
|
command: *python-command
|
|
|
|
ubuntu-python:
|
|
# Usage:
|
|
# docker compose build ubuntu-cpp
|
|
# docker compose build ubuntu-python
|
|
# docker compose run --rm ubuntu-python
|
|
# Parameters:
|
|
# ARCH: amd64, arm64/v8, ...
|
|
# UBUNTU: 22.04, 24.04
|
|
image: ${REPO}:${ARCH_SHORT}-ubuntu-${UBUNTU}-python-3
|
|
build:
|
|
context: .
|
|
dockerfile: ci/docker/linux-apt-python-3.dockerfile
|
|
cache_from:
|
|
- ${REPO}:${ARCH_SHORT}-ubuntu-${UBUNTU}-python-3
|
|
args:
|
|
arch: ${ARCH}
|
|
base: ${REPO}:${ARCH_SHORT}-ubuntu-${UBUNTU}-cpp
|
|
shm_size: *shm-size
|
|
environment:
|
|
<<: [*common, *ccache, *sccache]
|
|
volumes: *ubuntu-volumes
|
|
command: *python-command
|
|
|
|
fedora-python:
|
|
# Usage:
|
|
# docker compose build fedora-cpp
|
|
# docker compose build fedora-python
|
|
# docker compose run --rm fedora-python
|
|
# Parameters:
|
|
# ARCH: amd64, arm64/v8, ...
|
|
# FEDORA: 42
|
|
image: ${REPO}:${ARCH_SHORT}-fedora-${FEDORA}-python-3
|
|
build:
|
|
context: .
|
|
dockerfile: ci/docker/linux-dnf-python-3.dockerfile
|
|
cache_from:
|
|
- ${REPO}:${ARCH_SHORT}-fedora-${FEDORA}-python-3
|
|
args:
|
|
arch: ${ARCH}
|
|
base: ${REPO}:${ARCH_SHORT}-fedora-${FEDORA}-cpp
|
|
shm_size: *shm-size
|
|
environment:
|
|
<<: [*common, *ccache, *sccache]
|
|
volumes: *fedora-volumes
|
|
command: *python-command
|
|
|
|
############################ Python sdist ###################################
|
|
|
|
python-sdist:
|
|
# Usage:
|
|
# docker compose build python-sdist
|
|
# docker compose run --rm python-sdist
|
|
# Parameters:
|
|
# PYARROW_VERSION: The pyarrow version for sdist such as "3.0.0"
|
|
image: ${REPO}:python-sdist
|
|
build:
|
|
context: .
|
|
dockerfile: ci/docker/python-sdist.dockerfile
|
|
cache_from:
|
|
- ${REPO}:python-sdist
|
|
environment:
|
|
PYARROW_VERSION: ${PYARROW_VERSION:-}
|
|
volumes:
|
|
- .:/arrow:delegated
|
|
command: /arrow/ci/scripts/python_sdist_build.sh /arrow
|
|
|
|
ubuntu-python-sdist-test:
|
|
# Usage:
|
|
# docker compose build ubuntu-cpp
|
|
# docker compose build ubuntu-python-sdist-test
|
|
# docker compose run --rm ubuntu-python-sdist-test
|
|
# Parameters:
|
|
# ARCH: amd64, arm64/v8, ...
|
|
# PYARROW_VERSION: The test target pyarrow version such as "3.0.0"
|
|
# UBUNTU: 22.04, 24.04
|
|
image: ${REPO}:${ARCH_SHORT}-ubuntu-${UBUNTU}-python-3
|
|
build:
|
|
context: .
|
|
dockerfile: ci/docker/linux-apt-python-3.dockerfile
|
|
cache_from:
|
|
- ${REPO}:${ARCH_SHORT}-ubuntu-${UBUNTU}-python-3
|
|
args:
|
|
arch: ${ARCH}
|
|
base: ${REPO}:${ARCH_SHORT}-ubuntu-${UBUNTU}-cpp
|
|
shm_size: *shm-size
|
|
environment:
|
|
<<: [*common, *ccache, *sccache]
|
|
# Bundled build of OpenTelemetry needs a git client
|
|
ARROW_WITH_OPENTELEMETRY: "OFF"
|
|
PYARROW_VERSION: ${PYARROW_VERSION:-}
|
|
volumes: *ubuntu-volumes
|
|
command: >
|
|
/bin/bash -c "
|
|
apt remove -y git &&
|
|
/arrow/ci/scripts/cpp_build.sh /arrow /build &&
|
|
/arrow/ci/scripts/python_sdist_test.sh /arrow"
|
|
|
|
############################ Python wheels ##################################
|
|
|
|
# See available versions at:
|
|
# https://quay.io/repository/pypa/manylinux_2_28_x86_64?tab=tags
|
|
python-wheel-manylinux-2-28:
|
|
image: ${REPO}:${ARCH_SHORT}-python-${PYTHON}-wheel-manylinux-2-28-vcpkg-${VCPKG}
|
|
build:
|
|
args:
|
|
arch: ${ARCH}
|
|
arch_short: ${ARCH_SHORT}
|
|
base: quay.io/pypa/manylinux_2_28_${ARCH_ALIAS}:2026.10.10-1
|
|
manylinux: 2_28
|
|
python: ${PYTHON}
|
|
python_abi_tag: ${PYTHON_ABI_TAG}
|
|
vcpkg: ${VCPKG}
|
|
context: .
|
|
dockerfile: ci/docker/python-wheel-manylinux.dockerfile
|
|
cache_from:
|
|
- ${REPO}:${ARCH_SHORT}-python-${PYTHON}-wheel-manylinux-2-28-vcpkg-${VCPKG}
|
|
secrets: *vcpkg-build-secrets
|
|
environment:
|
|
<<: [*common, *ccache, *sccache]
|
|
volumes:
|
|
- .:/arrow:delegated
|
|
- ${DOCKER_VOLUME_PREFIX}python-wheel-manylinux-2-28-ccache:/ccache:delegated
|
|
command: /arrow/ci/scripts/python_wheel_xlinux_build.sh
|
|
|
|
# See available versions at:
|
|
# https://quay.io/repository/pypa/musllinux_1_2_x86_64?tab=tags
|
|
python-wheel-musllinux-1-2:
|
|
image: ${REPO}:${ARCH_SHORT}-python-${PYTHON}-wheel-musllinux-1-2-vcpkg-${VCPKG}
|
|
build:
|
|
args:
|
|
arch: ${ARCH}
|
|
arch_short: ${ARCH_SHORT}
|
|
base: quay.io/pypa/musllinux_1_2_${ARCH_ALIAS}:2026.10.10-1
|
|
musllinux: 1_2
|
|
python: ${PYTHON}
|
|
python_abi_tag: ${PYTHON_ABI_TAG}
|
|
vcpkg: ${VCPKG}
|
|
context: .
|
|
dockerfile: ci/docker/python-wheel-musllinux.dockerfile
|
|
cache_from:
|
|
- ${REPO}:${ARCH_SHORT}-python-${PYTHON}-wheel-musllinux-1-2-vcpkg-${VCPKG}
|
|
secrets: *vcpkg-build-secrets
|
|
environment:
|
|
<<: [*common, *ccache, *sccache]
|
|
volumes:
|
|
- .:/arrow:delegated
|
|
- ${DOCKER_VOLUME_PREFIX}python-wheel-musllinux-1-2-ccache:/ccache:delegated
|
|
command: /arrow/ci/scripts/python_wheel_xlinux_build.sh
|
|
|
|
python-wheel-musllinux-test-imports:
|
|
image: python:${PYTHON_IMAGE_TAG}-alpine${ALPINE_LINUX}
|
|
shm_size: 2G
|
|
volumes:
|
|
- .:/arrow:delegated
|
|
environment:
|
|
<<: *common
|
|
CHECK_IMPORTS: "ON"
|
|
CHECK_UNITTESTS: "OFF"
|
|
CHECK_WHEEL_CONTENT: "ON"
|
|
command: >
|
|
/bin/sh -c "
|
|
apk update &&
|
|
apk add --no-cache bash &&
|
|
/arrow/ci/scripts/python_wheel_unix_test.sh /arrow"
|
|
|
|
# TODO: Remove this when the official Docker Python image supports the free-threaded build.
|
|
# See https://github.com/docker-library/python/issues/947 for more info.
|
|
python-free-threaded-wheel-musllinux-test-imports:
|
|
image: ${REPO}:${ARCH_SHORT}-python-${PYTHON_IMAGE_TAG}-free-threaded-wheel-musllinux-test-imports
|
|
build:
|
|
args:
|
|
base: "alpine:${ALPINE_LINUX}"
|
|
python_version: ${PYTHON}
|
|
build_date: "20261009" # python-build-standalone release date
|
|
arch: ${ARCH_ALIAS}
|
|
context: .
|
|
dockerfile: ci/docker/python-free-threaded-wheel-musllinux-test-imports.dockerfile
|
|
cache_from:
|
|
- ${REPO}:${ARCH_SHORT}-python-${PYTHON_IMAGE_TAG}-free-threaded-wheel-musllinux-test-imports
|
|
shm_size: 2G
|
|
volumes:
|
|
- .:/arrow:delegated
|
|
environment:
|
|
<<: *common
|
|
CHECK_IMPORTS: "ON"
|
|
CHECK_UNITTESTS: "OFF"
|
|
PYTHON: ${PYTHON}
|
|
command: /arrow/ci/scripts/python_wheel_unix_test.sh /arrow
|
|
|
|
python-wheel-musllinux-test-unittests:
|
|
image: ${REPO}:${ARCH_SHORT}-python-${PYTHON}-wheel-musllinux-test
|
|
build:
|
|
args:
|
|
alpine_linux: ${ALPINE_LINUX}
|
|
python_image_tag: ${PYTHON_IMAGE_TAG}
|
|
context: .
|
|
dockerfile: ci/docker/python-wheel-musllinux-test.dockerfile
|
|
cache_from:
|
|
- ${REPO}:${ARCH_SHORT}-python-${PYTHON}-wheel-musllinux-test
|
|
shm_size: 2G
|
|
volumes:
|
|
- .:/arrow:delegated
|
|
environment:
|
|
<<: *common
|
|
CHECK_IMPORTS: "OFF"
|
|
CHECK_UNITTESTS: "ON"
|
|
CHECK_WHEEL_CONTENT: "OFF"
|
|
command: /arrow/ci/scripts/python_wheel_unix_test.sh /arrow
|
|
|
|
# TODO: Remove this when the official Docker Python image supports the free-threaded build.
|
|
# See https://github.com/docker-library/python/issues/947 for more info.
|
|
python-free-threaded-wheel-musllinux-test-unittests:
|
|
image: ${REPO}:${ARCH_SHORT}-python-${PYTHON_IMAGE_TAG}-free-threaded-wheel-musllinux-test-unittests
|
|
build:
|
|
args:
|
|
base: "alpine:${ALPINE_LINUX}"
|
|
python_version: ${PYTHON}
|
|
build_date: "20261009" # python-build-standalone release date
|
|
arch: ${ARCH_ALIAS}
|
|
context: .
|
|
dockerfile: ci/docker/python-free-threaded-wheel-musllinux-test-unittests.dockerfile
|
|
cache_from:
|
|
- ${REPO}:${ARCH_SHORT}-python-${PYTHON_IMAGE_TAG}-free-threaded-wheel-musllinux-test-unittests
|
|
shm_size: 2G
|
|
volumes:
|
|
- .:/arrow:delegated
|
|
environment:
|
|
<<: *common
|
|
CHECK_IMPORTS: "OFF"
|
|
CHECK_UNITTESTS: "ON"
|
|
PYTHON: ${PYTHON}
|
|
command: /arrow/ci/scripts/python_wheel_unix_test.sh /arrow
|
|
|
|
python-wheel-manylinux-test-imports:
|
|
image: python:${PYTHON_IMAGE_TAG}
|
|
platform: linux/${ARCH}
|
|
shm_size: 2G
|
|
volumes:
|
|
- .:/arrow:delegated
|
|
environment:
|
|
<<: *common
|
|
CHECK_IMPORTS: "ON"
|
|
CHECK_UNITTESTS: "OFF"
|
|
CHECK_WHEEL_CONTENT: "ON"
|
|
command: /arrow/ci/scripts/python_wheel_unix_test.sh /arrow
|
|
|
|
# TODO: Remove this when the official Docker Python image supports the free-threaded build.
|
|
# See https://github.com/docker-library/python/issues/947 for more info.
|
|
python-free-threaded-wheel-manylinux-test-imports:
|
|
image: ${REPO}:${ARCH_SHORT}-python-${PYTHON_IMAGE_TAG}-free-threaded-wheel-manylinux-test-imports
|
|
build:
|
|
args:
|
|
base: "ubuntu:${UBUNTU}"
|
|
python_version: ${PYTHON}
|
|
context: .
|
|
dockerfile: ci/docker/python-free-threaded-wheel-manylinux-test-imports.dockerfile
|
|
cache_from:
|
|
- ${REPO}:${ARCH_SHORT}-python-${PYTHON_IMAGE_TAG}-free-threaded-wheel-manylinux-test-imports
|
|
shm_size: 2G
|
|
volumes:
|
|
- .:/arrow:delegated
|
|
environment:
|
|
<<: *common
|
|
CHECK_IMPORTS: "ON"
|
|
CHECK_UNITTESTS: "OFF"
|
|
PYTHON: ${PYTHON}
|
|
command: /arrow/ci/scripts/python_wheel_unix_test.sh /arrow
|
|
|
|
python-wheel-manylinux-test-unittests:
|
|
image: ${REPO}:${ARCH_SHORT}-python-${PYTHON}-wheel-manylinux-test
|
|
build:
|
|
args:
|
|
arch: ${ARCH}
|
|
python: ${PYTHON}
|
|
python_image_tag: ${PYTHON_IMAGE_TAG}
|
|
context: .
|
|
dockerfile: ci/docker/python-wheel-manylinux-test.dockerfile
|
|
cache_from:
|
|
- ${REPO}:${ARCH_SHORT}-python-${PYTHON}-wheel-manylinux-test
|
|
shm_size: 2G
|
|
volumes:
|
|
- .:/arrow:delegated
|
|
environment:
|
|
<<: *common
|
|
CHECK_IMPORTS: "OFF"
|
|
CHECK_UNITTESTS: "ON"
|
|
CHECK_WHEEL_CONTENT: "OFF"
|
|
command: /arrow/ci/scripts/python_wheel_unix_test.sh /arrow
|
|
|
|
# TODO: Remove this when the official Docker Python image supports the free-threaded build.
|
|
# See https://github.com/docker-library/python/issues/947 for more info.
|
|
python-free-threaded-wheel-manylinux-test-unittests:
|
|
image: ${REPO}:${ARCH_SHORT}-python-${PYTHON_IMAGE_TAG}-free-threaded-wheel-manylinux-test-unittests
|
|
build:
|
|
args:
|
|
base: "ubuntu:${UBUNTU}"
|
|
python_version: ${PYTHON}
|
|
context: .
|
|
dockerfile: ci/docker/python-free-threaded-wheel-manylinux-test-unittests.dockerfile
|
|
cache_from:
|
|
- ${REPO}:${ARCH_SHORT}-python-${PYTHON_IMAGE_TAG}-free-threaded-wheel-manylinux-test-unittests
|
|
shm_size: 2G
|
|
volumes:
|
|
- .:/arrow:delegated
|
|
environment:
|
|
<<: *common
|
|
CHECK_IMPORTS: "OFF"
|
|
CHECK_UNITTESTS: "ON"
|
|
PYTHON: ${PYTHON}
|
|
command: /arrow/ci/scripts/python_wheel_unix_test.sh /arrow
|
|
|
|
python-wheel-windows-vs2022-base:
|
|
image: ${REPO}:python-wheel-windows-vs2022-base-vcpkg-${VCPKG}-${PYTHON_WHEEL_WINDOWS_IMAGE_REVISION}
|
|
build:
|
|
args:
|
|
vcpkg: ${VCPKG}
|
|
context: .
|
|
dockerfile: ci/docker/python-wheel-windows-vs2022-base.dockerfile
|
|
# This should make the pushed images reusable, but the image gets rebuilt.
|
|
# Uncomment if no local cache is available.
|
|
# cache_from:
|
|
# - mcr.microsoft.com/windows/servercore:ltsc2022
|
|
# - ${REPO}:python-wheel-windows-vs2022-base-vcpkg-${VCPKG}-${PYTHON_WHEEL_WINDOWS_IMAGE_REVISION}
|
|
volumes: &python-wheel-windows-vs2022-volumes
|
|
- type: bind
|
|
source: .
|
|
target: "C:/arrow"
|
|
|
|
python-wheel-windows-vs2022:
|
|
image: ${REPO}:python-${PYTHON}-wheel-windows-vs2022-vcpkg-${VCPKG}-${PYTHON_WHEEL_WINDOWS_IMAGE_REVISION}
|
|
build:
|
|
args:
|
|
base: ${REPO}:python-wheel-windows-vs2022-base-vcpkg-${VCPKG}-${PYTHON_WHEEL_WINDOWS_IMAGE_REVISION}
|
|
python: ${PYTHON}
|
|
context: .
|
|
dockerfile: ci/docker/python-wheel-windows-vs2022.dockerfile
|
|
# This should make the pushed images reusable, but the image gets rebuilt.
|
|
# Uncomment if no local cache is available.
|
|
# cache_from:
|
|
# - mcr.microsoft.com/windows/servercore:ltsc2022
|
|
# - ${REPO}:python-${PYTHON}-wheel-windows-vs2022-vcpkg-${VCPKG}-${PYTHON_WHEEL_WINDOWS_IMAGE_REVISION}
|
|
volumes: *python-wheel-windows-vs2022-volumes
|
|
command: arrow\\ci\\scripts\\python_wheel_windows_build.bat
|
|
|
|
python-free-threaded-wheel-windows-vs2022:
|
|
image: ${REPO}:python-${PYTHON}-free-threaded-wheel-windows-vs2022-vcpkg-${VCPKG}-${PYTHON_WHEEL_WINDOWS_IMAGE_REVISION}
|
|
build:
|
|
args:
|
|
base: ${REPO}:python-wheel-windows-vs2022-base-vcpkg-${VCPKG}-${PYTHON_WHEEL_WINDOWS_IMAGE_REVISION}
|
|
python: ${PYTHON}
|
|
python_variant_suffix: t
|
|
context: .
|
|
dockerfile: ci/docker/python-wheel-windows-vs2022.dockerfile
|
|
# This should make the pushed images reusable, but the image gets rebuilt.
|
|
# Uncomment if no local cache is available.
|
|
# cache_from:
|
|
# - mcr.microsoft.com/windows/servercore:ltsc2022
|
|
# - ${REPO}:python-${PYTHON}-free-threaded-wheel-windows-vs2022-vcpkg-${VCPKG}-${PYTHON_WHEEL_WINDOWS_IMAGE_REVISION}
|
|
volumes: *python-wheel-windows-vs2022-volumes
|
|
command: arrow\\ci\\scripts\\python_wheel_windows_build.bat
|
|
|
|
python-wheel-windows-test-base:
|
|
image: ${REPO}:python-wheel-windows-test-vs2022-base-${PYTHON_WHEEL_WINDOWS_TEST_IMAGE_REVISION}
|
|
build:
|
|
context: .
|
|
dockerfile: ci/docker/python-wheel-windows-test-vs2022-base.dockerfile
|
|
volumes: *python-wheel-windows-vs2022-volumes
|
|
|
|
python-wheel-windows-test:
|
|
image: ${REPO}:python-${PYTHON}-wheel-windows-test-vs2022-${PYTHON_WHEEL_WINDOWS_TEST_IMAGE_REVISION}
|
|
build:
|
|
args:
|
|
base: ${REPO}:python-wheel-windows-test-vs2022-base-${PYTHON_WHEEL_WINDOWS_TEST_IMAGE_REVISION}
|
|
python: ${PYTHON}
|
|
context: .
|
|
dockerfile: ci/docker/python-wheel-windows-test-vs2022.dockerfile
|
|
volumes: *python-wheel-windows-vs2022-volumes
|
|
command: arrow\\ci\\scripts\\python_wheel_windows_test.bat
|
|
|
|
python-free-threaded-wheel-windows-test:
|
|
image: ${REPO}:python-${PYTHON}-free-threaded-wheel-windows-test-vs2022-${PYTHON_WHEEL_WINDOWS_TEST_IMAGE_REVISION}
|
|
build:
|
|
args:
|
|
base: ${REPO}:python-wheel-windows-test-vs2022-base-${PYTHON_WHEEL_WINDOWS_TEST_IMAGE_REVISION}
|
|
python: ${PYTHON}
|
|
context: .
|
|
dockerfile: ci/docker/python-free-threaded-wheel-windows-test-vs2022.dockerfile
|
|
volumes: *python-wheel-windows-vs2022-volumes
|
|
command: arrow\\ci\\scripts\\python_wheel_windows_test.bat
|
|
|
|
############################## Integration #################################
|
|
|
|
conda-python-pandas:
|
|
# Possible $PANDAS parameters:
|
|
# - `latest`: latest release
|
|
# - `master`: git master branch, use `docker compose run --no-cache`
|
|
# - `<version>`: specific version available on conda-forge
|
|
# Usage:
|
|
# docker compose build conda
|
|
# docker compose build conda-cpp
|
|
# docker compose build conda-python
|
|
# docker compose build conda-python-pandas
|
|
# docker compose run --rm conda-python-pandas
|
|
image: ${REPO}:${ARCH_SHORT}-conda-python-${PYTHON}-pandas-${PANDAS}
|
|
build:
|
|
context: .
|
|
dockerfile: ci/docker/conda-python-pandas.dockerfile
|
|
cache_from:
|
|
- ${REPO}:${ARCH_SHORT}-conda-python-${PYTHON}-pandas-${PANDAS}
|
|
args:
|
|
repo: ${REPO}
|
|
arch: ${ARCH}
|
|
arch_short: ${ARCH_SHORT}
|
|
python: ${PYTHON}
|
|
numpy: ${NUMPY}
|
|
pandas: ${PANDAS}
|
|
shm_size: *shm-size
|
|
environment:
|
|
<<: [*common, *ccache, *sccache]
|
|
PARQUET_REQUIRE_ENCRYPTION: # inherit
|
|
PYTEST_ARGS: # inherit
|
|
HYPOTHESIS_PROFILE: # inherit
|
|
PYARROW_TEST_HYPOTHESIS: # inherit
|
|
PANDAS_FUTURE_INFER_STRING: # inherit
|
|
volumes: *conda-volumes
|
|
command: *python-conda-command
|
|
|
|
conda-python-no-numpy:
|
|
# Usage:
|
|
# docker compose build conda
|
|
# docker compose build conda-cpp
|
|
# docker compose build conda-python
|
|
# docker compose build conda-python-no-numpy
|
|
# docker compose run --rm conda-python-no-numpy
|
|
image: ${REPO}:${ARCH_SHORT}-conda-python-${PYTHON}-no-numpy
|
|
build:
|
|
context: .
|
|
dockerfile: ci/docker/conda-python.dockerfile
|
|
cache_from:
|
|
- ${REPO}:${ARCH_SHORT}-conda-python-${PYTHON}
|
|
args:
|
|
repo: ${REPO}
|
|
arch: ${ARCH}
|
|
arch_short: ${ARCH_SHORT}
|
|
python: ${PYTHON}
|
|
shm_size: *shm-size
|
|
environment:
|
|
<<: [*common, *ccache, *sccache]
|
|
PARQUET_REQUIRE_ENCRYPTION: # inherit
|
|
HYPOTHESIS_PROFILE: # inherit
|
|
PYARROW_TEST_HYPOTHESIS: # inherit
|
|
volumes: *conda-volumes
|
|
command:
|
|
["
|
|
/arrow/ci/scripts/cpp_build.sh /arrow /build &&
|
|
/arrow/ci/scripts/python_build.sh /arrow /build &&
|
|
mamba uninstall -y numpy &&
|
|
/arrow/ci/scripts/python_test.sh /arrow"]
|
|
|
|
conda-python-docs:
|
|
# Usage:
|
|
# archery docker run conda-python-docs
|
|
#
|
|
# Only a single rule is enabled for now to check undocumented arguments.
|
|
# We should extend the list of enabled rules after adding this build to
|
|
# the CI pipeline.
|
|
image: ${REPO}:${ARCH_SHORT}-conda-python-${PYTHON}-pandas-${PANDAS}
|
|
cap_add:
|
|
- SYS_ADMIN
|
|
environment:
|
|
<<: [*common, *ccache, *sccache]
|
|
ARROW_SUBSTRAIT: "ON"
|
|
LC_ALL: "C.UTF-8"
|
|
LANG: "C.UTF-8"
|
|
BUILD_DOCS_CPP: "ON"
|
|
BUILD_DOCS_PYTHON: "ON"
|
|
PYTEST_ARGS: "--doctest-modules --doctest-cython"
|
|
PYTEST_RST_ARGS: "--doctest-glob=*.rst"
|
|
volumes: *conda-volumes
|
|
command:
|
|
["/arrow/ci/scripts/cpp_build.sh /arrow /build &&
|
|
/arrow/ci/scripts/python_build.sh /arrow /build &&
|
|
pip install -e /arrow/dev/archery[numpydoc] &&
|
|
archery numpydoc --allow-rule GL10,PR01,PR03,PR04,PR05,PR10,RT03,YD01 &&
|
|
/arrow/ci/scripts/python_test.sh /arrow &&
|
|
/arrow/ci/scripts/python_test_type_annotations.sh /arrow/python"]
|
|
|
|
conda-python-dask:
|
|
# Possible $DASK parameters:
|
|
# - `latest`: latest release
|
|
# - `master`: git master branch, use `docker compose run --no-cache`
|
|
# - `<version>`: specific version available on conda-forge
|
|
# Usage:
|
|
# docker compose build conda
|
|
# docker compose build conda-cpp
|
|
# docker compose build conda-python
|
|
# docker compose build conda-python-dask
|
|
# docker compose run --rm conda-python-dask
|
|
image: ${REPO}:${ARCH_SHORT}-conda-python-${PYTHON}-dask-${DASK}
|
|
build:
|
|
context: .
|
|
dockerfile: ci/docker/conda-python-dask.dockerfile
|
|
cache_from:
|
|
- ${REPO}:${ARCH_SHORT}-conda-python-${PYTHON}-dask-${DASK}
|
|
args:
|
|
repo: ${REPO}
|
|
arch: ${ARCH}
|
|
arch_short: ${ARCH_SHORT}
|
|
python: ${PYTHON}
|
|
dask: ${DASK}
|
|
shm_size: *shm-size
|
|
environment:
|
|
<<: [*common, *ccache, *sccache]
|
|
volumes: *conda-volumes
|
|
command:
|
|
["/arrow/ci/scripts/cpp_build.sh /arrow /build &&
|
|
/arrow/ci/scripts/python_build.sh /arrow /build &&
|
|
/arrow/ci/scripts/integration_dask.sh"]
|
|
|
|
conda-python-cpython-debug:
|
|
# Usage:
|
|
# docker compose build conda
|
|
# docker compose build conda-cpp
|
|
# docker compose build conda-python
|
|
# docker compose build conda-python-cpython-debug
|
|
# docker compose run --rm conda-python-cpython-debug
|
|
image: ${REPO}:${ARCH_SHORT}-conda-python-${PYTHON}-cpython-debug
|
|
build:
|
|
context: .
|
|
dockerfile: ci/docker/conda-python-cpython-debug.dockerfile
|
|
cache_from:
|
|
- ${REPO}:${ARCH_SHORT}-conda-python-${PYTHON}-cpython-debug
|
|
args:
|
|
repo: ${REPO}
|
|
arch: ${ARCH}
|
|
arch_short: ${ARCH_SHORT}
|
|
python: ${PYTHON}
|
|
shm_size: *shm-size
|
|
environment:
|
|
<<: [*common, *ccache, *sccache]
|
|
PYTEST_ARGS: # inherit
|
|
volumes: *conda-volumes
|
|
command: *python-conda-command
|
|
|
|
################################## R ########################################
|
|
|
|
ubuntu-r:
|
|
# Usage:
|
|
# docker compose build ubuntu-cpp
|
|
# docker compose build ubuntu-r
|
|
# docker compose run ubuntu-r
|
|
image: ${REPO}:${ARCH_SHORT}-ubuntu-${UBUNTU}-r-${R}
|
|
build:
|
|
context: .
|
|
dockerfile: ci/docker/linux-apt-r.dockerfile
|
|
cache_from:
|
|
- ${REPO}:${ARCH_SHORT}-ubuntu-${UBUNTU}-r-${R}
|
|
args:
|
|
arch: ${ARCH}
|
|
base: ${REPO}:${ARCH_SHORT}-ubuntu-${UBUNTU}-cpp
|
|
gcc: ${GCC}
|
|
r: ${R}
|
|
r_duckdb_dev: ${R_DUCKDB_DEV:-}
|
|
r_prune_deps: ${R_PRUNE_DEPS}
|
|
tz: ${TZ}
|
|
shm_size: *shm-size
|
|
environment:
|
|
<<: [*common, *ccache, *sccache]
|
|
ARROW_R_CXXFLAGS: '-Werror'
|
|
ARROW_FLIGHT: 'ON'
|
|
LIBARROW_BUILD: 'false'
|
|
NOT_CRAN: 'true'
|
|
ARROW_R_DEV: ${ARROW_R_DEV}
|
|
ARROW_SOURCE_HOME: '/arrow'
|
|
volumes: *ubuntu-volumes
|
|
command: >
|
|
/bin/bash -c "
|
|
/arrow/ci/scripts/cpp_build.sh /arrow /build &&
|
|
/arrow/ci/scripts/python_build.sh /arrow /build &&
|
|
/arrow/ci/scripts/r_test.sh /arrow"
|
|
|
|
ubuntu-r-only-r:
|
|
environment:
|
|
<<: *common
|
|
ARROW_DEPENDENCY_SOURCE: ''
|
|
ARROW_SOURCE_HOME: '/arrow'
|
|
FORCE_BUNDLED_BUILD: 'true'
|
|
LIBARROW_BINARY: 'false'
|
|
LIBARROW_BUILD: 'true'
|
|
extends: ubuntu-r
|
|
command: >
|
|
/bin/bash -c "
|
|
/arrow/ci/scripts/r_test.sh /arrow"
|
|
|
|
r:
|
|
# This lets you test building/installing the arrow R package
|
|
# (including building the C++ library) on any Docker image that contains R
|
|
#
|
|
# Usage:
|
|
# R_ORG=rhub R_IMAGE=ubuntu-release R_TAG=latest docker compose build r
|
|
# R_ORG=rhub R_IMAGE=ubuntu-release R_TAG=latest docker compose run r
|
|
image: ${REPO}:r-${R_ORG}-${R_IMAGE}-${R_TAG}
|
|
build:
|
|
context: .
|
|
dockerfile: ci/docker/linux-r.dockerfile
|
|
cache_from:
|
|
- ${REPO}:r-${R_ORG}-${R_IMAGE}-${R_TAG}
|
|
args:
|
|
base: ${R_ORG}/${R_IMAGE}:${R_TAG}
|
|
cmake: ${CMAKE}
|
|
r_dev: ${ARROW_R_DEV}
|
|
tz: ${TZ}
|
|
r_prune_deps: ${R_PRUNE_DEPS}
|
|
r_custom_ccache: ${R_CUSTOM_CCACHE}
|
|
r_update_clang: ${R_UPDATE_CLANG}
|
|
shm_size: *shm-size
|
|
environment:
|
|
<<: [*common, *sccache]
|
|
LIBARROW_BINARY: "false"
|
|
ARROW_SOURCE_HOME: "/arrow"
|
|
ARROW_R_DEV: ${ARROW_R_DEV}
|
|
# To test for CRAN release, delete ^^ these two env vars so we download the Apache release
|
|
ARROW_USE_PKG_CONFIG: "false"
|
|
volumes:
|
|
- .:/arrow:delegated
|
|
command: >
|
|
/bin/bash -c "/arrow/ci/scripts/r_test.sh /arrow"
|
|
|
|
r-san:
|
|
image: ${REPO}:r-${R_ORG}-${R_IMAGE}
|
|
build:
|
|
context: .
|
|
dockerfile: ci/docker/linux-r.dockerfile
|
|
cache_from:
|
|
- ${REPO}:r-${R_ORG}-${R_IMAGE}
|
|
args:
|
|
base: ${R_ORG}/${R_IMAGE}:${R_TAG}
|
|
cmake: ${CMAKE}
|
|
r_dev: ${ARROW_R_DEV}
|
|
r_bin: R
|
|
tz: ${TZ}
|
|
r_prune_deps: ${R_PRUNE_DEPS}
|
|
shm_size: *shm-size
|
|
# These environment variables are *not* set by CRAN, so we should be careful about adding
|
|
# to them. I.E. if we have to add something here to have CI pass, it will likely fail on CRAN.
|
|
environment:
|
|
<<: *common
|
|
LIBARROW_DOWNLOAD: "false"
|
|
ARROW_R_DEV: ${ARROW_R_DEV}
|
|
ARROW_SOURCE_HOME: "/arrow"
|
|
ARROW_USE_PKG_CONFIG: "false"
|
|
volumes:
|
|
- .:/arrow:delegated
|
|
command: >
|
|
/bin/bash -c "
|
|
/arrow/ci/scripts/r_sanitize.sh /arrow"
|
|
|
|
ubuntu-r-valgrind:
|
|
# Only amd64 supported
|
|
# Usage:
|
|
# docker compose build ubuntu-r-valgrind
|
|
# docker compose run ubuntu-r-valgrind
|
|
image: ${REPO}:amd64-ubuntu-r-valgrind
|
|
build:
|
|
context: .
|
|
dockerfile: ci/docker/linux-r.dockerfile
|
|
cache_from:
|
|
- ${REPO}:amd64-ubuntu-r-valgrind
|
|
args:
|
|
base: rhub/valgrind:latest
|
|
cmake: ${CMAKE}
|
|
r_bin: R
|
|
tz: ${TZ}
|
|
environment:
|
|
<<: [*common, *ccache, *sccache]
|
|
ARROW_R_DEV: ${ARROW_R_DEV}
|
|
# AVX512 not supported by Valgrind (similar to ARROW-9851) some runners support AVX512 and some do not
|
|
# so some build might pass without this setting, but we want to ensure that we stay to AVX2 regardless of runner.
|
|
EXTRA_CMAKE_FLAGS: "-DARROW_RUNTIME_SIMD_LEVEL=AVX2"
|
|
ARROW_SOURCE_HOME: "/arrow"
|
|
LIBARROW_DOWNLOAD: "false"
|
|
volumes: *ubuntu-volumes
|
|
command: >
|
|
/bin/bash -c "
|
|
/arrow/ci/scripts/r_valgrind.sh /arrow"
|
|
|
|
r-revdepcheck:
|
|
# Usage:
|
|
# docker compose build r-revdepcheck
|
|
# docker compose run r-revdepcheck
|
|
image: ${REPO}:r-rstudio-r-base-4.2-focal-revdepcheck
|
|
build:
|
|
context: .
|
|
dockerfile: ci/docker/linux-r.dockerfile
|
|
cache_from:
|
|
- ${REPO}:r-rstudio-r-base-4.2-focal-revdepcheck
|
|
args:
|
|
base: posit/r-base:4.2-focal
|
|
r_dev: ${ARROW_R_DEV}
|
|
tz: ${TZ}
|
|
shm_size: *shm-size
|
|
environment:
|
|
<<: *common
|
|
N_JOBS:
|
|
ARROW_REVDEP_WORKERS:
|
|
ARROW_R_DEV: "true"
|
|
volumes: *ubuntu-volumes
|
|
command: >
|
|
/bin/bash -c "/arrow/ci/scripts/r_revdepcheck.sh /arrow"
|
|
|
|
alpine-linux-r:
|
|
# Usage:
|
|
# docker compose build alpine-linux-r
|
|
# docker compose run alpine-linux-r
|
|
# Tests R package installation on musl (Alpine Linux) for CRAN checks.
|
|
# R package builds C++ from source (bundled RE2 2023-03-01 supports musl).
|
|
# Parameters:
|
|
# ALPINE_LINUX: 3.22
|
|
# R: 4.5 (Alpine's R version)
|
|
# ARCH: amd64, arm64/v8, ...
|
|
image: ${REPO}:${ARCH_SHORT}-alpine-linux-${ALPINE_LINUX}-r
|
|
build:
|
|
context: .
|
|
dockerfile: ci/docker/alpine-linux-${ALPINE_LINUX}-r.dockerfile
|
|
cache_from:
|
|
- ${REPO}:${ARCH_SHORT}-alpine-linux-${ALPINE_LINUX}-r
|
|
args:
|
|
arch: ${ARCH}
|
|
shm_size: *shm-size
|
|
environment:
|
|
<<: [*common, *sccache]
|
|
LIBARROW_BINARY: "false"
|
|
ARROW_SOURCE_HOME: "/arrow"
|
|
ARROW_R_DEV: ${ARROW_R_DEV}
|
|
ARROW_USE_PKG_CONFIG: "false"
|
|
SKIP_VIGNETTES: "true"
|
|
NOT_CRAN: "false"
|
|
volumes:
|
|
- .:/arrow:delegated
|
|
command: /arrow/ci/scripts/r_test.sh /arrow
|
|
|
|
fedora-r-clang:
|
|
# Usage:
|
|
# docker compose build fedora-r-clang
|
|
# docker compose run fedora-r-clang
|
|
# Tests R package on Fedora with Clang, simulating CRAN's
|
|
# r-devel-linux-x86_64-fedora-clang environment.
|
|
# R-devel is built from source with Clang and uses CRAN's compiler flags.
|
|
# See: https://www.stats.ox.ac.uk/pub/bdr/Rconfig/r-devel-linux-x86_64-fedora-clang
|
|
# Parameters:
|
|
# FEDORA: 42
|
|
# ARCH: amd64
|
|
image: ${REPO}:${ARCH_SHORT}-fedora-${FEDORA}-r-clang
|
|
build:
|
|
context: .
|
|
dockerfile: ci/docker/fedora-${FEDORA}-r-clang.dockerfile
|
|
cache_from:
|
|
- ${REPO}:${ARCH_SHORT}-fedora-${FEDORA}-r-clang
|
|
args:
|
|
arch: ${ARCH}
|
|
shm_size: *shm-size
|
|
environment:
|
|
<<: [*common, *sccache]
|
|
LIBARROW_BINARY: "false"
|
|
ARROW_SOURCE_HOME: "/arrow"
|
|
ARROW_R_DEV: ${ARROW_R_DEV}
|
|
ARROW_USE_PKG_CONFIG: "false"
|
|
SKIP_VIGNETTES: "true"
|
|
NOT_CRAN: "false"
|
|
volumes: *fedora-volumes
|
|
command: /arrow/ci/scripts/r_test.sh /arrow
|
|
|
|
############################## Integration ##################################
|
|
|
|
conda-integration:
|
|
# Usage:
|
|
# docker compose build conda-cpp
|
|
# docker compose build conda-integration
|
|
# docker compose run conda-integration
|
|
image: ${REPO}:${ARCH_SHORT}-conda-integration
|
|
build:
|
|
context: .
|
|
dockerfile: ci/docker/conda-integration.dockerfile
|
|
cache_from:
|
|
- ${REPO}:${ARCH_SHORT}-conda-integration
|
|
args:
|
|
repo: ${REPO}
|
|
arch: ${ARCH}
|
|
arch_short: ${ARCH_SHORT}
|
|
# Use a newer JDK as it seems to improve stability
|
|
jdk: 17
|
|
maven: ${MAVEN}
|
|
node: ${NODE}
|
|
volumes: *conda-volumes
|
|
environment:
|
|
<<: [*common, *ccache, *sccache]
|
|
ARCHERY_INTEGRATION_WITH_DOTNET: 0
|
|
ARCHERY_INTEGRATION_WITH_GO: 0
|
|
ARCHERY_INTEGRATION_WITH_JAVA: 0
|
|
ARCHERY_INTEGRATION_WITH_JS: 0
|
|
ARCHERY_INTEGRATION_WITH_NANOARROW: 0
|
|
ARCHERY_INTEGRATION_WITH_RUST: 0
|
|
# Tell Archery where Arrow binaries are located
|
|
ARROW_CPP_EXE_PATH: /build/cpp/debug
|
|
ARROW_NANOARROW_PATH: /build/nanoarrow
|
|
ARROW_RUST_EXE_PATH: /build/rust/debug
|
|
command:
|
|
["git config --global --add safe.directory /arrow/go &&
|
|
/arrow/ci/scripts/integration_arrow_build.sh /arrow /build &&
|
|
/arrow/ci/scripts/integration_arrow.sh /arrow /build"]
|
|
|
|
################################ Docs #######################################
|
|
|
|
debian-docs:
|
|
# Usage:
|
|
# docker compose build debian-cpp
|
|
# docker compose build debian-python
|
|
# docker compose build debian-docs
|
|
# docker compose run --rm debian-docs
|
|
image: ${REPO}:${ARCH_SHORT}-debian-${DEBIAN}-docs
|
|
build:
|
|
context: .
|
|
dockerfile: ci/docker/linux-apt-docs.dockerfile
|
|
cache_from:
|
|
- ${REPO}:${ARCH_SHORT}-debian-${DEBIAN}-docs
|
|
args:
|
|
r: ${R}
|
|
node: ${NODE}
|
|
base: ${REPO}:${ARCH_SHORT}-debian-${DEBIAN}-python-3
|
|
# This is for Chromium used by Mermaid. Chromium uses namespace
|
|
# isolation for security by default.
|
|
cap_add:
|
|
- SYS_ADMIN
|
|
environment:
|
|
<<: [*common, *ccache, *sccache]
|
|
ARROW_AZURE: "ON"
|
|
ARROW_CUDA: "ON"
|
|
ARROW_CXX_FLAGS_DEBUG: "-g1"
|
|
ARROW_C_FLAGS_DEBUG: "-g1"
|
|
ARROW_HOME: "/tmp/local"
|
|
ARROW_SUBSTRAIT: "ON"
|
|
BUILD_DOCS_C_GLIB: "ON"
|
|
BUILD_DOCS_CPP: "ON"
|
|
BUILD_DOCS_PYTHON: "ON"
|
|
BUILD_DOCS_R: "ON"
|
|
volumes: *debian-volumes
|
|
command: >
|
|
/bin/bash -c "
|
|
sudo mkdir -p /build /ccache &&
|
|
sudo chown -R `id --user --name`: /build /ccache &&
|
|
/arrow/ci/scripts/cpp_build.sh /arrow /build &&
|
|
/arrow/ci/scripts/python_build.sh /arrow /build &&
|
|
/arrow/ci/scripts/c_glib_build.sh /arrow /build &&
|
|
/arrow/ci/scripts/r_build.sh /arrow /build"
|
|
|
|
######################### Integration Tests #################################
|
|
|
|
postgres:
|
|
# required for the impala service
|
|
image: postgres
|
|
ports:
|
|
- 5432:5432
|
|
environment:
|
|
POSTGRES_PASSWORD: postgres
|
|
|
|
impala:
|
|
# required for the hdfs tests
|
|
image: ibisproject/impala:latest
|
|
hostname: impala
|
|
links:
|
|
- postgres:postgres
|
|
environment:
|
|
PGPASSWORD: postgres
|
|
ports:
|
|
# HDFS
|
|
- 9020:9020
|
|
- 50070:50070
|
|
- 50075:50075
|
|
- 8020:8020
|
|
- 8042:8042
|
|
# Hive
|
|
- 9083:9083
|
|
# Impala
|
|
- 21000:21000
|
|
- 21050:21050
|
|
- 25000:25000
|
|
- 25010:25010
|
|
- 25020:25020
|
|
|
|
conda-python-hdfs:
|
|
# Usage:
|
|
# docker compose build conda-cpp
|
|
# docker compose build conda-python
|
|
# docker compose build conda-python-hdfs
|
|
# docker compose run conda-python-hdfs
|
|
image: ${REPO}:${ARCH_SHORT}-conda-python-${PYTHON}-hdfs-${HDFS}
|
|
build:
|
|
context: .
|
|
dockerfile: ci/docker/conda-python-hdfs.dockerfile
|
|
cache_from:
|
|
- ${REPO}:${ARCH_SHORT}-conda-python-${PYTHON}-hdfs-${HDFS}
|
|
args:
|
|
repo: ${REPO}
|
|
arch: ${ARCH}
|
|
arch_short: ${ARCH_SHORT}
|
|
python: ${PYTHON}
|
|
jdk: ${JDK}
|
|
maven: ${MAVEN}
|
|
hdfs: ${HDFS}
|
|
links:
|
|
- impala:impala
|
|
environment:
|
|
<<: [*common, *ccache, *sccache]
|
|
ARROW_ENGINE: "OFF"
|
|
ARROW_FLIGHT: "OFF"
|
|
ARROW_FLIGHT_SQL: "OFF"
|
|
ARROW_HDFS: "ON"
|
|
ARROW_HDFS_TEST_HOST: impala
|
|
ARROW_HDFS_TEST_PORT: 8020
|
|
ARROW_HDFS_TEST_USER: hdfs
|
|
ARROW_S3: "OFF"
|
|
shm_size: *shm-size
|
|
volumes: &conda-maven-volumes
|
|
- .:/arrow:delegated
|
|
- ${DOCKER_VOLUME_PREFIX}maven-cache:/root/.m2:delegated
|
|
- ${DOCKER_VOLUME_PREFIX}conda-ccache:/ccache:delegated
|
|
command:
|
|
["/arrow/ci/scripts/cpp_build.sh /arrow /build &&
|
|
/arrow/ci/scripts/python_build.sh /arrow /build &&
|
|
/arrow/ci/scripts/integration_hdfs.sh /arrow /build"]
|
|
|
|
conda-python-spark:
|
|
# Usage:
|
|
# docker compose build conda-cpp
|
|
# docker compose build conda-python
|
|
# docker compose build conda-python-spark
|
|
# docker compose run conda-python-spark
|
|
image: ${REPO}:${ARCH_SHORT}-conda-python-${PYTHON}-spark-${SPARK}
|
|
build:
|
|
context: .
|
|
dockerfile: ci/docker/conda-python-spark.dockerfile
|
|
cache_from:
|
|
- ${REPO}:${ARCH_SHORT}-conda-python-${PYTHON}-spark-${SPARK}
|
|
args:
|
|
repo: ${REPO}
|
|
arch: ${ARCH}
|
|
arch_short: ${ARCH_SHORT}
|
|
python: ${PYTHON}
|
|
jdk: ${JDK}
|
|
maven: ${MAVEN}
|
|
spark: ${SPARK}
|
|
numpy: ${NUMPY}
|
|
shm_size: *shm-size
|
|
environment:
|
|
<<: [*common, *ccache, *sccache]
|
|
volumes: *conda-maven-volumes
|
|
command:
|
|
["/arrow/ci/scripts/cpp_build.sh /arrow /build &&
|
|
/arrow/ci/scripts/python_build.sh /arrow /build &&
|
|
/arrow/ci/scripts/integration_spark.sh /arrow /spark"]
|
|
|
|
################################# Source Verification #####################################
|
|
|
|
conda-verify-rc:
|
|
image: ubuntu:${UBUNTU}
|
|
volumes:
|
|
- .:/arrow:delegated
|
|
- ${DOCKER_VOLUME_PREFIX}conda-ccache:/ccache:delegated
|
|
shm_size: '1gb'
|
|
environment:
|
|
<<: [*common, *ccache, *sccache]
|
|
CMAKE_GENERATOR: Ninja
|
|
DEBIAN_FRONTEND: "noninteractive"
|
|
DOTNET_SYSTEM_GLOBALIZATION_INVARIANT: 1
|
|
TEST_APT: 0 # would require docker-in-docker
|
|
TEST_YUM: 0
|
|
USE_CONDA: 1
|
|
command: >
|
|
/bin/bash -c "
|
|
apt update -y && apt install -y curl git gnupg tzdata wget &&
|
|
git config --global --add safe.directory /arrow &&
|
|
/arrow/dev/release/verify-release-candidate.sh $${VERIFY_VERSION} $${VERIFY_RC}"
|
|
|
|
almalinux-verify-rc:
|
|
# Usage:
|
|
# docker compose build almalinux-verify-rc
|
|
# docker compose run -e VERIFY_VERSION=6.0.1 -e VERIFY_RC=1 almalinux-verify-rc
|
|
# Parameters:
|
|
# ALMALINUX: 8
|
|
image: ${REPO}:${ARCH_SHORT}-almalinux-${ALMALINUX}-verify-rc
|
|
build:
|
|
context: .
|
|
dockerfile: ci/docker/almalinux-${ALMALINUX}-verify-rc.dockerfile
|
|
cache_from:
|
|
- ${REPO}:${ARCH_SHORT}-almalinux-${ALMALINUX}-verify-rc
|
|
args:
|
|
repo: ${REPO}
|
|
arch: ${ARCH}
|
|
volumes:
|
|
- .:/arrow:delegated
|
|
- ${DOCKER_VOLUME_PREFIX}almalinux-ccache:/ccache:delegated
|
|
shm_size: '1gb'
|
|
environment:
|
|
<<: [*common, *ccache, *sccache]
|
|
CMAKE_GENERATOR: Ninja
|
|
SSL_CERT_FILE: /etc/ssl/certs/ca-bundle.crt # required due to issue in RHEL-8 based images. See GH-49757
|
|
TEST_APT: 0 # would require docker-in-docker
|
|
TEST_YUM: 0
|
|
command: >
|
|
/bin/bash -c "
|
|
/arrow/dev/release/verify-release-candidate.sh $${VERIFY_VERSION} $${VERIFY_RC}"
|
|
|
|
ubuntu-verify-rc:
|
|
# Usage:
|
|
# docker compose build ubuntu-verify-rc
|
|
# docker compose run -e VERIFY_VERSION=6.0.1 -e VERIFY_RC=1 ubuntu-verify-rc
|
|
# Parameters:
|
|
# UBUNTU: 22.04, 24.04
|
|
image: ${REPO}:${ARCH_SHORT}-ubuntu-${UBUNTU}-verify-rc
|
|
build:
|
|
context: .
|
|
dockerfile: ci/docker/ubuntu-${UBUNTU}-verify-rc.dockerfile
|
|
cache_from:
|
|
- ${REPO}:${ARCH_SHORT}-ubuntu-${UBUNTU}-verify-rc
|
|
args:
|
|
arch: ${ARCH}
|
|
cmake: ${CMAKE}
|
|
repo: ${REPO}
|
|
volumes:
|
|
- .:/arrow:delegated
|
|
- ${DOCKER_VOLUME_PREFIX}ubuntu-ccache:/ccache:delegated
|
|
shm_size: '1gb'
|
|
environment:
|
|
<<: [*common, *ccache, *sccache]
|
|
CMAKE_GENERATOR: Ninja
|
|
TEST_APT: 0 # would require docker-in-docker
|
|
TEST_YUM: 0
|
|
command: >
|
|
/bin/bash -c "
|
|
git config --global --add safe.directory /arrow &&
|
|
/arrow/dev/release/verify-release-candidate.sh $${VERIFY_VERSION} $${VERIFY_RC}"
|
|
|
|
secrets:
|
|
github_repository_owner:
|
|
environment: GITHUB_REPOSITORY_OWNER
|
|
github_token:
|
|
environment: GITHUB_TOKEN
|
|
vcpkg_binary_sources:
|
|
environment: VCPKG_BINARY_SOURCES
|