microsoft / microsoft/aspire

Run VS Code E2E tests only for CLI and VS Code extension changes

Open
#20,093 0 comments 0 reactions 0 assignees View on GitHub
area-cli area-vscode testing ☑️
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.