Skip to content

[CI] simplify test selection and coverage pipelines - #14718

Open
wangxiyuan wants to merge 1 commit into
vllm-project:mainfrom
wangxiyuan:refactor_ci
Open

[CI] simplify test selection and coverage pipelines#14718
wangxiyuan wants to merge 1 commit into
vllm-project:mainfrom
wangxiyuan:refactor_ci

Conversation

@wangxiyuan

@wangxiyuan wangxiyuan commented Aug 21, 2026

Copy link
Copy Markdown
Collaborator

Rework the CI test-selection and coverage tooling:

  • select_tests.py: convert from a module-map selector into a pure routing/grouper. Removes --changed-files/--diff-base/module matching (source_file_dependencies). Adds --run-all-modules (full directory scan of tests/ut and e2e pull_request cards) and --run-a5 (curated A5 suite on the A5 x4 runner). Keep --test-list-file and --explicit-e2e-tests.

  • test_config.yaml: drop all module->test blocks and source dependency matching. Keep skip_tests / runner_mapping / partition / estimated_times at top level. Remove stale estimated_times entries.

  • coverage.py: validate against the directory-scanned test universe; no longer derive scope from source_file_dependencies; drop source-coverage reporting.

  • update_estimated_times.py: read estimated_times from the single-document config (docs[0]) instead of the removed second YAML document.

  • Add stable production scripts coverage_recommender.py (PR coverage test recommendation) and map_builder.py (build test_case_map.json), renamed from the test_-prefixed names to clarify they are CI tools.

  • Split merge_extra_recommended_tests.py into merge_extra_recommended_tests_files.py and prune_extra_recommended_tests.py.

  • Move upload-coverage-to-obs out of _selected_tests.yaml into schedule_test_coverage.yaml; drop now-unused OBS secrets from _selected_tests.yaml.

  • pr_test.yaml: scope-all uses --run-all-modules, scope-a5 uses --run-a5; restore pre-commit/select-tests in run-selected-tests* needs; drop the analyze-failure-report job and its _analyze_failure.yaml/report scripts.

  • Remove test files and conftest from workflows/scripts (no unit tests are kept in that directory). Update TEST_README.md for the new CLI.

  • vLLM version: v0.27.1

  • vLLM main: vllm-project/vllm@58d3918

@wangxiyuan
wangxiyuan requested a review from Yikun as a code owner August 21, 2026 06:29
@gemini-code-assist

Copy link
Copy Markdown
Contributor

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request streamlines the CI test selection and coverage pipeline by eliminating manual per-module registration in favor of an automated directory scanning mechanism. These changes simplify the developer workflow for adding new tests and improve the clarity of local testing documentation.

Highlights

  • Simplified Test Registration: Removed the requirement for per-module registration in test_config.yaml, moving to an automated directory-based scanning approach.
  • Updated Local Testing Commands: Refreshed the documentation for running selective tests locally, including new commands for running full suites and curated test sets.
  • Cleaned up CI Tooling: Removed outdated test execution commands from the documentation and streamlined the linting process for the test selection script.
New Features

