Run VS Code E2E tests only for CLI and VS Code extension changes
- Dominant language
- C#
- Stars
- 6.3k
- Forks
- 991
- Avg merge
- 2d 15h
- Merged PRs (30d)
- 196
Description
## Problem
The VS Code end-to-end tests should not run unconditionally for every change, because they add significant time and resource usage to workflows that do not affect the VS Code integration.
## Current implementation and relevant context
The current test-selection path already contains the intended gating logic:
- [`tests.yml`](https://github.com/microsoft/aspire/blob/main/.github/workflows/tests.yml) exposes `run_extension_e2e` from the selector and gates the `extension_e2e_tests` reusable workflow on that output.
- [`select-tests/action.yml`](https://github.com/microsoft/aspire/blob/main/.github/actions/select-tests/action.yml) computes the selection from the PR's base-to-head diff and emits the non-.NET job gates, including `run_extension_e2e`.
- The selector uses the curated trigger map at [`eng/github-ci/test-trigger-map.yml`](https://github.com/microsoft/aspire/blob/main/eng/github-ci/test-trigger-map.yml), which should define the CLI and VS Code extension paths that trigger `run_extension_e2e`.
- The VS Code E2E workflow itself is [`extension-e2e-tests.yml`](https://github.com/microsoft/aspire/blob/main/.github/workflows/extension-e2e-tests.yml); it is reusable and does not define the change-selection policy itself.
PR [#20092](https://github.com/microsoft/aspire/pull/20092) is unrelated to the selector behavior; it changes Kafka AppHost health-check producer lifetime. The relevant selector and workflow wiring should be reviewed in the files above rather than treating that PR as evidence that VS Code E2E tests are unconditional.
## Proposed change
Verify and maintain the selector configuration so the VS Code E2E tests run when a change affects either:
- The Aspire CLI
- The VS Code extension
They should be skipped for unrelated changes. If the trigger map or selector wiring does not currently express those rules consistently, update it and add regression coverage for the affected paths.
## Acceptance criteria
- VS Code E2E tests are not run for unrelated changes.
- CLI changes trigger the VS Code E2E tests.
- VS Code extension changes trigger the VS Code E2E tests.
- The trigger-map and workflow wiring are documented or covered by appropriate CI validation.
- Existing required checks and developer feedback are preserved for the affected areas.
Contributor guide
Research direction
Review .github/workflows/tests.yml and .github/actions/select-tests/action.yml first, then compare their run_extension_e2e wiring with eng/github-ci/test-trigger-map.yml and extension-e2e-tests.yml. Run or add regression coverage for the selector paths so unrelated changes skip the workflow while CLI and VS Code extension changes trigger it, preserving existing checks.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- github-actions, vscode
- Domain
- ci-cd, cli, devtools
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 72/100