Skip to content

[CI][ROCm] Add source-aware filtering for AMD jobs - #1

Open
haic0 wants to merge 1 commit into
ci/rocm-amd-uploader-refactor-replacementfrom
ci/amd-source-aware-filtering
Open

haic0 wants to merge 1 commit into
ci/rocm-amd-uploader-refactor-replacementfrom
ci/amd-source-aware-filtering

Conversation

@haic0

@haic0 haic0 commented Sep 21, 2026

Copy link
Copy Markdown
Owner

Summary

  • Add per-job source_file_dependencies to every AMD ready, merge, and nightly job.
  • Compose job-specific model/test/runtime paths with an amd_ci_shared safety key for Buildkite, ROCm image, dependency, and shared runtime changes.
  • Keep malformed, empty, missing, or unknown AMD dependency declarations fail-open while leaving CUDA/NPU validation semantics unchanged.
  • Preserve full scheduled main nightly runs while filtering PR-label and post-merge suites.

Stacking and GitHub limitation

This helper PR is stacked on vllm-project#7311 and depends on it. Its base is the exact parent branch, haic0:ci/rocm-amd-uploader-refactor-replacement, so the diff contains only AMD source-filtering changes.

GitHub rejected an upstream stacked PR because a PR in vllm-project/vllm-omni cannot use the fork-owned parent branch as its base (GraphQL: The baseRefName is invalid). Therefore this helper PR lives in haic0/vllm-omni. After vllm-project#7311 merges, rebase this branch onto upstream main and open the follow-up PR in vllm-project/vllm-omni against main.

Dependency policy

Every AMD leaf job combines amd_ci_shared with a focused registry key covering the test target, model family, and relevant runtime paths. amd_ci_shared retains the full selected AMD suite for .buildkite/**, ROCm Docker/image inputs, requirements and packaging files, shared test fixtures, and broad platform/config/runtime files where impact cannot be safely inferred.

Missing declarations already keep jobs. AMD now also treats empty, malformed, unknown, or unavailable dependency mappings as fail-open, logging the reason and retaining the job. Scheduled main nightly builds disable source filtering and keep all nightly jobs.

Why this is not a duplicate

Before implementation, I inspected vllm-project#7311 and its comments, searched open PRs for source_file_dependencies AMD ROCm and AMD source filtering, and searched recent merged PRs in the same area. No open or merged PR adds AMD per-job source filtering. vllm-project#6597 introduced the shared filtering machinery for CUDA/NPU; vllm-project#7311 adds the AMD native uploader lifecycle that this follow-up builds on.

Validation

  • .venv/bin/python -m pytest --confcutdir=tests/buildkite tests/buildkite/test_upload_pipeline.py tests/buildkite/test_amd_suite_selection.py tests/buildkite/test_amd_pipeline.py tests/buildkite/test_skip_ci.py -q — 133 passed.
  • PATH="$PWD/.venv/bin:$HOME/.cargo/bin:$PATH" uvx pre-commit run --files <changed files> — all applicable hooks passed, including Ruff, mypy, YAML, and Buildkite validation.
  • Filtered AMD ready selection rendered through minijinja-cli and parsed as valid YAML; the Qwen3-TTS change retained the mapped TTS job (plus the conservative broad CPU lane), omitted Wan22, and leaked no uploader-only dependency fields.
  • git diff --check passed.
  • No GPU/model evaluation was run or required because this changes CI selection only, not model output.

AI assistance

AI assistance was used for repository investigation, dependency-map drafting, implementation, tests, and validation. The human submitter must review and understand every changed line before merge.

Follow-up

After vllm-project#7311 merges, rebase this branch onto upstream main, open an upstream PR against main, and rerun the focused Buildkite validation against the merged uploader lifecycle.

Signed-off-by: haic0 <haic0@users.noreply.github.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant