[automated] fix(ci): explicitly classify benchmark projects for selective CI
- Dominant language
- C#
- Stars
- 6.3k
- Forks
- 991
- Avg merge
- 2d 15h
- Merged PRs (30d)
- 196
Description
[automated]
### Is there an existing issue for this?
- [x] I have searched the existing issues
### Describe the bug
The selective PR CI map does not explicitly classify the benchmark projects outside the `Aspire.slnx`-rooted ProjectGraph.
Run [34247134578](https://github.com/microsoft/aspire/actions/runs/34247134578) for #19431 reported `benchmarks/Aspire.Dashboard.Benchmarks/Aspire.Dashboard.Benchmarks.csproj` in `unattributedFiles`. The run still selected `ALL` because `Directory.Packages.props` independently triggered the broad rule, so no test coverage was lost in this run. However, an isolated benchmark-project change relies on the conservative unattributed-file fallback instead of an intentional route or explicit no-PR-CI classification.
The same structural gap exists for `benchmarks/Aspire.Cli.Benchmarks/Aspire.Cli.Benchmarks.csproj`.
The benchmark projects predate selective CI: the dashboard benchmark project was added in #17299 and the CLI benchmark project in #16982. The initial selector map in #18127 did not cover them. The current real-map invariants check projects under `src/` and `tests/`, but not `benchmarks/`.
### Expected Behavior
Every tracked project outside `Aspire.slnx` should be explicitly accounted for by `eng/github-ci/test-trigger-map.yml`: routed to its actual PR-CI consumer, routed to `ALL` when broadly shared, or classified as having no PR-CI consumer. Real-map tests should fail when a benchmark project is neither in the solution graph nor covered by a curated rule.
### Steps To Reproduce
1. Change `benchmarks/Aspire.Dashboard.Benchmarks/Aspire.Dashboard.Benchmarks.csproj` in a pull request.
2. Run the enforcing test selector.
3. Inspect `select-tests-selection.json`.
4. Observe the project file under `unattributedFiles`; without another broad trigger, it falls back to `ALL`.
### Exceptions (if any)
N/A
### Aspire doctor output
N/A — this is GitHub Actions selector infrastructure.
### Anything else?
Observed evidence: https://github.com/microsoft/aspire/actions/runs/34247134578
Related rollout tracking: #19787
Contributor guide
Research direction
Start with eng/github-ci/test-trigger-map.yml and run the enforcing test selector, then inspect select-tests-selection.json for the benchmark project entries. Check the real-map invariants described in the issue and account for both benchmark projects through a curated route, ALL, or an explicit no-consumer classification. Done means isolated benchmark changes are no longer unattributed and the real-map tests reject uncovered benchmark projects.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp, github-actions
- Domain
- ci-cd, tooling
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 68/100