Skip to content
Draft
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
50 changes: 38 additions & 12 deletions .github/workflows/pr.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
name: pr
# Temporary no-op marker for a complete PR-workflow timing run.
on:
push:
branches:
Expand Down Expand Up @@ -98,19 +99,28 @@ jobs:
- 'cpp/libcudf_kafka/include/**'
- 'ci/build_docs.sh'
- 'python/**'
test_cpp:
test_cpp_common:
- 'conda/recipes/libcudf/**'
- 'RAPIDS_BRANCH'
- 'build.sh'
- 'dependencies.yaml'
- 'ci/build_cpp.sh'
- 'ci/test_cpp.sh'
- 'ci/test_cpp_common.sh'
- '.github/workflows/pr.yaml'
test_cpp_libcudf:
- 'ci/run_cudf_ctests.sh'
- 'cpp/tests/**'
test_cpp_examples:
- 'ci/run_cudf_examples.sh'
- 'cpp/examples/**'
test_cpp_kafka:
- 'ci/run_cudf_kafka_ctests.sh'
- 'cpp/libcudf_kafka/tests/**'
test_cpp_streaming:
- 'ci/run_cudf_streaming_ctests.sh'
- '.github/workflows/pr.yaml'
- 'cpp/libcudf_streaming/examples/**'
- 'cpp/libcudf_streaming/tests/**'
cpp_test_files:
- 'cpp/examples/**'
- 'cpp/libcudf_kafka/tests/**'
Expand Down Expand Up @@ -169,20 +179,23 @@ jobs:
- '.github/workflows/pr.yaml'
test_python_cudf:
- 'python/cudf/**'
test_python_other:
test_python_dask_cudf:
- 'python/dask_cudf/**'
- 'ci/run_dask_cudf_pytests.sh'
test_python_cudf_kafka:
- 'python/cudf_kafka/**'
- 'python/custreamz/**'
- 'ci/test_python_other.sh'
- 'ci/run_cudf_kafka_pytests.sh'
- 'ci/run_cudf_streaming_pytests.sh'
test_python_custreamz:
- 'python/custreamz/**'
- 'ci/run_custreamz_pytests.sh'
- 'ci/run_dask_cudf_pytests.sh'
test_python_other_common:
- 'ci/test_python_other.sh'
test_python_cudf_polars:
- 'python/cudf_polars/**'
test_python_cudf_streaming:
- 'python/cudf_streaming/**'
- 'python/libcudf_streaming/**'
- 'ci/run_cudf_streaming_pytests.sh'
test_python_conda_builds:
- 'conda/**'
- 'build.sh'
Expand Down Expand Up @@ -306,10 +319,16 @@ jobs:
pull-requests: read
secrets: inherit # zizmor: ignore[secrets-inherit]
uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-tests.yaml@main
if: fromJSON(needs.changed-files.outputs.changed_file_groups).cpp_build_inputs || fromJSON(needs.changed-files.outputs.changed_file_groups).cpp_test_files || fromJSON(needs.changed-files.outputs.changed_file_groups).test_cpp
if: fromJSON(needs.changed-files.outputs.changed_file_groups).cpp_build_inputs || fromJSON(needs.changed-files.outputs.changed_file_groups).test_cpp_common || fromJSON(needs.changed-files.outputs.changed_file_groups).test_cpp_libcudf || fromJSON(needs.changed-files.outputs.changed_file_groups).test_cpp_examples || fromJSON(needs.changed-files.outputs.changed_file_groups).test_cpp_kafka || fromJSON(needs.changed-files.outputs.changed_file_groups).test_cpp_streaming
with:
build_type: pull-request
script: ci/test_cpp.sh
script: >-
env
RUN_LIBCUDF_TESTS=${{ fromJSON(needs.changed-files.outputs.changed_file_groups).cpp_build_inputs || fromJSON(needs.changed-files.outputs.changed_file_groups).test_cpp_common || fromJSON(needs.changed-files.outputs.changed_file_groups).test_cpp_libcudf }}
RUN_EXAMPLES_TESTS=${{ fromJSON(needs.changed-files.outputs.changed_file_groups).cpp_build_inputs || fromJSON(needs.changed-files.outputs.changed_file_groups).test_cpp_common || fromJSON(needs.changed-files.outputs.changed_file_groups).test_cpp_examples }}
RUN_LIBCUDF_KAFKA_TESTS=${{ fromJSON(needs.changed-files.outputs.changed_file_groups).cpp_build_inputs || fromJSON(needs.changed-files.outputs.changed_file_groups).test_cpp_common || fromJSON(needs.changed-files.outputs.changed_file_groups).test_cpp_kafka }}
RUN_LIBCUDF_STREAMING_TESTS=${{ fromJSON(needs.changed-files.outputs.changed_file_groups).cpp_build_inputs || fromJSON(needs.changed-files.outputs.changed_file_groups).test_cpp_common || fromJSON(needs.changed-files.outputs.changed_file_groups).test_cpp_streaming }}
ci/test_cpp.sh
# https://github.com/NVIDIA/cudf/issues/23498
matrix_filter: map(select(.GPU != "gb300" and .GPU != "gh200"))
conda-python-build:
Expand Down Expand Up @@ -370,12 +389,19 @@ jobs:
pull-requests: read
secrets: inherit # zizmor: ignore[secrets-inherit]
uses: rapidsai/shared-workflows/.github/workflows/conda-python-tests.yaml@main
if: fromJSON(needs.changed-files.outputs.changed_file_groups).cpp_build_inputs || fromJSON(needs.changed-files.outputs.changed_file_groups).test_python_all || fromJSON(needs.changed-files.outputs.changed_file_groups).test_python_other || fromJSON(needs.changed-files.outputs.changed_file_groups).test_python_cudf_polars || fromJSON(needs.changed-files.outputs.changed_file_groups).test_python_cudf_streaming || fromJSON(needs.changed-files.outputs.changed_file_groups).test_python_conda_builds || fromJSON(needs.changed-files.outputs.changed_file_groups).test_python_conda_common || fromJSON(needs.changed-files.outputs.changed_file_groups).test_python_cudf_polars_runner
if: fromJSON(needs.changed-files.outputs.changed_file_groups).cpp_build_inputs || fromJSON(needs.changed-files.outputs.changed_file_groups).test_python_all || fromJSON(needs.changed-files.outputs.changed_file_groups).test_python_dask_cudf || fromJSON(needs.changed-files.outputs.changed_file_groups).test_python_cudf_kafka || fromJSON(needs.changed-files.outputs.changed_file_groups).test_python_custreamz || fromJSON(needs.changed-files.outputs.changed_file_groups).test_python_other_common || fromJSON(needs.changed-files.outputs.changed_file_groups).test_python_cudf_polars || fromJSON(needs.changed-files.outputs.changed_file_groups).test_python_cudf_streaming || fromJSON(needs.changed-files.outputs.changed_file_groups).test_python_conda_builds || fromJSON(needs.changed-files.outputs.changed_file_groups).test_python_conda_common || fromJSON(needs.changed-files.outputs.changed_file_groups).test_python_cudf_polars_runner
with:
build_type: pull-request
# https://github.com/NVIDIA/cudf/pull/22381/changes#r3196736965
container-options: "--cap-add CAP_SYS_PTRACE --shm-size=8g --ulimit=nofile=1000000:1000000"
script: "ci/test_python_other.sh"
script: >-
env
RUN_DASK_CUDF_TESTS=${{ fromJSON(needs.changed-files.outputs.changed_file_groups).cpp_build_inputs || fromJSON(needs.changed-files.outputs.changed_file_groups).test_python_all || fromJSON(needs.changed-files.outputs.changed_file_groups).test_python_dask_cudf || fromJSON(needs.changed-files.outputs.changed_file_groups).test_python_conda_builds || fromJSON(needs.changed-files.outputs.changed_file_groups).test_python_conda_common || fromJSON(needs.changed-files.outputs.changed_file_groups).test_python_other_common }}
RUN_CUDF_KAFKA_TESTS=${{ fromJSON(needs.changed-files.outputs.changed_file_groups).cpp_build_inputs || fromJSON(needs.changed-files.outputs.changed_file_groups).test_python_all || fromJSON(needs.changed-files.outputs.changed_file_groups).test_python_cudf_kafka || fromJSON(needs.changed-files.outputs.changed_file_groups).test_python_conda_builds || fromJSON(needs.changed-files.outputs.changed_file_groups).test_python_conda_common || fromJSON(needs.changed-files.outputs.changed_file_groups).test_python_other_common }}
RUN_CUSTREAMZ_TESTS=${{ fromJSON(needs.changed-files.outputs.changed_file_groups).cpp_build_inputs || fromJSON(needs.changed-files.outputs.changed_file_groups).test_python_all || fromJSON(needs.changed-files.outputs.changed_file_groups).test_python_custreamz || fromJSON(needs.changed-files.outputs.changed_file_groups).test_python_conda_builds || fromJSON(needs.changed-files.outputs.changed_file_groups).test_python_conda_common || fromJSON(needs.changed-files.outputs.changed_file_groups).test_python_other_common }}
RUN_CUDF_POLARS_TESTS=${{ fromJSON(needs.changed-files.outputs.changed_file_groups).cpp_build_inputs || fromJSON(needs.changed-files.outputs.changed_file_groups).test_python_all || fromJSON(needs.changed-files.outputs.changed_file_groups).test_python_cudf_polars || fromJSON(needs.changed-files.outputs.changed_file_groups).test_python_cudf_polars_runner || fromJSON(needs.changed-files.outputs.changed_file_groups).test_python_conda_builds || fromJSON(needs.changed-files.outputs.changed_file_groups).test_python_conda_common || fromJSON(needs.changed-files.outputs.changed_file_groups).test_python_other_common }}
RUN_CUDF_STREAMING_TESTS=${{ fromJSON(needs.changed-files.outputs.changed_file_groups).cpp_build_inputs || fromJSON(needs.changed-files.outputs.changed_file_groups).test_python_all || fromJSON(needs.changed-files.outputs.changed_file_groups).test_python_cudf_streaming || fromJSON(needs.changed-files.outputs.changed_file_groups).test_python_conda_builds || fromJSON(needs.changed-files.outputs.changed_file_groups).test_python_conda_common || fromJSON(needs.changed-files.outputs.changed_file_groups).test_python_other_common }}
ci/test_python_other.sh
# https://github.com/NVIDIA/cudf/issues/23498
matrix_filter: map(select(.GPU != "gb300" and .GPU != "gh200"))
# Build and test the cuDF Java JAR for every Maven classifier.
Expand Down Expand Up @@ -723,7 +749,7 @@ jobs:
steps:
- id: shards
env:
NUM_SHARDS: 2
NUM_SHARDS: 3
run: |
{
echo "num_shards=${NUM_SHARDS}"
Expand Down
21 changes: 15 additions & 6 deletions ci/test_cpp.sh
Original file line number Diff line number Diff line change
Expand Up @@ -9,30 +9,39 @@ cd "$(dirname "$(realpath "${BASH_SOURCE[0]}")")"/../

source ./ci/test_cpp_common.sh

RUN_LIBCUDF_TESTS="${RUN_LIBCUDF_TESTS:-true}"
RUN_EXAMPLES_TESTS="${RUN_EXAMPLES_TESTS:-true}"
RUN_LIBCUDF_KAFKA_TESTS="${RUN_LIBCUDF_KAFKA_TESTS:-true}"
RUN_LIBCUDF_STREAMING_TESTS="${RUN_LIBCUDF_STREAMING_TESTS:-true}"

EXITCODE=0
trap "EXITCODE=1" ERR
set +e

# Run gtests from the libcudf-tests and libcudf-streaming-tests packages
export GTEST_OUTPUT=xml:${RAPIDS_TESTS_DIR}/

rapids-logger "Run libcudf gtests"
timeout 30m ./ci/run_cudf_ctests.sh -j20
SUITEERROR=$?
SUITEERROR=0

if [[ "${RUN_LIBCUDF_TESTS}" == "true" ]]; then
rapids-logger "Run libcudf gtests"
timeout 30m ./ci/run_cudf_ctests.sh -j20
SUITEERROR=$?
fi

if (( SUITEERROR == 0 )); then
if (( SUITEERROR == 0 )) && [[ "${RUN_EXAMPLES_TESTS}" == "true" ]]; then
rapids-logger "Run libcudf examples"
timeout 30m ./ci/run_cudf_examples.sh
SUITEERROR=$?
fi

if (( SUITEERROR == 0 )); then
if (( SUITEERROR == 0 )) && [[ "${RUN_LIBCUDF_KAFKA_TESTS}" == "true" ]]; then
rapids-logger "Run libcudf_kafka gtests"
timeout 30m ./ci/run_cudf_kafka_ctests.sh -j20
SUITEERROR=$?
fi

if (( SUITEERROR == 0 )); then
if (( SUITEERROR == 0 )) && [[ "${RUN_LIBCUDF_STREAMING_TESTS}" == "true" ]]; then
rapids-logger "Run libcudf_streaming gtests"
# cudf_streaming contains distributed tests, and running tests in
# parallel results in resource starvation CI env.
Expand Down
96 changes: 56 additions & 40 deletions ci/test_python_other.sh
Original file line number Diff line number Diff line change
Expand Up @@ -10,53 +10,69 @@ cd "$(dirname "$(realpath "${BASH_SOURCE[0]}")")"/../
# Common setup steps shared by Python test jobs
source ./ci/test_python_common.sh test_python_other

RUN_DASK_CUDF_TESTS="${RUN_DASK_CUDF_TESTS:-true}"
RUN_CUDF_KAFKA_TESTS="${RUN_CUDF_KAFKA_TESTS:-true}"
RUN_CUSTREAMZ_TESTS="${RUN_CUSTREAMZ_TESTS:-true}"
RUN_CUDF_POLARS_TESTS="${RUN_CUDF_POLARS_TESTS:-true}"
RUN_CUDF_STREAMING_TESTS="${RUN_CUDF_STREAMING_TESTS:-true}"

rapids-logger "Check GPU usage"
nvidia-smi
rapids-print-env
EXITCODE=0
trap "EXITCODE=1" ERR
set +e

rapids-logger "pytest dask_cudf"
timeout 30m ./ci/run_dask_cudf_pytests.sh \
--junitxml="${RAPIDS_TESTS_DIR}/junit-dask-cudf.xml" \
--numprocesses=8 \
--dist=worksteal \
--cov-config=../.coveragerc \
--cov=dask_cudf \
--cov-report=xml:"${RAPIDS_COVERAGE_DIR}/dask-cudf-coverage.xml" \
--cov-report=term

rapids-logger "pytest cudf_kafka"
timeout 30m ./ci/run_cudf_kafka_pytests.sh \
--junitxml="${RAPIDS_TESTS_DIR}/junit-cudf-kafka.xml"

rapids-logger "pytest custreamz"
timeout 30m ./ci/run_custreamz_pytests.sh \
--junitxml="${RAPIDS_TESTS_DIR}/junit-custreamz.xml" \
--numprocesses=8 \
--dist=worksteal \
--cov-config=../.coveragerc \
--cov=custreamz \
--cov-report=xml:"${RAPIDS_COVERAGE_DIR}/custreamz-coverage.xml" \
--cov-report=term

rapids-logger "pytest cudf-polars"
# Fail fast (-x) rather than trying to continue because failed tests pollute the state
./ci/run_cudf_polars_pytests.sh \
-x \
--junitxml="${RAPIDS_TESTS_DIR}/junit-cudf-polars.xml" \
--numprocesses=4 \
--dist=worksteal \
--cov-config=./pyproject.toml \
--cov=cudf_polars \
--cov-report=xml:"${RAPIDS_COVERAGE_DIR}/cudf-polars-coverage.xml" \
--cov-report=term \
--durations=10 --durations-min=10

rapids-logger "pytest cudf_streaming"
timeout 30m ./ci/run_cudf_streaming_pytests.sh \
--junitxml="${RAPIDS_TESTS_DIR}/junit-cudf-streaming.xml"
if [[ "${RUN_DASK_CUDF_TESTS}" == "true" ]]; then
rapids-logger "pytest dask_cudf"
timeout 30m ./ci/run_dask_cudf_pytests.sh \
--junitxml="${RAPIDS_TESTS_DIR}/junit-dask-cudf.xml" \
--numprocesses=8 \
--dist=worksteal \
--cov-config=../.coveragerc \
--cov=dask_cudf \
--cov-report=xml:"${RAPIDS_COVERAGE_DIR}/dask-cudf-coverage.xml" \
--cov-report=term
fi

if [[ "${RUN_CUDF_KAFKA_TESTS}" == "true" ]]; then
rapids-logger "pytest cudf_kafka"
timeout 30m ./ci/run_cudf_kafka_pytests.sh \
--junitxml="${RAPIDS_TESTS_DIR}/junit-cudf-kafka.xml"
fi

if [[ "${RUN_CUSTREAMZ_TESTS}" == "true" ]]; then
rapids-logger "pytest custreamz"
timeout 30m ./ci/run_custreamz_pytests.sh \
--junitxml="${RAPIDS_TESTS_DIR}/junit-custreamz.xml" \
--numprocesses=8 \
--dist=worksteal \
--cov-config=../.coveragerc \
--cov=custreamz \
--cov-report=xml:"${RAPIDS_COVERAGE_DIR}/custreamz-coverage.xml" \
--cov-report=term
fi

if [[ "${RUN_CUDF_POLARS_TESTS}" == "true" ]]; then
rapids-logger "pytest cudf-polars"
# Fail fast (-x) rather than trying to continue because failed tests pollute the state
./ci/run_cudf_polars_pytests.sh \
-x \
--junitxml="${RAPIDS_TESTS_DIR}/junit-cudf-polars.xml" \
--numprocesses=4 \
--dist=worksteal \
--cov-config=./pyproject.toml \
--cov=cudf_polars \
--cov-report=xml:"${RAPIDS_COVERAGE_DIR}/cudf-polars-coverage.xml" \
--cov-report=term \
--durations=10 --durations-min=10
fi

if [[ "${RUN_CUDF_STREAMING_TESTS}" == "true" ]]; then
rapids-logger "pytest cudf_streaming"
timeout 30m ./ci/run_cudf_streaming_pytests.sh \
--junitxml="${RAPIDS_TESTS_DIR}/junit-cudf-streaming.xml"
fi

rapids-logger "Test script exiting with value: $EXITCODE"
exit ${EXITCODE}
2 changes: 2 additions & 0 deletions cpp/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@

cmake_minimum_required(VERSION 4.0 FATAL_ERROR)

# Temporary no-op marker for a complete PR-workflow timing run.

include(../cmake/rapids_config.cmake)
include(rapids-cmake)
include(rapids-cpm)
Expand Down
4 changes: 3 additions & 1 deletion python/cudf/cudf/pandas/__init__.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
# SPDX-FileCopyrightText: Copyright (c) 2023-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-FileCopyrightText: Copyright (c) 2023-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0

# Temporary no-op marker for a complete PR-workflow timing run.

import os
import warnings

Expand Down
Loading
Loading