Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
7a3e97e
Add third-party testing of cuml
betatim Mar 24, 2026
d81475a
Add newline
betatim Mar 24, 2026
2908f63
Run cuml compat tests also in nightlies
betatim Mar 24, 2026
a99742f
Easy as ABC
betatim Mar 24, 2026
bfb0401
Add copyright
betatim Mar 24, 2026
f7b88f2
Fix permissions
betatim Mar 25, 2026
4a94ced
Checkout cuml's source directly
betatim Apr 2, 2026
77bb224
Just one cuml is enough
betatim Apr 2, 2026
d7b463d
Remove some tests to fit within the time budget
betatim Apr 7, 2026
b0b1013
Merge remote-tracking branch 'upstream/main' into add-cuml-integratio…
betatim Apr 7, 2026
0ff6510
Add cuml as dependency
betatim Apr 8, 2026
5b55319
Workaround cryptography weirdness
betatim Apr 8, 2026
ebcccd7
Fix pytest command
betatim Apr 8, 2026
4b006d3
Different fix
betatim Apr 8, 2026
7bcee77
Merge remote-tracking branch 'upstream/main' into add-cuml-integratio…
betatim Apr 8, 2026
40752b6
Fix quotes
betatim Apr 8, 2026
10f29a2
Remove cryptography workaround attempt
betatim Apr 9, 2026
fe06695
Merge branch 'main' into add-cuml-integration-tests
betatim Apr 28, 2026
eaaa812
Remember to save after resolving conflicts
betatim Apr 28, 2026
3d52dec
Update the list of tests
betatim Apr 29, 2026
6f14852
Merge branch 'main' into add-cuml-integration-tests
betatim May 7, 2026
7497c0a
Make the cuml compat job actually optional
betatim May 8, 2026
f9fe34a
Remove exit 1
betatim May 8, 2026
96dd2c5
Merge remote-tracking branch 'upstream/main' into add-cuml-integratio…
betatim May 8, 2026
0ba43b8
Merge remote-tracking branch 'upstream/main' into add-cuml-integratio…
vyasr Jun 16, 2026
07f9ee7
Add missing permissions block to cuml-compat-tests jobs
vyasr Jun 16, 2026
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
22 changes: 21 additions & 1 deletion .github/workflows/pr.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -344,7 +344,7 @@ jobs:
uses: rapidsai/shared-workflows/.github/workflows/checks.yaml@main
with:
enable_check_generated_files: false
ignored_pr_jobs: "telemetry-summarize spark-rapids-jni"
ignored_pr_jobs: "telemetry-summarize spark-rapids-jni cuml-compat-tests"
conda-cpp-build:
needs: checks
permissions:
Expand Down Expand Up @@ -775,6 +775,26 @@ jobs:
container_image: "rapidsai/ci-conda:26.08-latest"
script: |
ci/cudf_pandas_scripts/third-party-integration/test.sh python/cudf/cudf_pandas_tests/third_party_integration_tests/dependencies.yaml
cuml-compat-tests:
needs: [conda-python-build, conda-python-build-noarch, changed-files]
permissions:
actions: read
contents: read
id-token: write
packages: read
pull-requests: read
secrets: inherit # zizmor: ignore[secrets-inherit]
uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@main
if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_python_conda && fromJSON(needs.changed-files.outputs.changed_file_groups).neither_cudf_polars_nor_dask_cudf
with:
build_type: pull-request
branch: ${{ inputs.branch }}
date: ${{ inputs.date }}
sha: ${{ inputs.sha }}
Comment thread
betatim marked this conversation as resolved.
node_type: "gpu-l4-latest-1"
continue-on-error: true
container_image: "rapidsai/ci-conda:26.06-latest"
script: "ci/test_cuml_compat.sh"
pandas-tests:
# run the Pandas unit tests using PR branch
needs: [wheel-build-cudf, changed-files]
Expand Down
18 changes: 18 additions & 0 deletions .github/workflows/test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -237,6 +237,24 @@ jobs:
script: |
ci/cudf_pandas_scripts/third-party-integration/test.sh python/cudf/cudf_pandas_tests/third_party_integration_tests/dependencies.yaml
continue-on-error: true
cuml-compat-tests:
permissions:
actions: read
contents: read
id-token: write
packages: read
pull-requests: read
secrets: inherit # zizmor: ignore[secrets-inherit]
uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@main
with:
build_type: ${{ inputs.build_type }}
branch: ${{ inputs.branch }}
date: ${{ inputs.date }}
sha: ${{ inputs.sha }}
node_type: "gpu-l4-latest-1"
continue-on-error: true
container_image: "rapidsai/ci-conda:26.06-latest"
script: "ci/test_cuml_compat.sh"
wheel-tests-cudf-polars:
permissions:
actions: read
Expand Down
47 changes: 47 additions & 0 deletions ci/test_cuml_compat.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
#!/bin/bash
# SPDX-FileCopyrightText: Copyright (c) 2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0

