Skip to content

WIP: [CI][GPU] Test runs-on with cuda runners #3701

WIP: [CI][GPU] Test runs-on with cuda runners

WIP: [CI][GPU] Test runs-on with cuda runners #3701

Workflow file for this run

# 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.
name: C++ Extra
on:
push:
branches:
- '**'
- '!dependabot/**'
paths:
- '.dockerignore'
- '.github/workflows/check_labels.yml'
- '.github/workflows/cpp_extra.yml'
- '.github/workflows/report_ci.yml'
- 'ci/conda_env_*'
- 'ci/docker/**'
- 'ci/scripts/ccache_setup.sh'
- 'ci/scripts/cpp_*'
- 'ci/scripts/install_azurite.sh'
- 'ci/scripts/install_gcs_testbench.sh'
- 'ci/scripts/install_minio.sh'
- 'ci/scripts/msys2_*'
- 'ci/scripts/util_*'
- 'cpp/**'
- 'compose.yaml'
- 'format/Flight.proto'
- 'testing'
tags:
- '**'
pull_request:
paths:
- '.dockerignore'
- '.github/workflows/check_labels.yml'
- '.github/workflows/cpp_extra.yml'
- '.github/workflows/report_ci.yml'
- 'ci/conda_env_*'
- 'ci/docker/**'
- 'ci/scripts/ccache_setup.sh'
- 'ci/scripts/cpp_*'
- 'ci/scripts/install_azurite.sh'
- 'ci/scripts/install_gcs_testbench.sh'
- 'ci/scripts/install_minio.sh'
- 'ci/scripts/msys2_*'
- 'ci/scripts/util_*'
- 'cpp/**'
- 'compose.yaml'
- 'format/Flight.proto'
- 'testing'
types:
- labeled
- opened
- reopened
- synchronize
schedule:
- cron: |
0 0 * * *
concurrency:
group: ${{ github.repository }}-${{ github.head_ref || github.sha }}-${{ github.workflow }}
cancel-in-progress: true
permissions:
contents: read
jobs:
check-labels:
if: github.event_name != 'schedule' || github.repository == 'apache/arrow'
uses: ./.github/workflows/check_labels.yml
secrets: inherit
with:
parent-workflow: cpp_extra
linux-runner:
name: Test instance from runs-on
runs-on: runs-on=${{ github.run_id }}/runner=2cpu-linux-x64
steps:
- run: echo "Hello from x64!"
cuda-cpp:
needs: check-labels
if: >-
needs.check-labels.outputs.force == 'true' ||
contains(fromJSON(needs.check-labels.outputs.ci-extra-labels || '[]'), 'CI: Extra') ||
contains(fromJSON(needs.check-labels.outputs.ci-extra-labels || '[]'), 'CI: Extra: C++')
name: CUDA 13.0.2 C++ on Ubuntu 24.04
runs-on: "runs-on=${{ github.run_id }}/family=g4dn.xlarge/image=ubuntu24-gpu-x64"
env:
CUDA: "13.0.2"
UBUNTU: "24.04"
steps:
- name: Display NVIDIA SMI details
run: |
nvidia-smi
nvidia-smi -L
nvidia-smi -q -d Memory
- name: Ensure Docker is available with GPU support
run: docker run --rm --runtime=nvidia --gpus all ubuntu nvidia-smi
- name: Checkout Arrow
uses: actions/checkout@v6
with:
fetch-depth: 0
submodules: recursive
- name: Setup Python
uses: actions/setup-python@v6
with:
python-version: 3
- name: Setup Archery
run: python3 -m pip install -e dev/archery[docker]
- name: Execute Docker Build
env:
ARCHERY_DOCKER_USER: ${{ github.actor }}
ARCHERY_DOCKER_PASSWORD: ${{ secrets.GITHUB_TOKEN }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
source arrow/ci/scripts/util_enable_core_dumps.sh
archery docker run \
ubuntu-cuda-cpp
- name: Docker Push
if: >-
success() &&
github.event_name == 'push' &&
github.ref_name == 'main'
env:
ARCHERY_DOCKER_USER: ${{ github.actor }}
ARCHERY_DOCKER_PASSWORD: ${{ secrets.GITHUB_TOKEN }}
continue-on-error: true
run: archery docker push ubuntu-cuda-cpp
report-extra-cpp:
if: github.event_name == 'schedule' && always()
needs:
- cuda-cpp
uses: ./.github/workflows/report_ci.yml
secrets: inherit