Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 28 additions & 4 deletions .github/workflows/cpp.yml
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ jobs:
name: ${{ matrix.title }}
runs-on: ${{ matrix.runs-on }}
if: ${{ !contains(github.event.pull_request.title, 'WIP') }}
timeout-minutes: 75
timeout-minutes: ${{ matrix.timeout || 75 }}
strategy:
fail-fast: false
matrix:
Expand All @@ -102,6 +102,15 @@ jobs:
runs-on: ubuntu-24.04-arm
title: ARM64 Ubuntu 22.04 C++
ubuntu: 22.04
- arch: riscv64
clang-tools: 18
image: ubuntu-cpp
llvm: 18
runs-on: ubuntu-24.04-riscv
timeout: 300
title: RISCV64 Ubuntu 24.04 C++
ubuntu: 24.04
Comment on lines +105 to +112
Copy link

Copilot AI Mar 22, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The new riscv64 job will likely run with reduced filesystem test coverage: on riscv64, ci/scripts/install_minio.sh and ci/scripts/install_gcs_testbench.sh currently skip installation for unsupported architectures, and ci/scripts/cpp_test.sh then excludes arrow-s3fs-test / arrow-gcsfs-test when minio / storage-testbench aren’t present. If the intent is a “regular” C++ CI job, consider adding riscv64 support for these dependencies (or making the reduced coverage explicit in the workflow/job config).

Suggested change
- arch: riscv64
clang-tools: 18
image: ubuntu-cpp
llvm: 18
runs-on: ubuntu-24.04-riscv
title: RISCV64 Ubuntu 24.04 C++
ubuntu: 24.04
# NOTE: On riscv64, MinIO and the GCS storage testbench are not installed,
# so S3/GCS filesystem tests (arrow-s3fs-test / arrow-gcsfs-test) run with
# reduced coverage or are skipped. This job is intentionally marked as such.
- arch: riscv64
clang-tools: 18
image: ubuntu-cpp
llvm: 18
runs-on: ubuntu-24.04-riscv
title: RISCV64 Ubuntu 24.04 C++ (reduced filesystem tests)
ubuntu: 24.04
filesystem-tests: reduced

Copilot uses AI. Check for mistakes.
buildkit: "0"
env:
ARCH: ${{ matrix.arch }}
ARROW_SIMD_LEVEL: ${{ matrix.simd-level }}
Expand All @@ -128,17 +137,32 @@ jobs:
python-version: 3
- name: Setup Python on self-hosted runner
if: |
contains(matrix.runs-on, 'self-hosted')
contains(matrix.runs-on, 'self-hosted') ||
matrix.arch == 'riscv64'
run: |
sudo apt update
sudo apt install -y --no-install-recommends python3 python3-dev python3-pip
python3 -m pip install -U pip
python3 -m pip install --break-system-packages -U pip
echo "$HOME/.local/bin" >> $GITHUB_PATH
- name: Setup Docker on RISE runner
if: matrix.arch == 'riscv64'
run: |
# Install Docker Compose v2 plugin (not in Ubuntu riscv64 repos)
# Can't upgrade Docker daemon mid-job (no systemd to restart)
# so we disable BuildKit to work around the HTTP/HTTPS issue
COMPOSE_VERSION="v5.1.1"
sudo mkdir -p /usr/local/lib/docker/cli-plugins
sudo curl -SL "https://github.com/docker/compose/releases/download/${COMPOSE_VERSION}/docker-compose-linux-riscv64" \
-o /usr/local/lib/docker/cli-plugins/docker-compose
sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose
docker compose version
- name: Setup Archery
run: python3 -m pip install -e dev/archery[docker]
run: python3 -m pip install --break-system-packages -e dev/archery[docker]
- name: Execute Docker Build
env:
ARCHERY_DOCKER_USER: ${{ secrets.DOCKERHUB_USER }}
ARCHERY_DOCKER_PASSWORD: ${{ secrets.DOCKERHUB_TOKEN }}
DOCKER_BUILDKIT: ${{ matrix.buildkit || '1' }}
run: |
# GH-40558: reduce ASLR to avoid ASAN/LSAN crashes
sudo sysctl -w vm.mmap_rnd_bits=28
Expand Down
2 changes: 1 addition & 1 deletion ci/scripts/install_minio.sh
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ archs=([x86_64]=amd64
[s390x]=s390x)

arch=$(uname -m)
if [ -z "${archs[$arch]}" ]; then
if [ -z "${archs[$arch]:-}" ]; then
echo "Unsupported architecture: ${arch}"
exit 0
fi
Expand Down
Loading