set -euo pipefail

cd "$(dirname "$(realpath "${BASH_SOURCE[0]}")")"/../
source ./ci/test_python_common.sh test_python_cudf test_cuml

# Clone cuml at the matching RAPIDS branch to get test files
# (the conda package doesn't ship cuml/tests/)

# This makes sure we read RAPIDS_BRANCH from the top level of the repo, no matter
# what the current working directory is.
RAPIDS_BRANCH="$(cat "$(dirname "$(realpath "${BASH_SOURCE[0]}")")"/../RAPIDS_BRANCH)"
rapids-logger "Cloning cuml at branch ${RAPIDS_BRANCH}"
git clone https://github.com/rapidsai/cuml.git --branch "${RAPIDS_BRANCH}" --depth 1 /tmp/cuml
Comment thread
betatim marked this conversation as resolved.


CUML_TESTS_DIR=/tmp/cuml/python/cuml/tests

rapids-logger "pytest cuml cuDF-compat subset"

timeout 15m python -m pytest \
--cache-clear \
"${CUML_TESTS_DIR}/test_array.py" \
"${CUML_TESTS_DIR}/test_compose.py" \
"${CUML_TESTS_DIR}/test_input_utils.py" \
"${CUML_TESTS_DIR}/test_kneighbors_classifier.py" \
"${CUML_TESTS_DIR}/test_kneighbors_regressor.py" \
"${CUML_TESTS_DIR}/test_label_encoder.py" \
"${CUML_TESTS_DIR}/test_elastic_net.py" \
"${CUML_TESTS_DIR}/test_linear_regression.py" \
"${CUML_TESTS_DIR}/test_logistic_regression.py" \
"${CUML_TESTS_DIR}/test_ridge.py" \
"${CUML_TESTS_DIR}/test_metrics.py" \
"${CUML_TESTS_DIR}/test_one_hot_encoder.py" \
"${CUML_TESTS_DIR}/test_ordinal_encoder.py" \
"${CUML_TESTS_DIR}/test_random_forest.py" \
"${CUML_TESTS_DIR}/test_reflection.py" \
"${CUML_TESTS_DIR}/test_sgd.py" \
"${CUML_TESTS_DIR}/test_split.py" \
"${CUML_TESTS_DIR}/test_svm.py" \
"${CUML_TESTS_DIR}/test_target_encoder.py" \
"${CUML_TESTS_DIR}/test_text_feature_extraction.py" \
"${CUML_TESTS_DIR}/test_train_test_split.py" \
"${CUML_TESTS_DIR}/test_validation.py"
9 changes: 9 additions & 0 deletions dependencies.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,10 @@ files:
- depends_on_libcudf
- depends_on_numba_cuda
- depends_on_numba_cuda_mlir
test_cuml:
output: none
includes:
- depends_on_cuml
test_python_pylibcudf:
output: none
includes:
Expand Down Expand Up @@ -1605,6 +1609,11 @@ dependencies:
- output_types: conda
packages:
- dask-cudf==26.8.*,>=0.0.0a0
depends_on_cuml:
common:
- output_types: conda
packages:
- cuml==26.8.*,>=0.0.0a0
depends_on_custreamz:
common:
- output_types: conda
Expand Down
Loading