From 42d18c0544c294173ad723fac332f42b00367b7a Mon Sep 17 00:00:00 2001 From: raramakr Date: Fri, 21 Aug 2026 15:33:00 -0500 Subject: [PATCH 1/2] feat(ci): enable focused host-ASAN presubmit for runtime components Configure therock-multi-arch-ci-asan.yml to use TheRock's focused presubmit inputs (TheRock#7311): - build_stages: compiler-runtime,runtime-tests (skip math-libs, etc.) - asan_presubmit: true (run on every PR without ci:asan label) - lock_test_labels: true (PR labels cannot widen test scope) - sanity_blocks_components: false (sanity failures don't block tests) - linux_test_labels: test:hip-tests,test:rocrtst - Disable build_native_linux, build_python_packages, build_pytorch, build_jax - validate_artifact_structure: false (partial builds skip validation) This enables automatic host-ASAN testing on every PR with minimal build cost, catching host-side memory errors in runtime components. --- .../workflows/therock-multi-arch-ci-asan.yml | 26 +++++++++++++++---- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/.github/workflows/therock-multi-arch-ci-asan.yml b/.github/workflows/therock-multi-arch-ci-asan.yml index 0ab0ffaaa23f..363b43356b37 100644 --- a/.github/workflows/therock-multi-arch-ci-asan.yml +++ b/.github/workflows/therock-multi-arch-ci-asan.yml @@ -3,11 +3,18 @@ # Multi-Arch CI ASAN for rocm-systems # -# Presubmit and on-demand ASAN builds. TheRock's configure_multi_arch_ci.py -# automatically selects host-asan for pull_request events (faster, host-only) -# and full asan for workflow_dispatch (comprehensive device-side instrumentation). +# Focused host-ASAN presubmit: builds only runtime components (compiler-runtime, +# runtime-tests) and runs hip-tests + rocrtst on every PR. This catches host-side +# memory errors without the full build cost. # -# For scheduled nightly runs, see therock-multi-arch-ci-asan-nightly.yml. +# Key configuration (see TheRock docs/development/sanitizers.md): +# - build_stages: limits build to runtime components only +# - asan_presubmit: runs without ci:asan label, allocates sandbox test runners +# - lock_test_labels: PR labels cannot widen test scope +# - sanity_blocks_components: sanity failures don't block component tests +# - build_native_linux/build_python_packages/build_pytorch/build_jax: disabled +# +# For scheduled nightly runs with full ASAN, see therock-multi-arch-ci-asan-nightly.yml. name: TheRock Multi-Arch CI ASAN @@ -60,8 +67,17 @@ jobs: uses: ROCm/TheRock/.github/workflows/setup_multi_arch.yml@3c4ec014374d4d32243334ef229093fe7b38c5b2 # 2026-08-31 with: build_variant: "asan" + build_stages: "compiler-runtime,runtime-tests" linux_amdgpu_families: ${{ inputs.linux_amdgpu_families || 'gfx94X,gfx950,gfx125X' }} - linux_test_labels: ${{ inputs.linux_test_labels || '' }} + linux_test_labels: ${{ inputs.linux_test_labels || 'test:hip-tests,test:rocrtst' }} + asan_presubmit: true + lock_test_labels: true + sanity_blocks_components: false + validate_artifact_structure: false + build_native_linux: false + build_python_packages: false + build_pytorch: false + build_jax: false prebuilt_stages: ${{ inputs.prebuilt_stages || '' }} baseline_run_id: ${{ inputs.baseline_run_id || '' }} baseline_repository: ${{ inputs.baseline_repository || (inputs.baseline_run_id != '' && github.repository) || '' }} From 84b794f34c408788f463753843dbb10dc2a688cd Mon Sep 17 00:00:00 2001 From: raramakr Date: Mon, 31 Aug 2026 13:53:00 -0500 Subject: [PATCH 2/2] ci: configure host-asan presubmit for automatic PR testing Switch to host-asan build variant which enables automatic test execution for external repos with build_stages set. This removes the need for ci:asan or ci:host-asan labels on PRs. Changes: - Use build_variant: "host-asan" instead of "asan" - Remove non-existent inputs (asan_presubmit, lock_test_labels, sanity_blocks_components, validate_artifact_structure) - Update comments to reflect actual behavior The presubmit is scoped to compiler-runtime and runtime-tests stages, running hip-tests and rocrtst on every PR automatically. --- .../workflows/therock-multi-arch-ci-asan.yml | 21 +++++++------------ 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/.github/workflows/therock-multi-arch-ci-asan.yml b/.github/workflows/therock-multi-arch-ci-asan.yml index 363b43356b37..f3ba0330bc5c 100644 --- a/.github/workflows/therock-multi-arch-ci-asan.yml +++ b/.github/workflows/therock-multi-arch-ci-asan.yml @@ -3,16 +3,13 @@ # Multi-Arch CI ASAN for rocm-systems # -# Focused host-ASAN presubmit: builds only runtime components (compiler-runtime, -# runtime-tests) and runs hip-tests + rocrtst on every PR. This catches host-side -# memory errors without the full build cost. +# Presubmit and on-demand ASAN builds. TheRock's configure_multi_arch_ci.py +# automatically selects host-asan for pull_request events (faster, host-only) +# and full asan for workflow_dispatch (comprehensive device-side instrumentation). # -# Key configuration (see TheRock docs/development/sanitizers.md): -# - build_stages: limits build to runtime components only -# - asan_presubmit: runs without ci:asan label, allocates sandbox test runners -# - lock_test_labels: PR labels cannot widen test scope -# - sanity_blocks_components: sanity failures don't block component tests -# - build_native_linux/build_python_packages/build_pytorch/build_jax: disabled +# The presubmit is scoped to a runtime-only build (compiler-runtime and +# runtime-tests) testing hip-tests and rocrtst, so that it is cheap enough to +# run automatically on every pull request. See ROCm/TheRock#7202. # # For scheduled nightly runs with full ASAN, see therock-multi-arch-ci-asan-nightly.yml. @@ -66,14 +63,10 @@ jobs: setup: uses: ROCm/TheRock/.github/workflows/setup_multi_arch.yml@3c4ec014374d4d32243334ef229093fe7b38c5b2 # 2026-08-31 with: - build_variant: "asan" + build_variant: "host-asan" build_stages: "compiler-runtime,runtime-tests" linux_amdgpu_families: ${{ inputs.linux_amdgpu_families || 'gfx94X,gfx950,gfx125X' }} linux_test_labels: ${{ inputs.linux_test_labels || 'test:hip-tests,test:rocrtst' }} - asan_presubmit: true - lock_test_labels: true - sanity_blocks_components: false - validate_artifact_structure: false build_native_linux: false build_python_packages: false build_pytorch: false