Skip to content

Merge branch 'branch-25.02' into test-l4-fix #20216

Merge branch 'branch-25.02' into test-l4-fix

Merge branch 'branch-25.02' into test-l4-fix #20216

Workflow file for this run

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
# - conda-cpp-build
# - cpp-linters
# - conda-cpp-checks
# - conda-cpp-tests
# - conda-python-build
# - conda-python-cudf-tests
# - conda-python-other-tests
# - conda-java-tests
# - static-configure
# - conda-notebook-tests
# - docs-build
- wheel-build-libcudf
- wheel-build-pylibcudf
- wheel-build-cudf
- wheel-tests-cudf
# - wheel-build-cudf-polars
# - wheel-tests-cudf-polars
# - cudf-polars-polars-tests
# - wheel-build-dask-cudf
# - wheel-tests-dask-cudf
# - devcontainer
# - unit-tests-cudf-pandas
# - pandas-tests
# - pandas-tests-diff
# - telemetry-setup
secrets: inherit
uses: rapidsai/shared-workflows/.github/workflows/pr-builder.yaml@test-nvks-runners
if: always()
with:
needs: ${{ toJSON(needs) }}
# telemetry-setup:
# continue-on-error: true
# runs-on: ubuntu-latest
# env:
# OTEL_SERVICE_NAME: 'pr-cudf'
# steps:
# - name: Telemetry setup
# if: ${{ vars.TELEMETRY_ENABLED == 'true' }}
# uses: rapidsai/shared-actions/telemetry-dispatch-stash-base-env-vars@main
# check-nightly-ci:
# # Switch to ubuntu-latest once it defaults to a version of Ubuntu that
# # provides at least Python 3.11 (see
# # https://docs.python.org/3/library/datetime.html#datetime.date.fromisoformat)
# runs-on: ubuntu-24.04
# 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: cudf
# changed-files:
# secrets: inherit
# needs: telemetry-setup
# uses: rapidsai/shared-workflows/.github/workflows/changed-files.yaml@test-nvks-runners
# with:
# files_yaml: |
# test_cpp:
# - '**'
# - '!.devcontainer/**'
# - '!CONTRIBUTING.md'
# - '!README.md'
# - '!ci/cudf_pandas_scripts/**'
# - '!docs/**'
# - '!img/**'
# - '!java/**'
# - '!notebooks/**'
# - '!python/**'
# test_cudf_pandas:
# - '**'
# - '!.devcontainer/**'
# - '!CONTRIBUTING.md'
# - '!README.md'
# - '!docs/**'
# - '!img/**'
# - '!java/**'
# - '!notebooks/**'
# test_java:
# - '**'
# - '!.devcontainer/**'
# - '!CONTRIBUTING.md'
# - '!README.md'
# - '!ci/cudf_pandas_scripts/**'
# - '!docs/**'
# - '!img/**'
# - '!notebooks/**'
# - '!python/**'
# test_notebooks:
# - '**'
# - '!.devcontainer/**'
# - '!CONTRIBUTING.md'
# - '!README.md'
# - '!ci/cudf_pandas_scripts/**'
# - '!java/**'
# test_python:
# - '**'
# - '!.devcontainer/**'
# - '!CONTRIBUTING.md'
# - '!README.md'
# - '!ci/cudf_pandas_scripts/**'
# - '!docs/**'
# - '!img/**'
# - '!java/**'
# - '!notebooks/**'
# checks:
# secrets: inherit
# needs: telemetry-setup
# uses: rapidsai/shared-workflows/.github/workflows/checks.yaml@test-nvks-runners
# with:
# enable_check_generated_files: false
# ignored_pr_jobs: "telemetry-summarize"
# conda-cpp-build:
# needs: checks
# secrets: inherit
# uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-build.yaml@test-nvks-runners
# with:
# # Only test amd64 nodes on NVKS, there is no ARM capacity yet
# matrix_filter: map(select(.ARCH == "amd64"))
# build_type: pull-request
# cpp-linters:
# secrets: inherit
# needs: checks
# uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@test-nvks-runners
# with:
# build_type: pull-request
# run_script: "ci/cpp_linters.sh"
# conda-cpp-checks:
# needs: conda-cpp-build
# secrets: inherit
# uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-post-build-checks.yaml@test-nvks-runners
# with:
# build_type: pull-request
# enable_check_symbols: true
# conda-cpp-tests:
# needs: [conda-cpp-build, changed-files]
# secrets: inherit
# uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-tests.yaml@test-nvks-runners
# if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_cpp
# with:
# # Only test amd64 nodes on NVKS, there is no ARM capacity yet
# matrix_filter: map(select(.ARCH == "amd64"))
# build_type: pull-request
# conda-python-build:
# needs: conda-cpp-build
# secrets: inherit
# uses: rapidsai/shared-workflows/.github/workflows/conda-python-build.yaml@test-nvks-runners
# with:
# # Only test amd64 nodes on NVKS, there is no ARM capacity yet
# matrix_filter: map(select(.ARCH == "amd64"))
# build_type: pull-request
# conda-python-cudf-tests:
# needs: [conda-python-build, changed-files]
# secrets: inherit
# uses: rapidsai/shared-workflows/.github/workflows/conda-python-tests.yaml@test-nvks-runners
# if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_python
# with:
# # Only test amd64 nodes on NVKS, there is no ARM capacity yet
# matrix_filter: map(select(.ARCH == "amd64"))
# build_type: pull-request
# script: "ci/test_python_cudf.sh"
# conda-python-other-tests:
# # Tests for dask_cudf, custreamz, cudf_kafka are separated for CI parallelism
# needs: [conda-python-build, changed-files]
# secrets: inherit
# uses: rapidsai/shared-workflows/.github/workflows/conda-python-tests.yaml@test-nvks-runners
# if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_python
# with:
# # Only test amd64 nodes on NVKS, there is no ARM capacity yet
# matrix_filter: map(select(.ARCH == "amd64"))
# build_type: pull-request
# script: "ci/test_python_other.sh"
# conda-java-tests:
# needs: [conda-cpp-build, changed-files]
# secrets: inherit
# uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@test-nvks-runners
# if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_java
# with:
# build_type: pull-request
# node_type: "gpu-l4-latest-1-testing"
# arch: "amd64"
# container_image: "rapidsai/ci-conda:latest"
# run_script: "ci/test_java.sh"
# static-configure:
# needs: checks
# secrets: inherit
# uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@test-nvks-runners
# with:
# build_type: pull-request
# # Use the wheel container so we can skip conda solves and since our
# # primary static consumers (Spark) are not in conda anyway.
# container_image: "rapidsai/ci-wheel:latest"
# run_script: "ci/configure_cpp_static.sh"
# conda-notebook-tests:
# needs: [conda-python-build, changed-files]
# secrets: inherit
# uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@test-nvks-runners
# if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_notebooks
# with:
# build_type: pull-request
# node_type: "gpu-l4-latest-1-testing"
# arch: "amd64"
# container_image: "rapidsai/ci-conda:latest"
# run_script: "ci/test_notebooks.sh"
# docs-build:
# needs: conda-python-build
# secrets: inherit
# uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@test-nvks-runners
# with:
# build_type: pull-request
# node_type: "gpu-l4-latest-1-testing"
# arch: "amd64"
# container_image: "rapidsai/ci-conda:latest"
# run_script: "ci/build_docs.sh"
wheel-build-libcudf:
# needs: checks
secrets: inherit
uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@test-nvks-runners
with:
# build for every combination of arch and CUDA version, but only for the latest Python
# Only test amd64 nodes on NVKS, there is no ARM capacity yet
matrix_filter: map(select(.ARCH == "amd64")) | group_by([.ARCH, (.CUDA_VER|split(".")|map(tonumber)|.[0])]) | map(max_by(.PY_VER|split(".")|map(tonumber)))
build_type: pull-request
script: "ci/build_wheel_libcudf.sh"
wheel-build-pylibcudf:
# needs: [checks, wheel-build-libcudf]
needs: [wheel-build-libcudf]
secrets: inherit
uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@test-nvks-runners
with:
# Only test amd64 nodes on NVKS, there is no ARM capacity yet
matrix_filter: map(select(.ARCH == "amd64"))
build_type: pull-request
script: "ci/build_wheel_pylibcudf.sh"
wheel-build-cudf:
needs: wheel-build-pylibcudf
secrets: inherit
uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@test-nvks-runners
with:
# Only test amd64 nodes on NVKS, there is no ARM capacity yet
matrix_filter: map(select(.ARCH == "amd64"))
build_type: pull-request
script: "ci/build_wheel_cudf.sh"
wheel-tests-cudf:
# needs: [wheel-build-cudf, changed-files]
needs: [wheel-build-cudf]
secrets: inherit
uses: rapidsai/shared-workflows/.github/workflows/wheels-test.yaml@test-nvks-runners
if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_python
with:
# Only test amd64 nodes on NVKS, there is no ARM capacity yet
matrix_filter: map(select(.ARCH == "amd64"))
build_type: pull-request
script: ci/test_wheel_cudf.sh
# wheel-build-cudf-polars:
# needs: wheel-build-pylibcudf
# secrets: inherit
# uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@test-nvks-runners
# with:
# # This selects "ARCH=amd64 + the latest supported Python + CUDA".
# matrix_filter: map(select(.ARCH == "amd64")) | group_by(.CUDA_VER|split(".")|map(tonumber)|.[0]) | map(max_by([(.PY_VER|split(".")|map(tonumber)), (.CUDA_VER|split(".")|map(tonumber))]))
# build_type: pull-request
# script: "ci/build_wheel_cudf_polars.sh"
# wheel-tests-cudf-polars:
# needs: [wheel-build-cudf-polars, changed-files]
# secrets: inherit
# uses: rapidsai/shared-workflows/.github/workflows/wheels-test.yaml@test-nvks-runners
# if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_python
# with:
# # This selects "ARCH=amd64 + the latest supported Python + CUDA".
# matrix_filter: map(select(.ARCH == "amd64")) | group_by(.CUDA_VER|split(".")|map(tonumber)|.[0]) | map(max_by([(.PY_VER|split(".")|map(tonumber)), (.CUDA_VER|split(".")|map(tonumber))]))
# build_type: pull-request
# script: "ci/test_wheel_cudf_polars.sh"
# cudf-polars-polars-tests:
# needs: wheel-build-cudf-polars
# secrets: inherit
# uses: rapidsai/shared-workflows/.github/workflows/wheels-test.yaml@test-nvks-runners
# with:
# # This selects "ARCH=amd64 + the latest supported Python + CUDA".
# matrix_filter: map(select(.ARCH == "amd64")) | group_by(.CUDA_VER|split(".")|map(tonumber)|.[0]) | map(max_by([(.PY_VER|split(".")|map(tonumber)), (.CUDA_VER|split(".")|map(tonumber))]))
# build_type: pull-request
# script: "ci/test_cudf_polars_polars_tests.sh"
# wheel-build-dask-cudf:
# needs: wheel-build-cudf
# secrets: inherit
# uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@test-nvks-runners
# with:
# # This selects "ARCH=amd64 + the latest supported Python + CUDA".
# matrix_filter: map(select(.ARCH == "amd64")) | group_by(.CUDA_VER|split(".")|map(tonumber)|.[0]) | map(max_by([(.PY_VER|split(".")|map(tonumber)), (.CUDA_VER|split(".")|map(tonumber))]))
# build_type: pull-request
# script: "ci/build_wheel_dask_cudf.sh"
# wheel-tests-dask-cudf:
# needs: [wheel-build-dask-cudf, changed-files]
# secrets: inherit
# uses: rapidsai/shared-workflows/.github/workflows/wheels-test.yaml@test-nvks-runners
# if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_python
# with:
# # This selects "ARCH=amd64 + the latest supported Python + CUDA".
# matrix_filter: map(select(.ARCH == "amd64")) | group_by(.CUDA_VER|split(".")|map(tonumber)|.[0]) | map(max_by([(.PY_VER|split(".")|map(tonumber)), (.CUDA_VER|split(".")|map(tonumber))]))
# build_type: pull-request
# script: ci/test_wheel_dask_cudf.sh
# devcontainer:
# secrets: inherit
# needs: telemetry-setup
# uses: rapidsai/shared-workflows/.github/workflows/build-in-devcontainer.yaml@test-nvks-runners
# with:
# arch: '["amd64"]'
# cuda: '["12.5"]'
# build_command: |
# sccache -z;
# build-all -DBUILD_BENCHMARKS=ON --verbose;
# sccache -s;
# unit-tests-cudf-pandas:
# needs: [wheel-build-cudf, changed-files]
# secrets: inherit
# uses: rapidsai/shared-workflows/.github/workflows/wheels-test.yaml@test-nvks-runners
# if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_python || fromJSON(needs.changed-files.outputs.changed_file_groups).test_cudf_pandas
# with:
# # This selects "ARCH=amd64 + the latest supported Python + CUDA".
# matrix_filter: map(select(.ARCH == "amd64")) | group_by(.CUDA_VER|split(".")|map(tonumber)|.[0]) | map(max_by([(.PY_VER|split(".")|map(tonumber)), (.CUDA_VER|split(".")|map(tonumber))]))
# build_type: pull-request
# script: ci/cudf_pandas_scripts/run_tests.sh
# pandas-tests:
# # run the Pandas unit tests using PR branch
# needs: [wheel-build-cudf, changed-files]
# secrets: inherit
# uses: rapidsai/shared-workflows/.github/workflows/wheels-test.yaml@test-nvks-runners
# if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_python || fromJSON(needs.changed-files.outputs.changed_file_groups).test_cudf_pandas
# with:
# # This selects "ARCH=amd64 + the latest supported Python + CUDA".
# matrix_filter: map(select(.ARCH == "amd64")) | group_by(.CUDA_VER|split(".")|map(tonumber)|.[0]) | map(max_by([(.PY_VER|split(".")|map(tonumber)), (.CUDA_VER|split(".")|map(tonumber))]))
# build_type: pull-request
# script: ci/cudf_pandas_scripts/pandas-tests/run.sh pr
# # Hide test failures because they exceed the GITHUB_STEP_SUMMARY output limit.
# test_summary_show: "none"
# pandas-tests-diff:
# # diff the results of running the Pandas unit tests and publish a job summary
# needs: pandas-tests
# uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@test-nvks-runners
# with:
# node_type: cpu4
# build_type: pull-request
# run_script: "ci/cudf_pandas_scripts/pandas-tests/diff.sh"
# 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