Skip to content

Merge branch 'drop_thrust_reverse_iterator' into drop_thrust_constant… #8289

Merge branch 'drop_thrust_reverse_iterator' into drop_thrust_constant…

Merge branch 'drop_thrust_reverse_iterator' into drop_thrust_constant… #8289

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
- conda-cpp-tests
- conda-cpp-checks
- conda-notebook-tests
- conda-python-build
- conda-python-tests
- docs-build
- wheel-build-libcugraph
- wheel-build-pylibcugraph
- wheel-tests-pylibcugraph
- wheel-build-cugraph
- wheel-tests-cugraph
- telemetry-setup
- devcontainer
secrets: inherit
uses: rapidsai/shared-workflows/.github/workflows/pr-builder.yaml@main
if: always()
with:
needs: ${{ toJSON(needs) }}
telemetry-setup:
runs-on: ubuntu-latest
continue-on-error: true
env:
OTEL_SERVICE_NAME: "pr-cugraph"
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
permissions:
actions: read
id-token: write
env:
GH_TOKEN: ${{ github.token }}
SHARED_ACTIONS_REF: 'check-nightly-success'
steps:
- name: Get PR Info
id: get-pr-info
uses: nv-gha-runners/get-pr-info@main
- name: Check if nightly CI is passing
uses: rapidsai/shared-actions/check_nightly_success/dispatch@main
with:
repo: ${{ github.repository }}
target-branch: ${{ fromJSON(steps.get-pr-info.outputs.pr-info).base.ref }}
# TODO: remove this when nightly tests are passing again (ref: https://github.com/rapidsai/cugraph/issues/5421)
max-days-without-success: 21
changed-files:
secrets: inherit
needs: telemetry-setup
uses: rapidsai/shared-workflows/.github/workflows/changed-files.yaml@main
with:
files_yaml: |
build_docs:
- '**'
- '!.devcontainer/**'
- '!.dockerignore'
- '!.git-blame-ignore-revs'
- '!.github/CODEOWNERS'
- '!.github/ISSUE_TEMPLATE/**'
- '!.github/copy-pr-bot.yaml'
- '!.github/labeler.yml'
- '!.github/ops-bot.yaml'
- '!.github/release.yml'
- '!.github/workflows/add-to-project.yml'
- '!.github/workflows/new-issues-to-triage-projects.yml'
- '!.github/workflows/trigger-breaking-change-alert.yaml'
- '!.pre-commit-config.yaml'
- '!README.md'
- '!ci/build_wheel*.sh'
- '!ci/check_style.sh'
- '!ci/release/update-version.sh'
- '!ci/run_ctests.sh'
- '!ci/test_cpp.sh'
- '!ci/test_notebooks.sh'
- '!ci/test_python.sh'
- '!ci/test_wheel*.sh'
- '!ci/validate_wheel.sh'
- '!ci/wheel*.py'
test_cpp:
- '**'
- '!.devcontainer/**'
- '!.dockerignore'
- '!.git-blame-ignore-revs'
- '!.github/CODEOWNERS'
- '!.github/ISSUE_TEMPLATE/**'
- '!.github/copy-pr-bot.yaml'
- '!.github/labeler.yml'
- '!.github/ops-bot.yaml'
- '!.github/release.yml'
- '!.github/workflows/add-to-project.yml'
- '!.github/workflows/new-issues-to-triage-projects.yml'
- '!.github/workflows/trigger-breaking-change-alert.yaml'
- '!.pre-commit-config.yaml'
- '!README.md'
- '!ci/build_docs.sh'
- '!ci/build_python.sh'
- '!ci/build_wheel*.sh'
- '!ci/check_style.sh'
- '!ci/notebook_list.py'
- '!ci/release/update-version.sh'
- '!ci/test_notebooks.sh'
- '!ci/test_python.sh'
- '!ci/test_wheel*.sh'
- '!ci/validate_wheel.sh'
- '!ci/wheel*.py'
- '!docs/**'
- '!img/**'
- '!mg_utils/**'
- '!notebooks/**'
- '!python/**'
- '!readme_pages/**'
test_notebooks:
- '**'
- '!.devcontainer/**'
- '!.dockerignore'
- '!.git-blame-ignore-revs'
- '!.github/CODEOWNERS'
- '!.github/ISSUE_TEMPLATE/**'
- '!.github/copy-pr-bot.yaml'
- '!.github/labeler.yml'
- '!.github/ops-bot.yaml'
- '!.github/release.yml'
- '!.github/workflows/add-to-project.yml'
- '!.github/workflows/new-issues-to-triage-projects.yml'
- '!.github/workflows/trigger-breaking-change-alert.yaml'
- '!.pre-commit-config.yaml'
- '!README.md'
- '!ci/build_docs.sh'
- '!ci/build_wheel*.sh'
- '!ci/check_style.sh'
- '!ci/release/update-version.sh'
- '!ci/run_ctests.sh'
- '!ci/test_cpp.sh'
- '!ci/test_python.sh'
- '!ci/test_wheel*.sh'
- '!ci/validate_wheel.sh'
- '!ci/wheel*.py'
- '!docs/**'
test_python_conda:
- '**'
- '!.devcontainer/**'
- '!.dockerignore'
- '!.git-blame-ignore-revs'
- '!.github/CODEOWNERS'
- '!.github/ISSUE_TEMPLATE/**'
- '!.github/copy-pr-bot.yaml'
- '!.github/labeler.yml'
- '!.github/ops-bot.yaml'
- '!.github/release.yml'
- '!.github/workflows/add-to-project.yml'
- '!.github/workflows/new-issues-to-triage-projects.yml'
- '!.github/workflows/trigger-breaking-change-alert.yaml'
- '!.pre-commit-config.yaml'
- '!README.md'
- '!ci/build_docs.sh'
- '!ci/build_wheel*.sh'
- '!ci/check_style.sh'
- '!ci/notebook_release.py'
- '!ci/release/update-version.sh'
- '!ci/run_ctests.sh'
- '!ci/test_cpp.sh'
- '!ci/test_notebooks.sh'
- '!ci/test_wheel*.sh'
- '!ci/validate_wheel.sh'
- '!ci/wheel*.py'
- '!docs/**'
- '!img/**'
- '!notebooks/**'
- '!readme_pages/**'
test_python_wheels:
- '**'
- '!.devcontainer/**'
- '!.dockerignore'
- '!.git-blame-ignore-revs'
- '!.github/CODEOWNERS'
- '!.github/ISSUE_TEMPLATE/**'
- '!.github/copy-pr-bot.yaml'
- '!.github/labeler.yml'
- '!.github/ops-bot.yaml'
- '!.github/release.yml'
- '!.github/workflows/add-to-project.yml'
- '!.github/workflows/new-issues-to-triage-projects.yml'
- '!.github/workflows/trigger-breaking-change-alert.yaml'
- '!.pre-commit-config.yaml'
- '!README.md'
- '!ci/build_cpp.sh'
- '!ci/build_docs.sh'
- '!ci/build_python.sh'
- '!ci/check_style.sh'
- '!ci/release/update-version.sh'
- '!ci/run_ctests.sh'
- '!ci/test_cpp.sh'
- '!ci/test_notebooks.sh'
- '!ci/test_python.sh'
- '!conda/**'
- '!docs/**'
- '!img/**'
- '!notebooks/**'
- '!readme_pages/**'
checks:
secrets: inherit
needs: telemetry-setup
uses: rapidsai/shared-workflows/.github/workflows/checks.yaml@main
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@main
with:
build_type: pull-request
node_type: cpu16
script: ci/build_cpp.sh
conda-cpp-tests:
needs: [conda-cpp-build, changed-files]
secrets: inherit
uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-tests.yaml@main
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/conda-cpp-post-build-checks.yaml@main
with:
build_type: pull-request
symbol_exclusions: (cugraph::ops|hornet|void writeEdgeCountsKernel|void markUniqueOffsetsKernel)
conda-python-build:
needs: conda-cpp-build
secrets: inherit
uses: rapidsai/shared-workflows/.github/workflows/conda-python-build.yaml@main
with:
build_type: pull-request
script: ci/build_python.sh
# Build a conda package for each CUDA x ARCH x minimum supported Python version
matrix_filter: group_by({CUDA_VER, ARCH}) | map(min_by(.PY_VER | split(".") | map(tonumber)))
conda-python-tests:
needs: [conda-python-build, changed-files]
secrets: inherit
uses: rapidsai/shared-workflows/.github/workflows/conda-python-tests.yaml@main
if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_python_conda
with:
build_type: pull-request
script: ci/test_python.sh
# Skip failing tests on RTX PRO 6000 (Blackwell). xref: https://github.com/rapidsai/cugraph/issues/5421
matrix_filter: map(select(.GPU != "rtxpro6000"))
conda-notebook-tests:
needs: [conda-python-build, changed-files]
secrets: inherit
uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@main
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:26.04-latest"
script: "ci/test_notebooks.sh"
docs-build:
needs: [conda-python-build, changed-files]
secrets: inherit
uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@main
if: fromJSON(needs.changed-files.outputs.changed_file_groups).build_docs
with:
build_type: pull-request
node_type: "gpu-l4-latest-1"
arch: "amd64"
container_image: "rapidsai/ci-conda:26.04-latest"
script: "ci/build_docs.sh"
wheel-build-libcugraph:
needs: checks
secrets: inherit
uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@main
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
node_type: cpu16
script: ci/build_wheel_libcugraph.sh
package-name: libcugraph
package-type: cpp
wheel-build-pylibcugraph:
needs: wheel-build-libcugraph
secrets: inherit
uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@main
with:
build_type: pull-request
node_type: cpu8
script: ci/build_wheel_pylibcugraph.sh
package-name: pylibcugraph
package-type: python
# Build a wheel for each CUDA x ARCH x minimum supported Python version
matrix_filter: group_by({CUDA_VER, ARCH}) | map(min_by(.PY_VER | split(".") | map(tonumber)))
wheel-tests-pylibcugraph:
needs: [wheel-build-pylibcugraph, changed-files]
secrets: inherit
uses: rapidsai/shared-workflows/.github/workflows/wheels-test.yaml@main
if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_python_wheels
with:
build_type: pull-request
script: ci/test_wheel_pylibcugraph.sh
wheel-build-cugraph:
needs: wheel-build-pylibcugraph
secrets: inherit
uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@main
with:
build_type: pull-request
node_type: cpu8
script: ci/build_wheel_cugraph.sh
package-name: cugraph
package-type: python
# Build a wheel for each CUDA x ARCH x minimum supported Python version
matrix_filter: group_by({CUDA_VER, ARCH}) | map(min_by(.PY_VER | split(".") | map(tonumber)))
wheel-tests-cugraph:
needs: [wheel-build-cugraph, changed-files]
secrets: inherit
uses: rapidsai/shared-workflows/.github/workflows/wheels-test.yaml@main
if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_python_wheels
with:
build_type: pull-request
script: ci/test_wheel_cugraph.sh
# Skip failing tests on RTX PRO 6000 (Blackwell). xref: https://github.com/rapidsai/cugraph/issues/5421
matrix_filter: map(select(.GPU != "rtxpro6000"))
devcontainer:
secrets: inherit
needs: telemetry-setup
uses: rapidsai/shared-workflows/.github/workflows/build-in-devcontainer.yaml@main
with:
arch: '["amd64", "arm64"]'
cuda: '["13.1"]'
node_type: "cpu8"
env: |
SCCACHE_DIST_MAX_RETRIES=inf
SCCACHE_SERVER_LOG=sccache=debug
SCCACHE_DIST_FALLBACK_TO_LOCAL_COMPILE=false
build_command: |
sccache --zero-stats;
build-all -j0 --verbose -DBUILD_CUGRAPH_MG_TESTS=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 }}