From 4c817529506eefef20ee17fec3160ee23d32662e Mon Sep 17 00:00:00 2001 From: Hyunsu Cho Date: Mon, 31 Aug 2026 21:42:48 -0700 Subject: [PATCH 1/2] Add scheduled Lychee link check --- .github/workflows/link-checks.yaml | 49 ++++++++++++++++++++++++++++++ .lychee.toml | 14 +++++++++ README.md | 2 +- 3 files changed, 64 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/link-checks.yaml create mode 100644 .lychee.toml diff --git a/.github/workflows/link-checks.yaml b/.github/workflows/link-checks.yaml new file mode 100644 index 00000000..96cb9370 --- /dev/null +++ b/.github/workflows/link-checks.yaml @@ -0,0 +1,49 @@ +name: Link checks + +on: + workflow_dispatch: + schedule: + # Run every Monday, Wednesday, and Friday at 08:00 UTC. + - cron: "0 8 * * 1,3,5" + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +permissions: {} + +jobs: + check-links: + runs-on: ubuntu-latest + timeout-minutes: 30 + permissions: + contents: read + steps: + - name: Checkout repository + uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v7.0.1 + with: + persist-credentials: false + - name: Restore lychee cache + id: restore-lychee-cache + uses: actions/cache/restore@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0 + with: + path: .lycheecache + key: lychee-${{ github.ref_name }}-${{ github.run_id }} + restore-keys: lychee-${{ github.ref_name }}- + - name: List tracked files + run: git ls-files '*.md' '*.html' '*.rst' > "${RUNNER_TEMP}/lychee-files" + - name: Check links + uses: lycheeverse/lychee-action@e7477775783ea5526144ba13e8db5eec57747ce8 # v2.9.0 + with: + args: >- + --config .lychee.toml + --no-progress + --files-from "${{ runner.temp }}/lychee-files" + fail: true + failIfEmpty: true + - name: Save lychee cache + if: always() + uses: actions/cache/save@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0 + with: + path: .lycheecache + key: ${{ steps.restore-lychee-cache.outputs.cache-primary-key }} diff --git a/.lychee.toml b/.lychee.toml new file mode 100644 index 00000000..98145e1e --- /dev/null +++ b/.lychee.toml @@ -0,0 +1,14 @@ +cache = true +max_cache_age = "3d" +max_concurrency = 8 +max_retries = 3 +retry_wait_time = 2 + +# Doxygen resolves modules.html and $relpath placeholders during generation. +exclude = ['modules\.html$', '\$relpath'] +exclude_path = [ + # Historical links are not maintained. + '(^|/)CHANGELOG\.md$', + # Package READMEs are symlinks whose relative links resolve from the repository root. + '^python/(libnvforest|nvforest)/README\.md$', +] diff --git a/README.md b/README.md index 11830123..56814a14 100644 --- a/README.md +++ b/README.md @@ -71,7 +71,7 @@ We welcome contributions. For guidelines and how to get started, see the [RAPIDS ## Contact -Find out more on the [RAPIDS site](https://rapids.ai/community.html). +Find out more: [CUDA-X for Data Science](https://developer.nvidia.com/topics/ai/data-science/cuda-x-for-data-science) ## Open GPU Data Science From 10870e428693428666618ef9da4d4c4566f97435 Mon Sep 17 00:00:00 2001 From: Hyunsu Cho Date: Mon, 31 Aug 2026 21:51:55 -0700 Subject: [PATCH 2/2] Add to pr.yaml --- .github/workflows/pr.yaml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/pr.yaml b/.github/workflows/pr.yaml index bdd7eef9..4e726c20 100644 --- a/.github/workflows/pr.yaml +++ b/.github/workflows/pr.yaml @@ -67,6 +67,13 @@ jobs: repo: ${{ github.repository }} target-branch: ${{ fromJSON(steps.get-pr-info.outputs.pr-info).base.ref }} max-days-without-success: 7 + - name: Check if link checks are 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 }} + workflow-id: link-checks.yaml + max-days-without-success: 14 changed-files: needs: telemetry-setup permissions: