Merge branch 'branch-24.12' into numba-cuda-enable-pynvjitlink #18511
This file contains 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: | |
- changed-files | |
- checks | |
- conda-cpp-build | |
- 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@branch-24.12 | |
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 | |
uses: rapidsai/shared-actions/telemetry-dispatch-stash-base-env-vars@main | |
changed-files: | |
secrets: inherit | |
needs: telemetry-setup | |
uses: rapidsai/shared-workflows/.github/workflows/changed-files.yaml@branch-24.12 | |
with: | |
files_yaml: | | |
test_cpp: | |
- '**' | |
- '!CONTRIBUTING.md' | |
- '!README.md' | |
- '!ci/cudf_pandas_scripts/**' | |
- '!docs/**' | |
- '!img/**' | |
- '!java/**' | |
- '!notebooks/**' | |
- '!python/**' | |
test_cudf_pandas: | |
- '**' | |
- '!CONTRIBUTING.md' | |
- '!README.md' | |
- '!docs/**' | |
- '!img/**' | |
- '!java/**' | |
- '!notebooks/**' | |
test_java: | |
- '**' | |
- '!CONTRIBUTING.md' | |
- '!README.md' | |
- '!ci/cudf_pandas_scripts/**' | |
- '!docs/**' | |
- '!img/**' | |
- '!notebooks/**' | |
- '!python/**' | |
test_notebooks: | |
- '**' | |
- '!CONTRIBUTING.md' | |
- '!README.md' | |
- '!ci/cudf_pandas_scripts/**' | |
- '!java/**' | |
test_python: | |
- '**' | |
- '!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@branch-24.12 | |
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@branch-24.12 | |
with: | |
build_type: pull-request | |
conda-cpp-checks: | |
needs: conda-cpp-build | |
secrets: inherit | |
uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-post-build-checks.yaml@branch-24.12 | |
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@branch-24.12 | |
if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_cpp | |
with: | |
build_type: pull-request | |
conda-python-build: | |
needs: conda-cpp-build | |
secrets: inherit | |
uses: rapidsai/shared-workflows/.github/workflows/conda-python-build.yaml@branch-24.12 | |
with: | |
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@branch-24.12 | |
if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_python | |
with: | |
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@branch-24.12 | |
if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_python | |
with: | |
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@branch-24.12 | |
if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_java | |
with: | |
build_type: pull-request | |
node_type: "gpu-v100-latest-1" | |
arch: "amd64" | |
container_image: "rapidsai/ci-conda:cuda12.5.1-ubuntu22.04-py3.11" | |
run_script: "ci/test_java.sh" | |
static-configure: | |
needs: checks | |
secrets: inherit | |
uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@branch-24.12 | |
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@branch-24.12 | |
if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_notebooks | |
with: | |
build_type: pull-request | |
node_type: "gpu-v100-latest-1" | |
arch: "amd64" | |
container_image: "rapidsai/ci-conda:cuda12.5.1-ubuntu22.04-py3.11" | |
run_script: "ci/test_notebooks.sh" | |
docs-build: | |
needs: conda-python-build | |
secrets: inherit | |
uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@branch-24.12 | |
with: | |
build_type: pull-request | |
node_type: "gpu-v100-latest-1" | |
arch: "amd64" | |
container_image: "rapidsai/ci-conda:cuda12.5.1-ubuntu22.04-py3.11" | |
run_script: "ci/build_docs.sh" | |
wheel-build-libcudf: | |
needs: checks | |
secrets: inherit | |
uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@branch-24.12 | |
with: | |
# 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))) | |
build_type: pull-request | |
script: "ci/build_wheel_libcudf.sh" | |
wheel-build-pylibcudf: | |
needs: [checks, wheel-build-libcudf] | |
secrets: inherit | |
uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@branch-24.12 | |
with: | |
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@branch-24.12 | |
with: | |
build_type: pull-request | |
script: "ci/build_wheel_cudf.sh" | |
wheel-tests-cudf: | |
needs: [wheel-build-cudf, changed-files] | |
secrets: inherit | |
uses: rapidsai/shared-workflows/.github/workflows/wheels-test.yaml@branch-24.12 | |
if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_python | |
with: | |
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@branch-24.12 | |
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@branch-24.12 | |
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@branch-24.12 | |
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@branch-24.12 | |
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@branch-24.12 | |
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 | |
uses: rapidsai/shared-workflows/.github/workflows/build-in-devcontainer.yaml@branch-24.12 | |
needs: telemetry-setup | |
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@branch-24.12 | |
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@branch-24.12 | |
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@branch-24.12 | |
with: | |
node_type: cpu4 | |
build_type: pull-request | |
run_script: "ci/cudf_pandas_scripts/pandas-tests/diff.sh" | |
telemetry-summarize: | |
runs-on: ubuntu-latest | |
needs: pr-builder | |
if: always() | |
continue-on-error: true | |
steps: | |
- name: Load stashed telemetry env vars | |
uses: rapidsai/shared-actions/telemetry-dispatch-load-base-env-vars@main | |
with: | |
load_service_name: true | |
- name: Telemetry summarize | |
uses: rapidsai/shared-actions/telemetry-dispatch-write-summary@main | |
with: | |
cert_concat: "${{ secrets.OTEL_EXPORTER_OTLP_CA_CERTIFICATE }};${{ secrets.OTEL_EXPORTER_OTLP_CLIENT_CERTIFICATE }};${{ secrets.OTEL_EXPORTER_OTLP_CLIENT_KEY }}" |