Skip to content

feat(metadata store): wire vLLM test-skip cache for upstream/model/sagemaker suites - #6604

Merged
samsullivan1 merged 3 commits into
mainfrom
feat/metadata-store-wire-vllm-tests
Aug 26, 2026
Merged

samsullivan1 merged 3 commits into
mainfrom
feat/metadata-store-wire-vllm-tests

Conversation

@samsullivan1

@samsullivan1 samsullivan1 commented Aug 21, 2026 •

Copy link
Copy Markdown
Contributor

Purpose

Wire the three vLLM framework test suites — vllm/upstream, vllm/model, vllm/sagemaker — into the content-addressed test-skip cache and enable them end-to-end. CI can now skip a vLLM suite when a prior PASS exists for the same image content + test code, and it records a PASS after the suite genuinely ran and passed. The mechanism is fail-open: any cache miss, degraded lookup, or infra failure runs the suite as normal.

  • .github/workflows/vllm.tests-upstream.yml, vllm.tests-model.yml, vllm.tests-sagemaker.yml — add optional image-content-hash / suite-code-hash inputs and a record-test-pass job to each reusable. A PASS is recorded only when the suite genuinely ran and passed: the record job requires the test jobs to report success (upstream: all of regression/cuda/example; model: at least one non-empty matrix job, with none failed; sagemaker: endpoint-test). Because each test job is already gated at the job level on the preflight image probe, an absent image (or empty matrix) leaves those jobs skipped — never success — so a self-skipped run never records a false PASS. Shared by all callers; a no-op for callers that pass no hashes.
  • .github/workflows/vllm.pipeline.yml — add the three vLLM suites to the pipeline's check job that looks up prior passes, gate upstream-tests / model-tests / sagemaker-tests on the result (fail-open via skips || '{}', gated only on build failure — never on the read-only check job's status), and thread the computed hashes into each reusable so a pass is recorded. Existing gates (e.g. sagemaker-tests requiring customer-type == 'sagemaker') are preserved.
  • .github/workflows/huggingface-vllm.pipeline.yml — this pipeline reuses vllm.tests-sagemaker.yml, so vllm/sagemaker is added to its check job and its sagemaker-tests caller is wired the same way.
  • .github/config/test-suites.yml — extend the code_paths for the matrix-driven suites so a change to the tested-model set invalidates the cache alongside test/vllm/**: vllm/model gains .github/config/model-tests/vllm-model-tests.yml and vllm/sagemaker gains .github/config/model-tests/vllm-sagemaker-endpoint-tests.yml.

Pipelines wired: vllm, huggingface-vllm (sagemaker suite only).

The check and record-test-pass jobs are both fail-open, so a degraded cache never blocks CI; on a cold cache the suite simply runs and populates a row on pass.

Test Plan

  • python -m pytest test/db — reconciliation tests (invoked suites exist in config; skip accessors are configured and checked) plus the suite/image hashing unit tests.
  • Verified all edited workflow files parse as YAML.
  • Confirmed the reconciliation checks detect the three vllm/* accessors in each wired pipeline's job if: conditions AND that each accessor is present in that pipeline's check-job suites list.

Test Result

  • test/db: 37 passed.
  • All edited *.yml parse as YAML; the vllm/upstream, vllm/model, and vllm/sagemaker accessors are detected in the check-job suites list and in the gated jobs' if: conditions for vllm.pipeline.yml, and vllm/sagemaker likewise for huggingface-vllm.pipeline.yml.

Live CI validation

Validated via test PR #6627. Record→hit is validated without a live endpoint: vllm/sagemaker can't run in PR CI due to recurring GPU InsufficientInstanceCapacity (the endpoint never reaches InService, so the suite never passes and correctly records nothing — fail-open). The record/hit logic is suite-agnostic shared code, covered by moto unit tests in test/db (Database Unit Tests workflow), and its live record→hit was proven on capacity-independent suites — telemetry (#6599), EFA (#6602), Ray (#6633), PyTorch (#6632) — each recording on run 1 and getting a cache HIT (suite skipped) on a same-day re-run.


Toggle if you are merging into master Branch

By default, docker image builds and tests are disabled. Two ways to run builds and tests:

  1. Using dlc_developer_config.toml
  2. Using this PR description (currently only supported for PyTorch, TensorFlow, vllm, and base images)
How to use the helper utility for updating dlc_developer_config.toml

Assuming your remote is called origin (you can find out more with git remote -v)...

  • Run default builds and tests for a particular buildspec - also commits and pushes changes to remote; Example:

python src/prepare_dlc_dev_environment.py -b </path/to/buildspec.yml> -cp origin

  • Enable specific tests for a buildspec or set of buildspecs - also commits and pushes changes to remote; Example:

python src/prepare_dlc_dev_environment.py -b </path/to/buildspec.yml> -t sanity_tests -cp origin

  • Restore TOML file when ready to merge

python src/prepare_dlc_dev_environment.py -rcp origin

NOTE: If you are creating a PR for a new framework version, please ensure success of the local, standard, rc, and efa sagemaker tests by updating the dlc_developer_config.toml file:

  • sagemaker_remote_tests = true
  • sagemaker_efa_tests = true
  • sagemaker_rc_tests = true
  • sagemaker_local_tests = true
How to use PR description Use the code block below to uncomment commands and run the PR CodeBuild jobs. There are two commands available:
  • # /buildspec <buildspec_path>
    • e.g.: # /buildspec pytorch/training/buildspec.yml
    • If this line is commented out, dlc_developer_config.toml will be used.
  • # /tests <test_list>
    • e.g.: # /tests sanity security ec2
    • If this line is commented out, it will run the default set of tests (same as the defaults in dlc_developer_config.toml): sanity, security, ec2, ecs, eks, sagemaker, sagemaker-local.
# /buildspec <buildspec_path>
# /tests <test_list>
Toggle if you are merging into main Branch

PR Checklist

  • I ran pre-commit run --all-files locally before creating this PR. (Read DEVELOPMENT.md for details).

sirutBuasai
sirutBuasai previously approved these changes Aug 24, 2026
@samsullivan1
samsullivan1 merged commit 224c614 into main Aug 26, 2026
94 checks passed
@samsullivan1
samsullivan1 deleted the feat/metadata-store-wire-vllm-tests branch August 26, 2026 18:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants