From 2482bff0b742c5c23280429ca0bb4806d8ad490b Mon Sep 17 00:00:00 2001 From: dsclear-amd <131019604+dsclear-amd@users.noreply.github.com> Date: Thu, 15 Jan 2026 14:54:20 -0500 Subject: [PATCH] Excludes (more) docs-only changes from .azuredevops/rocm_ci_caller.yml. (#2615) Motivation We wish to avoid triggering full Jenkins runs for docs-only PRs, as this takes up testing resources and slows development time. rocm_ci_caller.yml already excludes some docs-only changes, but this can be improved to exclude them along more paths. Technical Details The checks that rocm_ci_caller.yml uses to determine if a changed file in a PR is worth a Jenkins run has been increased to exclude more paths and more file suffixes. JIRA ID AIROCDOC-78, AIROCDOC-424 Test Plan Created a test branch users/dsclear/shorten_workflows_test_root with the changes in this PR, branched from develop. Branched users/dsclear/shorten_workflows_test_bin_3 and users/dsclear/shorten_workflows_test_text_3 from users/dsclear/shorten_workflows_test_root. Modified users/dsclear/shorten_workflows_test_bin_3 to add two .h files, and submitted a PR into users/dsclear/shorten_workflows_test_root (Test PR, do not merge. Test PR to test Jenkins CI/CD modifications. #2613). Modified users/dsclear/shorten_workflows_test_text_3 to add a new .txt file, and submitted a PR into users/dsclear/shorten_workflows_test_root (Test PR, do not merge. Test PR to test Jenkins CI/CD modifications (docs only). #2614). Test Result The test PR in step 3 caused rocm_ci_caller.yml to attempt to trigger Jenkins, as this is a 'non-docs' change. The test PR in step 4 had the attempt to trigger Jenkins skipped, as this is a 'docs-only' change. --- .azuredevops/rocm_ci_caller.yml | 30 +++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/.azuredevops/rocm_ci_caller.yml b/.azuredevops/rocm_ci_caller.yml index 6ca9c563f4..ed71ee63f1 100644 --- a/.azuredevops/rocm_ci_caller.yml +++ b/.azuredevops/rocm_ci_caller.yml @@ -60,13 +60,29 @@ jobs: if [[ "$file" == projects/clr/* || "$file" == projects/hip/* || "$file" == projects/hip-tests/* ]]; then WINDOWS_SKIP=false fi - if [[ "$file" == projects/hip/docs/* || \ - "$file" == projects/rdc/docs/* || \ - "$file" == projects/rocm-smi-lib/docs/* || \ - "$file" == projects/rocminfo/docs/* || \ - "$file" == projects/rocprofiler-compute/docs/* || \ - "$file" == projects/rocprofiler-systems/docs/* || \ - "$file" == projects/rocr-runtime/runtime/docs/* ]]; then + + # Exclude paths: + # docs/** + # *.md + # *.rtf + # *.rst + # + # projects/*/docs/** + # **/.markdownlint-ci2.yaml + # **/.readthedocs.yaml + # **/.spellcheck.local.yaml + # **/.wordlist.txt + if [[ "${file}" == docs/* || \ + "${file}" == *.md || \ + "${file}" == *.rtf || \ + "${file}" == *.rst + ]] || \ + grep --quiet --extended-regexp '^projects/[^/.]+/docs/.*$' <<< "${file}" || \ + grep --quiet --extended-regexp '^([^/.]+/)*.markdownlint-ci2.yaml$' <<< "${file}" || \ + grep --quiet --extended-regexp '^([^/.]+/)*.readthedocs.yaml$' <<< "${file}" || \ + grep --quiet --extended-regexp '^([^/.]+/)*.spellcheck.local.yaml$' <<< "${file}" || \ + grep --quiet --extended-regexp '^([^/.]+/)*.wordlist.txt$' <<< "${file}" \ + ; then WINDOWS_SKIP=true MATCH_FOUND=false fi