Merge branch 'branch-25.12' into hdbscan-int64-ref #5512
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: pr | |
on: | |
push: | |
branches: | |
- "pull-request/[0-9]+" | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
# Please keep pr-builder as the top job here | |
pr-builder: | |
needs: | |
- check-nightly-ci | |
- changed-files | |
- checks | |
- clang-tidy | |
- conda-cpp-build | |
- conda-cpp-tests | |
- conda-cpp-checks | |
- conda-python-build | |
- conda-python-tests-singlegpu | |
- conda-python-tests-dask | |
- conda-python-scikit-learn-accel-tests | |
- conda-python-cuml-accel-upstream-tests | |
- conda-notebook-tests | |
- docs-build | |
- telemetry-setup | |
- wheel-build-libcuml | |
- wheel-build-cuml | |
- wheel-tests-cuml | |
- wheel-tests-cuml-dask | |
- devcontainer | |
secrets: inherit | |
uses: rapidsai/shared-workflows/.github/workflows/[email protected] | |
if: always() | |
with: | |
needs: ${{ toJSON(needs) }} | |
telemetry-setup: | |
runs-on: ubuntu-latest | |
continue-on-error: true | |
env: | |
OTEL_SERVICE_NAME: "pr-cuml" | |
steps: | |
- name: Telemetry setup | |
if: ${{ vars.TELEMETRY_ENABLED == 'true' }} | |
uses: rapidsai/shared-actions/telemetry-dispatch-stash-base-env-vars@main | |
check-nightly-ci: | |
runs-on: ubuntu-latest | |
env: | |
RAPIDS_GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
steps: | |
- name: Check if nightly CI is passing | |
uses: rapidsai/shared-actions/check_nightly_success/dispatch@main | |
with: | |
repo: cuml | |
max_days_without_success: 7 | |
changed-files: | |
secrets: inherit | |
needs: telemetry-setup | |
uses: rapidsai/shared-workflows/.github/workflows/[email protected] | |
with: | |
files_yaml: | | |
test_cpp: | |
- '**' | |
- '!.devcontainer/**' | |
- '!.pre-commit-config.yaml' | |
- '!CONTRIBUTING.md' | |
- '!README.md' | |
- '!ci/release/update-version.sh' | |
- '!docs/**' | |
- '!img/**' | |
- '!notebooks/**' | |
- '!python/**' | |
- '!thirdparty/LICENSES/**' | |
test_notebooks: | |
- '**' | |
- '!.devcontainer/**' | |
- '!.pre-commit-config.yaml' | |
- '!CONTRIBUTING.md' | |
- '!README.md' | |
- '!ci/release/update-version.sh' | |
- '!thirdparty/LICENSES/**' | |
test_python: | |
- '**' | |
- '!.devcontainer/**' | |
- '!.pre-commit-config.yaml' | |
- '!CONTRIBUTING.md' | |
- '!README.md' | |
- '!ci/release/update-version.sh' | |
- '!docs/**' | |
- '!img/**' | |
- '!notebooks/**' | |
- '!thirdparty/LICENSES/**' | |
checks: | |
secrets: inherit | |
needs: telemetry-setup | |
uses: rapidsai/shared-workflows/.github/workflows/[email protected] | |
with: | |
enable_check_generated_files: false | |
ignored_pr_jobs: >- | |
optional-job-conda-python-tests-cudf-pandas-integration telemetry-summarize | |
clang-tidy: | |
needs: checks | |
secrets: inherit | |
uses: rapidsai/shared-workflows/.github/workflows/[email protected] | |
with: | |
build_type: pull-request | |
node_type: "cpu8" | |
arch: "amd64" | |
container_image: "rapidsai/ci-conda:25.12-latest" | |
script: "ci/run_clang_tidy.sh" | |
conda-cpp-build: | |
needs: checks | |
secrets: inherit | |
uses: rapidsai/shared-workflows/.github/workflows/[email protected] | |
with: | |
build_type: pull-request | |
script: ci/build_cpp.sh | |
conda-cpp-tests: | |
needs: [conda-cpp-build, changed-files] | |
secrets: inherit | |
uses: rapidsai/shared-workflows/.github/workflows/[email protected] | |
if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_cpp | |
with: | |
build_type: pull-request | |
script: ci/test_cpp.sh | |
conda-cpp-checks: | |
needs: conda-cpp-build | |
secrets: inherit | |
uses: rapidsai/shared-workflows/.github/workflows/[email protected] | |
with: | |
build_type: pull-request | |
conda-python-build: | |
needs: conda-cpp-build | |
secrets: inherit | |
uses: rapidsai/shared-workflows/.github/workflows/[email protected] | |
with: | |
build_type: pull-request | |
script: ci/build_python.sh | |
conda-python-tests-singlegpu: | |
needs: [conda-python-build, changed-files] | |
secrets: inherit | |
uses: rapidsai/shared-workflows/.github/workflows/[email protected] | |
if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_python | |
with: | |
build_type: pull-request | |
script: "ci/test_python_singlegpu.sh" | |
optional-job-conda-python-tests-cudf-pandas-integration: | |
needs: [conda-python-build, changed-files] | |
secrets: inherit | |
uses: rapidsai/shared-workflows/.github/workflows/[email protected] | |
if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_python | |
with: | |
# Select the amd64 entry with the highest CUDA and Python version | |
matrix_filter: map(select(.ARCH=="amd64")) | [max_by([.CUDA_VER,.PY_VER]|map(split(".")|map(tonumber)))] | |
build_type: pull-request | |
script: "ci/test_python_integration.sh" | |
conda-python-tests-dask: | |
needs: [conda-python-build, changed-files] | |
secrets: inherit | |
uses: rapidsai/shared-workflows/.github/workflows/[email protected] | |
if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_python | |
with: | |
build_type: pull-request | |
script: "ci/test_python_dask.sh" | |
conda-python-scikit-learn-accel-tests: | |
needs: [conda-python-build, changed-files] | |
secrets: inherit | |
uses: rapidsai/shared-workflows/.github/workflows/[email protected] | |
if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_python | |
with: | |
build_type: pull-request | |
script: "ci/test_python_scikit_learn_tests.sh" | |
# One run for each dependencies config on amd64, breaking ties by highest Python version | |
matrix_filter: '( | |
map(select(.ARCH == "amd64")) | |
| sort_by(.PY_VER) | |
| unique_by(.DEPENDENCIES) | |
) | |
+ | |
( | |
map(select(.ARCH == "amd64")) | |
| map(select(.DEPENDENCIES == "oldest")) | |
| sort_by(.PY_VER) | |
| map(.DEPENDENCIES = "intermediate") | |
)' | |
conda-python-cuml-accel-upstream-tests: | |
needs: [conda-python-build, changed-files] | |
secrets: inherit | |
uses: rapidsai/shared-workflows/.github/workflows/[email protected] | |
if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_python | |
with: | |
build_type: pull-request | |
script: "ci/test_python_cuml_accel_upstream.sh" | |
# One run for each dependencies config on amd64, breaking ties by highest Python version | |
matrix_filter: map(select(.ARCH == "amd64")) | sort_by(.PY_VER) | unique_by(.DEPENDENCIES) | |
conda-notebook-tests: | |
needs: [conda-python-build, changed-files] | |
secrets: inherit | |
uses: rapidsai/shared-workflows/.github/workflows/[email protected] | |
if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_notebooks | |
with: | |
build_type: pull-request | |
node_type: "gpu-l4-latest-1" | |
arch: "amd64" | |
container_image: "rapidsai/ci-conda:25.12-latest" | |
script: "ci/test_notebooks.sh" | |
docs-build: | |
needs: conda-python-build | |
secrets: inherit | |
uses: rapidsai/shared-workflows/.github/workflows/[email protected] | |
with: | |
build_type: pull-request | |
node_type: "gpu-l4-latest-1" | |
arch: "amd64" | |
container_image: "rapidsai/ci-conda:25.12-latest" | |
script: "ci/build_docs.sh" | |
wheel-build-libcuml: | |
needs: checks | |
secrets: inherit | |
uses: rapidsai/shared-workflows/.github/workflows/[email protected] | |
with: | |
build_type: pull-request | |
branch: ${{ inputs.branch }} | |
sha: ${{ inputs.sha }} | |
date: ${{ inputs.date }} | |
script: ci/build_wheel_libcuml.sh | |
# build for every combination of arch and CUDA version, but only for the latest Python | |
matrix_filter: group_by([.ARCH, (.CUDA_VER|split(".")|map(tonumber)|.[0])]) | map(max_by(.PY_VER|split(".")|map(tonumber))) | |
package-name: libcuml | |
package-type: cpp | |
wheel-build-cuml: | |
needs: [checks, wheel-build-libcuml] | |
secrets: inherit | |
uses: rapidsai/shared-workflows/.github/workflows/[email protected] | |
with: | |
build_type: pull-request | |
script: ci/build_wheel_cuml.sh | |
package-name: cuml | |
package-type: python | |
wheel-tests-cuml: | |
needs: [wheel-build-cuml, changed-files] | |
secrets: inherit | |
uses: rapidsai/shared-workflows/.github/workflows/[email protected] | |
if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_python | |
with: | |
build_type: pull-request | |
script: ci/test_wheel.sh | |
wheel-tests-cuml-dask: | |
needs: [wheel-build-cuml, changed-files] | |
secrets: inherit | |
uses: rapidsai/shared-workflows/.github/workflows/[email protected] | |
if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_python | |
with: | |
build_type: pull-request | |
script: ci/test_wheel_dask.sh | |
devcontainer: | |
needs: telemetry-setup | |
secrets: inherit | |
uses: rapidsai/shared-workflows/.github/workflows/[email protected] | |
with: | |
arch: '["amd64", "arm64"]' | |
cuda: '["13.0"]' | |
node_type: "cpu8" | |
rapids-aux-secret-1: GIST_REPO_READ_ORG_GITHUB_TOKEN | |
env: | | |
SCCACHE_DIST_MAX_RETRIES=inf | |
SCCACHE_SERVER_LOG=sccache=debug | |
SCCACHE_DIST_FALLBACK_TO_LOCAL_COMPILE=false | |
SCCACHE_DIST_AUTH_TOKEN_VAR=RAPIDS_AUX_SECRET_1 | |
build_command: | | |
sccache --zero-stats; | |
build-all -j0 --verbose -DBUILD_TESTS=ON -DBUILD_BENCHMARKS=ON 2>&1 | tee telemetry-artifacts/build.log; | |
sccache --show-adv-stats | tee telemetry-artifacts/sccache-stats.txt; | |
telemetry-summarize: | |
# This job must use a self-hosted runner to record telemetry traces. | |
runs-on: linux-amd64-cpu4 | |
needs: pr-builder | |
if: ${{ vars.TELEMETRY_ENABLED == 'true' && !cancelled() }} | |
continue-on-error: true | |
steps: | |
- name: Telemetry summarize | |
uses: rapidsai/shared-actions/telemetry-dispatch-summarize@main | |
env: | |
GH_TOKEN: ${{ github.token }} |