This is an automated email from the ASF dual-hosted git repository.
kou 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 a273e69dfd6 GH-51254: [C++][CI] Move ubuntu-cpp-bundled-offline to C++
Extra (#51255)
a273e69dfd6 is described below
commit a273e69dfd66ad8fe9416aad790ec9b2adb384d7
Author: Antoine Pitrou <[email protected]>
AuthorDate: Thu Sep 10 09:00:28 2026 +0200
GH-51254: [C++][CI] Move ubuntu-cpp-bundled-offline to C++ Extra (#51255)
### Rationale for this change
The `test-ubuntu-24.04-cpp-bundled-offline` Crossbow job usually takes one
hour to complete:
https://github.com/ursacomputing/crossbow/actions/runs/34175056969/job/101902703505
This is because, despite sccache being configured, the S3-stored
compilation cache is unavailable because the network is shut off during
compilation. And the job compiles all dependencies from scratch.
### What changes are included in this PR?
Move the CI job to the C++ Extra workflow, so as to take advantage of
ccache-based compilation caching using `apache/infrastructure-actions/stash`.
### Are these changes tested?
By definition, yes.
### Are there any user-facing changes?
No.
* GitHub Issue: #51254
Authored-by: Antoine Pitrou <[email protected]>
Signed-off-by: Sutou Kouhei <[email protected]>
---
.github/workflows/cpp_extra.yml | 5 +++++
ci/docker/alpine-linux-3.22-cpp.dockerfile | 1 -
ci/docker/debian-13-cpp.dockerfile | 1 -
ci/docker/debian-experimental-cpp.dockerfile | 1 -
ci/docker/fedora-42-cpp.dockerfile | 1 -
ci/docker/ubuntu-22.04-cpp-minimal.dockerfile | 1 -
ci/docker/ubuntu-22.04-cpp.dockerfile | 1 -
ci/docker/ubuntu-24.04-cpp-minimal.dockerfile | 1 -
ci/docker/ubuntu-24.04-cpp.dockerfile | 1 -
compose.yaml | 1 -
cpp/CMakeLists.txt | 3 +++
cpp/thirdparty/download_dependencies.sh | 2 ++
dev/tasks/tasks.yml | 9 ---------
13 files changed, 10 insertions(+), 18 deletions(-)
diff --git a/.github/workflows/cpp_extra.yml b/.github/workflows/cpp_extra.yml
index 536dc5a3a82..5236ea63573 100644
--- a/.github/workflows/cpp_extra.yml
+++ b/.github/workflows/cpp_extra.yml
@@ -113,6 +113,11 @@ jobs:
-e BUILD_WARNING_LEVEL=PRODUCTION
runs-on: "runs-on=${{ github.run_id
}}/family=x8i.2xlarge/volume=80gb/spot=capacity-optimized"
title: AMD64 Ubuntu Large Memory Tests
+ - image: ubuntu-cpp-bundled-offline
+ runs-on: ubuntu-latest
+ envs:
+ - UBUNTU=24.04
+ title: AMD64 Ubuntu Bundled Offline
- image: conda-cpp
run-options: >-
-e ARROW_USE_MESON=ON
diff --git a/ci/docker/alpine-linux-3.22-cpp.dockerfile
b/ci/docker/alpine-linux-3.22-cpp.dockerfile
index 766e02e24cb..edf2481ef34 100644
--- a/ci/docker/alpine-linux-3.22-cpp.dockerfile
+++ b/ci/docker/alpine-linux-3.22-cpp.dockerfile
@@ -104,7 +104,6 @@ ENV ARROW_ACERO=ON \
AWSSDK_SOURCE=BUNDLED \
google_cloud_cpp_storage_SOURCE=BUNDLED \
MUSL_LOCPATH=/usr/share/i18n/locales/musl \
- PATH=/usr/lib/ccache/bin:$PATH \
# We can remove this once
# https://gitlab.alpinelinux.org/alpine/aports/-/work_items/18353
# is fixed.
diff --git a/ci/docker/debian-13-cpp.dockerfile
b/ci/docker/debian-13-cpp.dockerfile
index ebda8f3847d..31ba7107635 100644
--- a/ci/docker/debian-13-cpp.dockerfile
+++ b/ci/docker/debian-13-cpp.dockerfile
@@ -137,7 +137,6 @@ ENV ARROW_ACERO=ON \
Azure_SOURCE=BUNDLED \
google_cloud_cpp_storage_SOURCE=BUNDLED \
ORC_SOURCE=BUNDLED \
- PATH=/usr/lib/ccache/:$PATH \
PYTHON=python3 \
simdjson_SOURCE=BUNDLED \
xsimd_SOURCE=BUNDLED
diff --git a/ci/docker/debian-experimental-cpp.dockerfile
b/ci/docker/debian-experimental-cpp.dockerfile
index 359ac700806..d658127063e 100644
--- a/ci/docker/debian-experimental-cpp.dockerfile
+++ b/ci/docker/debian-experimental-cpp.dockerfile
@@ -143,6 +143,5 @@ ENV ARROW_ACERO=ON \
CXX=g++${gcc:+-${gcc}} \
google_cloud_cpp_storage_SOURCE=BUNDLED \
ORC_SOURCE=BUNDLED \
- PATH=/usr/lib/ccache/:$PATH \
PYTHON=python3 \
xsimd_SOURCE=BUNDLED
diff --git a/ci/docker/fedora-42-cpp.dockerfile
b/ci/docker/fedora-42-cpp.dockerfile
index f3bdda00a1b..ae49ad18dbb 100644
--- a/ci/docker/fedora-42-cpp.dockerfile
+++ b/ci/docker/fedora-42-cpp.dockerfile
@@ -109,7 +109,6 @@ ENV ARROW_ACERO=ON \
opentelemetry_cpp_SOURCE=BUNDLED \
PARQUET_BUILD_EXAMPLES=ON \
PARQUET_BUILD_EXECUTABLES=ON \
- PATH=/usr/lib/ccache/:$PATH \
PYARROW_TEST_GANDIVA=OFF \
simdjson_SOURCE=BUNDLED \
xsimd_SOURCE=BUNDLED
diff --git a/ci/docker/ubuntu-22.04-cpp-minimal.dockerfile
b/ci/docker/ubuntu-22.04-cpp-minimal.dockerfile
index e77675b8a84..e0f548cb6f8 100644
--- a/ci/docker/ubuntu-22.04-cpp-minimal.dockerfile
+++ b/ci/docker/ubuntu-22.04-cpp-minimal.dockerfile
@@ -108,5 +108,4 @@ ENV ARROW_ACERO=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-22.04-cpp.dockerfile
b/ci/docker/ubuntu-22.04-cpp.dockerfile
index 54b671c7a57..64b2f8c1dda 100644
--- a/ci/docker/ubuntu-22.04-cpp.dockerfile
+++ b/ci/docker/ubuntu-22.04-cpp.dockerfile
@@ -225,7 +225,6 @@ ENV absl_SOURCE=BUNDLED \
ORC_SOURCE=BUNDLED \
PARQUET_BUILD_EXAMPLES=ON \
PARQUET_BUILD_EXECUTABLES=ON \
- PATH=/usr/lib/ccache/:$PATH \
PYTHON=python3 \
simdjson_SOURCE=BUNDLED \
xsimd_SOURCE=BUNDLED
diff --git a/ci/docker/ubuntu-24.04-cpp-minimal.dockerfile
b/ci/docker/ubuntu-24.04-cpp-minimal.dockerfile
index 4ba362f8266..3a79b28598e 100644
--- a/ci/docker/ubuntu-24.04-cpp-minimal.dockerfile
+++ b/ci/docker/ubuntu-24.04-cpp-minimal.dockerfile
@@ -105,5 +105,4 @@ ENV ARROW_ACERO=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-24.04-cpp.dockerfile
b/ci/docker/ubuntu-24.04-cpp.dockerfile
index 00cc8796c54..9cdd3c562dc 100644
--- a/ci/docker/ubuntu-24.04-cpp.dockerfile
+++ b/ci/docker/ubuntu-24.04-cpp.dockerfile
@@ -219,7 +219,6 @@ ENV absl_SOURCE=BUNDLED \
ORC_SOURCE=BUNDLED \
PARQUET_BUILD_EXAMPLES=ON \
PARQUET_BUILD_EXECUTABLES=ON \
- PATH=/usr/lib/ccache/:$PATH \
PYTHON=python3 \
simdjson_SOURCE=BUNDLED \
xsimd_SOURCE=BUNDLED
diff --git a/compose.yaml b/compose.yaml
index 5cf62a13aa2..04a8cf36fb2 100644
--- a/compose.yaml
+++ b/compose.yaml
@@ -514,7 +514,6 @@ services:
ARROW_OFFLINE: ON
# Apache ORC always uses external orc-format.
ARROW_ORC: OFF
- CMAKE_GENERATOR: "Unix Makefiles"
volumes: *ubuntu-volumes
command: *cpp-command
diff --git a/cpp/CMakeLists.txt b/cpp/CMakeLists.txt
index fd5eaf77f23..b4dd0e1a777 100644
--- a/cpp/CMakeLists.txt
+++ b/cpp/CMakeLists.txt
@@ -263,6 +263,9 @@ if(ARROW_USE_CCACHE
AND NOT CMAKE_C_COMPILER_LAUNCHER
AND NOT CMAKE_CXX_COMPILER_LAUNCHER)
+ # XXX This does not detect if ccache is enabled externally, for example
+ # by adding `/usr/lib/ccache` to PATH in which case `cc` resolves to
+ # `/usr/lib/ccache/cc`. Such double-wrapping of ccache is suboptimal.
find_program(CCACHE_FOUND ccache)
if(CCACHE_FOUND)
diff --git a/cpp/thirdparty/download_dependencies.sh
b/cpp/thirdparty/download_dependencies.sh
index e85e1cc0b3b..de6c5b5b88b 100755
--- a/cpp/thirdparty/download_dependencies.sh
+++ b/cpp/thirdparty/download_dependencies.sh
@@ -38,6 +38,8 @@ download_dependency() {
local url=$1
local out=$2
+ echo "Downloading ${url}" 1>&2
+
wget --quiet --continue --output-document="${out}" "${url}" || \
(echo "Failed downloading ${url}" 1>&2; exit 1)
}
diff --git a/dev/tasks/tasks.yml b/dev/tasks/tasks.yml
index 523e9a1fbf8..65e22508bcd 100644
--- a/dev/tasks/tasks.yml
+++ b/dev/tasks/tasks.yml
@@ -382,15 +382,6 @@ tasks:
UBUNTU: 22.04
image: ubuntu-cpp-bundled
- test-ubuntu-24.04-cpp-bundled-offline:
- ci: github
- template: docker-tests/github.linux.yml
- params:
- env:
- UBUNTU: 24.04
- image: ubuntu-cpp-bundled-offline
- timeout: 120
-
test-ubuntu-24.04-cpp-gcc-13-bundled:
ci: github
template: docker-tests/github.linux.yml