🧠 You can now enable Memory (public preview) to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Ignored Files
  • Ignored by pattern: .github/workflows/** (18)
    • .github/workflows/_analyze_failure.yaml
    • .github/workflows/_selected_tests.yaml
    • .github/workflows/pr_close_job.yaml
    • .github/workflows/pr_test.yaml
    • .github/workflows/schedule_test_coverage.yaml
    • .github/workflows/schedule_update_estimated_times.yaml
    • .github/workflows/scripts/analyze_failure_report.py
    • .github/workflows/scripts/conftest.py
    • .github/workflows/scripts/coverage.py
    • .github/workflows/scripts/coverage_recommender.py
    • .github/workflows/scripts/map_builder.py
    • .github/workflows/scripts/merge_extra_recommended_tests_files.py
    • .github/workflows/scripts/prune_extra_recommended_tests.py
    • .github/workflows/scripts/select_tests.py
    • .github/workflows/scripts/test_config.yaml
    • .github/workflows/scripts/test_select_tests.py
    • .github/workflows/scripts/test_selector.py
    • .github/workflows/scripts/update_estimated_times.py
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize the Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counterproductive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request updates the .github/TEST_README.md documentation to reflect changes in the test selection and coverage pipelines, specifically highlighting the transition to automatic directory scanning, runner routing via runner_mapping, and new local execution commands. Feedback from the reviewer points out that the PR title and description do not adhere to the repository's style guide, and provides the correct formatted suggestions.

Comment thread .github/TEST_README.md
- 8-card: `tests/e2e/pull_request/eight_card/test_new_feature.py`

2. Register it in `.github/workflows/scripts/test_config.yaml` for PR selective testing.
2. Ensure it is routed to the correct runner via `runner_mapping` in

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

The current PR title and description do not follow the repository's style guide for pull requests. Please update them to match the following suggested formats:

Suggested PR Title:

[CI][Misc] Simplify test selection and coverage pipelines

Suggested PR Summary:

### What this PR does / why we need it?

This PR simplifies the test selection and coverage pipelines by removing the need for per-module registration in `test_config.yaml`. Instead, the full test suite and PR recommendation stream are now resolved automatically via directory scanning.

Key changes:
- Updated `.github/TEST_README.md` to document the new runner routing via `runner_mapping` and automatic card-dir routing.
- Documented new local test execution commands: `--run-all-modules`, `--run-a5`, and `--test-list-file`.
- Removed outdated local execution examples (`--diff-base`, `--changed-files`) and updated the development/testing instructions for `select_tests.py`.

### Does this PR introduce _any_ user-facing change?

No. These changes only affect the internal CI/CD test selection and coverage pipelines.

### How was this patch tested?

Documentation update only.
References
  1. The PR title and summary must follow the specified formats in the Repository Style Guide. (link)

@github-actions github-actions Bot added documentation Improvements or additions to documentation ci/build labels Aug 21, 2026
@github-actions

Copy link
Copy Markdown
Contributor

👋 Hi! Thank you for contributing to the vLLM Ascend project. The following points will speed up your PR merge:‌‌

  • A PR should do only one thing, smaller PRs enable faster reviews.
  • Every PR should include unit tests and end-to-end tests ‌to ensure it works and is not broken by other future PRs.
  • Write the commit message by fulfilling the PR description to help reviewer and future developers understand.

If CI fails, you can run linting and testing checks locally according Contributing and Testing.

Rework the CI test-selection and coverage tooling:

- select_tests.py: convert from a module-map selector into a pure
  routing/grouper. Removes --changed-files/--diff-base/module matching
  (source_file_dependencies). Adds --run-all-modules (full directory scan
  of tests/ut and e2e pull_request cards) and --run-a5 (curated A5 suite on
  the A5 x4 runner). Keep --test-list-file and --explicit-e2e-tests.
- test_config.yaml: drop all module->test blocks and source dependency
  matching. Keep skip_tests / runner_mapping / partition / estimated_times
  at top level. Remove stale estimated_times entries.
- coverage.py: validate against the directory-scanned test universe; no
  longer derive scope from source_file_dependencies; drop source-coverage
  reporting.
- update_estimated_times.py: read estimated_times from the single-document
  config (docs[0]) instead of the removed second YAML document.
- Add stable production scripts coverage_recommender.py (PR coverage test
  recommendation) and map_builder.py (build test_case_map.json), renamed
  from the test_-prefixed names to clarify they are CI tools.
- Split merge_extra_recommended_tests.py into
  merge_extra_recommended_tests_files.py and prune_extra_recommended_tests.py.
- Move upload-coverage-to-obs out of _selected_tests.yaml into
  schedule_test_coverage.yaml; drop now-unused OBS secrets from
  _selected_tests.yaml.
- pr_test.yaml: scope-all uses --run-all-modules, scope-a5 uses --run-a5;
  restore pre-commit/select-tests in run-selected-tests* needs; drop the
  analyze-failure-report job and its _analyze_failure.yaml/report scripts.
- Remove test files and conftest from workflows/scripts (no unit tests are
  kept in that directory). Update TEST_README.md for the new CLI.

Signed-off-by: wangxiyuan <wangxiyuan1007@gmail.com>
@github-actions

Copy link
Copy Markdown
Contributor

This pull request has conflicts, please resolve those before we can evaluate the pull request.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci/build documentation Improvements or additions to documentation merge-conflicts

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant