This is an automated email from the ASF dual-hosted git repository.
raulcd pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow.git
The following commit(s) were added to refs/heads/main by this push:
new a21147b500 GH-45478: [CI][C++] Drop support for Ubuntu 20.04 (#45519)
a21147b500 is described below
commit a21147b50081d4fd64b2fdd04c7ed00cefd5bae5
Author: Sutou Kouhei <[email protected]>
AuthorDate: Fri Feb 14 16:28:28 2025 +0900
GH-45478: [CI][C++] Drop support for Ubuntu 20.04 (#45519)
### Rationale for this change
Ubuntu 20.04 will read EOL on 2025-05.
### What changes are included in this PR?
Remove jobs that use Ubuntu 20.04 or replace them with Ubuntu 22.04.
### Are these changes tested?
Yes.
### Are there any user-facing changes?
No.
* GitHub Issue: #45478
Authored-by: Sutou Kouhei <[email protected]>
Signed-off-by: Raúl Cumplido <[email protected]>
---
.github/workflows/cpp.yml | 8 +-
ci/docker/ubuntu-20.04-cpp-minimal.dockerfile | 108 --------------
ci/docker/ubuntu-20.04-cpp.dockerfile | 197 --------------------------
ci/docker/ubuntu-22.04-cpp.dockerfile | 8 +-
ci/docker/ubuntu-24.04-cpp.dockerfile | 6 +-
dev/tasks/tasks.yml | 18 +--
docker-compose.yml | 12 +-
7 files changed, 21 insertions(+), 336 deletions(-)
diff --git a/.github/workflows/cpp.yml b/.github/workflows/cpp.yml
index b0072791b3..56cf75d286 100644
--- a/.github/workflows/cpp.yml
+++ b/.github/workflows/cpp.yml
@@ -94,12 +94,12 @@ jobs:
title: AMD64 Ubuntu 22.04 C++ ASAN UBSAN
ubuntu: 22.04
- arch: arm64v8
- clang-tools: 10
+ clang-tools: 14
image: ubuntu-cpp
- llvm: 10
+ llvm: 14
runs-on: ubuntu-24.04-arm
- title: ARM64 Ubuntu 20.04 C++
- ubuntu: 20.04
+ title: ARM64 Ubuntu 22.04 C++
+ ubuntu: 22.04
env:
ARCH: ${{ matrix.arch }}
ARROW_SIMD_LEVEL: ${{ matrix.simd-level }}
diff --git a/ci/docker/ubuntu-20.04-cpp-minimal.dockerfile
b/ci/docker/ubuntu-20.04-cpp-minimal.dockerfile
deleted file mode 100644
index 79a0c786aa..0000000000
--- a/ci/docker/ubuntu-20.04-cpp-minimal.dockerfile
+++ /dev/null
@@ -1,108 +0,0 @@
-# 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.
-
-ARG base=amd64/ubuntu:20.04
-FROM ${base}
-
-SHELL ["/bin/bash", "-o", "pipefail", "-c"]
-
-RUN echo "debconf debconf/frontend select Noninteractive" | \
- debconf-set-selections
-
-RUN apt-get update -y -q && \
- apt-get install -y -q \
- build-essential \
- ccache \
- curl \
- gdb \
- git \
- libssl-dev \
- libcurl4-openssl-dev \
- python3-pip \
- python3-venv \
- tzdata \
- wget && \
- apt-get clean && \
- rm -rf /var/lib/apt/lists*
-
-# Installs LLVM toolchain, for Gandiva and testing other compilers
-#
-# Note that this is installed before the base packages to improve iteration
-# while debugging package list with docker build.
-ARG llvm
-RUN latest_system_llvm=10 && \
- if [ ${llvm} -gt ${latest_system_llvm} ]; then \
- apt-get update -y -q && \
- apt-get install -y -q --no-install-recommends \
- apt-transport-https \
- ca-certificates \
- gnupg \
- lsb-release \
- wget && \
- wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - && \
- code_name=$(lsb_release --codename --short) && \
- if [ ${llvm} -gt 10 ]; then \
- echo "deb https://apt.llvm.org/${code_name}/
llvm-toolchain-${code_name}-${llvm} main" > \
- /etc/apt/sources.list.d/llvm.list; \
- fi; \
- fi && \
- apt-get update -y -q && \
- apt-get install -y -q --no-install-recommends \
- clang-${llvm} \
- llvm-${llvm}-dev && \
- apt-get clean && \
- rm -rf /var/lib/apt/lists*
-
-ARG cmake
-COPY ci/scripts/install_cmake.sh /arrow/ci/scripts/
-RUN /arrow/ci/scripts/install_cmake.sh ${cmake} /usr/local/
-
-COPY ci/scripts/install_minio.sh /arrow/ci/scripts/
-RUN /arrow/ci/scripts/install_minio.sh latest /usr/local
-
-COPY ci/scripts/install_gcs_testbench.sh /arrow/ci/scripts/
-RUN /arrow/ci/scripts/install_gcs_testbench.sh default
-
-COPY ci/scripts/install_sccache.sh /arrow/ci/scripts/
-RUN /arrow/ci/scripts/install_sccache.sh unknown-linux-musl /usr/local/bin
-
-ENV ARROW_ACERO=ON \
- ARROW_AZURE=OFF \
- ARROW_BUILD_TESTS=ON \
- ARROW_DATASET=ON \
- ARROW_FLIGHT=ON \
- ARROW_GANDIVA=ON \
- ARROW_GCS=ON \
- ARROW_HDFS=ON \
- ARROW_HOME=/usr/local \
- ARROW_INSTALL_NAME_RPATH=OFF \
- ARROW_ORC=ON \
- ARROW_PARQUET=ON \
- ARROW_S3=ON \
- ARROW_USE_CCACHE=ON \
- ARROW_WITH_BROTLI=ON \
- ARROW_WITH_BZ2=ON \
- ARROW_WITH_LZ4=ON \
- ARROW_WITH_OPENTELEMETRY=OFF \
- ARROW_WITH_SNAPPY=ON \
- ARROW_WITH_ZLIB=ON \
- ARROW_WITH_ZSTD=ON \
- CMAKE_GENERATOR="Unix Makefiles" \
- PARQUET_BUILD_EXAMPLES=ON \
- PARQUET_BUILD_EXECUTABLES=ON \
- PATH=/usr/lib/ccache/:$PATH \
- PYTHON=python3
diff --git a/ci/docker/ubuntu-20.04-cpp.dockerfile
b/ci/docker/ubuntu-20.04-cpp.dockerfile
deleted file mode 100644
index db7e03b8bf..0000000000
--- a/ci/docker/ubuntu-20.04-cpp.dockerfile
+++ /dev/null
@@ -1,197 +0,0 @@
-# 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.
-
-ARG base=amd64/ubuntu:20.04
-FROM ${base}
-
-SHELL ["/bin/bash", "-o", "pipefail", "-c"]
-
-RUN echo "debconf debconf/frontend select Noninteractive" | \
- debconf-set-selections
-
-# Installs LLVM toolchain, for Gandiva and testing other compilers
-#
-# Note that this is installed before the base packages to improve iteration
-# while debugging package list with docker build.
-ARG clang_tools
-ARG llvm
-RUN latest_system_llvm=10 && \
- if [ ${llvm} -gt ${latest_system_llvm} -o \
- ${clang_tools} -gt ${latest_system_llvm} ]; then \
- apt-get update -y -q && \
- apt-get install -y -q --no-install-recommends \
- apt-transport-https \
- ca-certificates \
- gnupg \
- lsb-release \
- wget && \
- wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - && \
- code_name=$(lsb_release --codename --short) && \
- if [ ${llvm} -gt 10 ]; then \
- echo "deb https://apt.llvm.org/${code_name}/
llvm-toolchain-${code_name}-${llvm} main" > \
- /etc/apt/sources.list.d/llvm.list; \
- fi && \
- if [ ${clang_tools} -ne ${llvm} -a \
- ${clang_tools} -gt ${latest_system_llvm} ]; then \
- echo "deb https://apt.llvm.org/${code_name}/
llvm-toolchain-${code_name}-${clang_tools} main" > \
- /etc/apt/sources.list.d/clang-tools.list; \
- fi; \
- fi && \
- apt-get update -y -q && \
- apt-get install -y -q --no-install-recommends \
- clang-${clang_tools} \
- clang-${llvm} \
- clang-format-${clang_tools} \
- clang-tidy-${clang_tools} \
- llvm-${llvm}-dev && \
- apt-get clean && \
- rm -rf /var/lib/apt/lists*
-
-# Installs C++ toolchain and dependencies
-RUN apt-get update -y -q && \
- apt-get install -y -q --no-install-recommends \
- autoconf \
- ca-certificates \
- ccache \
- curl \
- g++ \
- gcc \
- gdb \
- git \
- libbenchmark-dev \
- libboost-filesystem-dev \
- libboost-system-dev \
- libbrotli-dev \
- libbz2-dev \
- libc-ares-dev \
- libcurl4-openssl-dev \
- libgflags-dev \
- libgoogle-glog-dev \
- libidn2-dev \
- libkrb5-dev \
- libldap-dev \
- liblz4-dev \
- libnghttp2-dev \
- libprotobuf-dev \
- libprotoc-dev \
- libpsl-dev \
- libradospp-dev \
- libre2-dev \
- librtmp-dev \
- libsnappy-dev \
- libssh-dev \
- libssh2-1-dev \
- libssl-dev \
- libthrift-dev \
- libutf8proc-dev \
- libxml2-dev \
- libzstd-dev \
- lld \
- make \
- ninja-build \
- nlohmann-json3-dev \
- npm \
- patch \
- pkg-config \
- protobuf-compiler \
- python3-dev \
- python3-pip \
- python3-rados \
- python3-venv \
- rados-objclass-dev \
- rapidjson-dev \
- rsync \
- tzdata \
- wget && \
- apt-get clean && \
- rm -rf /var/lib/apt/lists*
-
-ARG cmake
-COPY ci/scripts/install_cmake.sh /arrow/ci/scripts/
-RUN /arrow/ci/scripts/install_cmake.sh ${cmake} /usr/local/
-
-COPY ci/scripts/install_minio.sh /arrow/ci/scripts/
-RUN /arrow/ci/scripts/install_minio.sh latest /usr/local
-
-COPY ci/scripts/install_gcs_testbench.sh /arrow/ci/scripts/
-RUN /arrow/ci/scripts/install_gcs_testbench.sh default
-
-COPY ci/scripts/install_azurite.sh /arrow/ci/scripts/
-RUN /arrow/ci/scripts/install_azurite.sh
-
-COPY ci/scripts/install_ceph.sh /arrow/ci/scripts/
-RUN /arrow/ci/scripts/install_ceph.sh
-
-COPY ci/scripts/install_sccache.sh /arrow/ci/scripts/
-RUN /arrow/ci/scripts/install_sccache.sh unknown-linux-musl /usr/local/bin
-
-# Prioritize system packages and local installation.
-#
-# The following dependencies will be downloaded due to missing/invalid packages
-# provided by the distribution:
-# - Abseil is not packaged
-# - libc-ares-dev does not install CMake config files
-# - flatbuffer is not packaged
-# - libgtest-dev only provide sources
-# - libprotobuf-dev only provide sources
-# - opentelemetry-cpp-dev is not packaged
-#
-# ARROW-17051: this build uses static Protobuf, so we must also use
-# static Arrow to run Flight/Flight SQL tests.
-ENV absl_SOURCE=BUNDLED \
- ARROW_ACERO=ON \
- ARROW_AZURE=OFF \
- ARROW_BUILD_STATIC=ON \
- ARROW_BUILD_TESTS=ON \
- ARROW_DEPENDENCY_SOURCE=SYSTEM \
- ARROW_DATASET=ON \
- ARROW_FLIGHT=OFF \
- ARROW_GANDIVA=ON \
- ARROW_GCS=ON \
- ARROW_HDFS=ON \
- ARROW_HOME=/usr/local \
- ARROW_INSTALL_NAME_RPATH=OFF \
- ARROW_JEMALLOC=ON \
- ARROW_ORC=ON \
- ARROW_PARQUET=ON \
- ARROW_S3=ON \
- ARROW_SUBSTRAIT=ON \
- ARROW_USE_ASAN=OFF \
- ARROW_USE_CCACHE=ON \
- ARROW_USE_LLD=ON \
- ARROW_USE_UBSAN=OFF \
- ARROW_WITH_BROTLI=ON \
- ARROW_WITH_BZ2=ON \
- ARROW_WITH_LZ4=ON \
- ARROW_WITH_OPENTELEMETRY=ON \
- ARROW_WITH_SNAPPY=ON \
- ARROW_WITH_ZLIB=ON \
- ARROW_WITH_ZSTD=ON \
- ASAN_SYMBOLIZER_PATH=/usr/lib/llvm-${llvm}/bin/llvm-symbolizer \
- AWSSDK_SOURCE=BUNDLED \
- Azure_SOURCE=BUNDLED \
- google_cloud_cpp_storage_SOURCE=BUNDLED \
- gRPC_SOURCE=BUNDLED \
- GTest_SOURCE=BUNDLED \
- opentelemetry_cpp_SOURCE=BUNDLED \
- ORC_SOURCE=BUNDLED \
- PARQUET_BUILD_EXAMPLES=ON \
- PARQUET_BUILD_EXECUTABLES=ON \
- Protobuf_SOURCE=BUNDLED \
- PATH=/usr/lib/ccache/:$PATH \
- PYTHON=python3 \
- xsimd_SOURCE=BUNDLED
diff --git a/ci/docker/ubuntu-22.04-cpp.dockerfile
b/ci/docker/ubuntu-22.04-cpp.dockerfile
index 4a3d311acb..8235e72c4e 100644
--- a/ci/docker/ubuntu-22.04-cpp.dockerfile
+++ b/ci/docker/ubuntu-22.04-cpp.dockerfile
@@ -41,7 +41,7 @@ RUN latest_system_llvm=14 && \
wget && \
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - && \
code_name=$(lsb_release --codename --short) && \
- if [ ${llvm} -gt 10 ]; then \
+ if [ ${llvm} -gt ${latest_system_llvm} ]; then \
echo "deb https://apt.llvm.org/${code_name}/
llvm-toolchain-${code_name}-${llvm} main" > \
/etc/apt/sources.list.d/llvm.list; \
fi && \
@@ -68,9 +68,6 @@ RUN apt-get update -y -q && \
bzip2 \
ca-certificates \
ccache \
- ceph \
- ceph-fuse \
- ceph-mds \
curl \
gdb \
git \
@@ -180,6 +177,9 @@ RUN /arrow/ci/scripts/install_gcs_testbench.sh default
COPY ci/scripts/install_azurite.sh /arrow/ci/scripts/
RUN /arrow/ci/scripts/install_azurite.sh
+COPY ci/scripts/install_ceph.sh /arrow/ci/scripts/
+RUN /arrow/ci/scripts/install_ceph.sh
+
COPY ci/scripts/install_sccache.sh /arrow/ci/scripts/
RUN /arrow/ci/scripts/install_sccache.sh unknown-linux-musl /usr/local/bin
diff --git a/ci/docker/ubuntu-24.04-cpp.dockerfile
b/ci/docker/ubuntu-24.04-cpp.dockerfile
index 592a9a6a23..0347d452d7 100644
--- a/ci/docker/ubuntu-24.04-cpp.dockerfile
+++ b/ci/docker/ubuntu-24.04-cpp.dockerfile
@@ -68,9 +68,6 @@ RUN apt-get update -y -q && \
autoconf \
ca-certificates \
ccache \
- ceph \
- ceph-fuse \
- ceph-mds \
cmake \
curl \
gdb \
@@ -165,6 +162,9 @@ RUN /arrow/ci/scripts/install_gcs_testbench.sh default
COPY ci/scripts/install_azurite.sh /arrow/ci/scripts/
RUN /arrow/ci/scripts/install_azurite.sh
+COPY ci/scripts/install_ceph.sh /arrow/ci/scripts/
+RUN /arrow/ci/scripts/install_ceph.sh
+
COPY ci/scripts/install_sccache.sh /arrow/ci/scripts/
RUN /arrow/ci/scripts/install_sccache.sh unknown-linux-musl /usr/local/bin
diff --git a/dev/tasks/tasks.yml b/dev/tasks/tasks.yml
index 2f12faa1c5..881fbcdb48 100644
--- a/dev/tasks/tasks.yml
+++ b/dev/tasks/tasks.yml
@@ -875,22 +875,20 @@ tasks:
params:
image: conda-cpp-valgrind
-{% for ubuntu_version in ["20.04", "22.04"] %}
- test-ubuntu-{{ ubuntu_version }}-cpp:
+ test-ubuntu-22.04-cpp:
ci: github
template: docker-tests/github.linux.yml
params:
env:
- UBUNTU: "{{ ubuntu_version }}"
+ UBUNTU: 22.04
image: ubuntu-cpp
-{% endfor %}
- test-ubuntu-20.04-cpp-bundled:
+ test-ubuntu-22.04-cpp-bundled:
ci: github
template: docker-tests/github.linux.yml
params:
env:
- UBUNTU: 20.04
+ UBUNTU: 22.04
image: ubuntu-cpp-bundled
test-ubuntu-24.04-cpp-bundled-offline:
@@ -1323,14 +1321,6 @@ tasks:
############################## CUDA tests #################################
- test-cuda-cpp-ubuntu-20.04-cuda-11.2.2:
- ci: github
- template: docker-tests/github.cuda.yml
- params:
- env:
- UBUNTU: 20.04
- image: ubuntu-cuda-cpp
-
test-cuda-cpp-ubuntu-22.04-cuda-11.7.1:
ci: github
template: docker-tests/github.cuda.yml
diff --git a/docker-compose.yml b/docker-compose.yml
index 9a969bedbe..58e88cbd9b 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -378,7 +378,7 @@ services:
# docker compose run --rm ubuntu-cpp
# Parameters:
# ARCH: amd64, arm64v8, s390x, ...
- # UBUNTU: 20.04, 22.04, 24.04
+ # UBUNTU: 22.04, 24.04
image: ${REPO}:${ARCH}-ubuntu-${UBUNTU}-cpp
build:
context: .
@@ -415,7 +415,7 @@ services:
# docker compose run --rm ubuntu-cpp-static
# Parameters:
# ARCH: amd64, arm64v8, s390x, ...
- # UBUNTU: 20.04, 22.04
+ # UBUNTU: 22.04, 24.04
image: ${REPO}:${ARCH}-ubuntu-${UBUNTU}-cpp-static
build:
context: .
@@ -662,7 +662,7 @@ services:
# docker compose run --rm ubuntu-cpp-thread-sanitizer
# Parameters:
# ARCH: amd64, arm64v8, ...
- # UBUNTU: 20.04, 22.04
+ # UBUNTU: 22.04, 24.04
image: ${REPO}:${ARCH}-ubuntu-${UBUNTU}-cpp
build:
context: .
@@ -804,7 +804,7 @@ services:
# docker compose run --rm ubuntu-c-glib
# Parameters:
# ARCH: amd64, arm64v8, ...
- # UBUNTU: 20.04, 22.04
+ # UBUNTU: 22.04, 24.04
image: ${REPO}:${ARCH}-ubuntu-${UBUNTU}-c-glib
build:
context: .
@@ -864,7 +864,7 @@ services:
# docker compose run --rm ubuntu-ruby
# Parameters:
# ARCH: amd64, arm64v8, ...
- # UBUNTU: 20.04, 22.04
+ # UBUNTU: 22.04, 24.04
image: ${REPO}:${ARCH}-ubuntu-${UBUNTU}-ruby
build:
context: .
@@ -1131,7 +1131,7 @@ services:
# docker compose run --rm ubuntu-python-313-freethreading
# Parameters:
# ARCH: amd64, arm64v8, ...
- # UBUNTU: 20.04, 22.04, 24.04
+ # UBUNTU: 22.04, 24.04
image: ${REPO}:${ARCH}-ubuntu-${UBUNTU}-python-313-freethreading
build:
context: .