[automated] fix(ci): select installer jobs and loose CI dependencies correctly - #19687
Conversation
|
🚀 Dogfood this PR with:
curl -fsSL https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.sh | bash -s -- 19687Or
iex "& { $(irm https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.ps1) } 19687" |
This comment has been minimized.
This comment has been minimized.
There was a problem hiding this comment.
Pull request overview
Refines conditional CI selection so installer jobs and loose dependencies route correctly, while schedule/outerloop-only targets remain advisory.
Changes:
- Adds precise routing and skip classifications for CI inputs.
- Separates PR-runnable work from advisory workflow impact.
- Expands selector regression tests and maintenance guidance.
Reviewed changes
Copilot reviewed 11 out of 11 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
tools/SelectTests/TestSelector.cs |
Updates selector terminology. |
tools/SelectTests/Program.cs |
Separates PR and advisory targets in reports. |
tests/Infrastructure.Tests/TestTriggerMap/TestTriggerMapTests.cs |
Verifies real-map routing and target vocabulary. |
tests/Infrastructure.Tests/TestTriggerMap/SelectTestsCliTests.cs |
Tests advisory report rendering. |
tests/Infrastructure.Tests/TestTriggerMap/SelectTestsAcceptanceTests.cs |
Tests new prefilter classifications. |
eng/github-ci/test-trigger-map.yml |
Adds and corrects CI dependency routing. |
eng/github-ci/ci-skip-entirely-patterns.txt |
Excludes independently validated or inert files. |
docs/ci/test-trigger-selector-design.md |
Documents advisory-target behavior. |
docs/ci/test-trigger-map.md |
Expands map maintenance guidance. |
AGENTS.md |
Adds conditional-selection review guidance. |
.agents/skills/code-review/SKILL.md |
Incorporates selector checks into reviews. |
💡 Add a code-review agent skill for context-aware, tailored reviews. Learn more in the docs.
a64e3be to
9477701
Compare
This comment has been minimized.
This comment has been minimized.
|
Retrying the failed CI jobs for this pull request from the CI run attempt. The rerun is being tracked in the rerun attempt. |
9477701 to
c84a5d9
Compare
This comment has been minimized.
This comment has been minimized.
|
Retrying the failed CI jobs for this pull request from the CI run attempt. The rerun is being tracked in the rerun attempt. |
|
Retrying the failed CI jobs for this pull request from the CI run attempt. The rerun is being tracked in the rerun attempt. |
|
Retrying the failed CI jobs for this pull request from the CI run attempt. The rerun is being tracked in the rerun attempt. |
c84a5d9 to
d7e514b
Compare
This comment has been minimized.
This comment has been minimized.
|
Retrying the failed CI jobs for this pull request from the CI run attempt. The rerun is being tracked in the rerun attempt. |
|
Retrying the failed CI jobs for this pull request from the CI run attempt. The rerun is being tracked in the rerun attempt. |
|
Retrying the failed CI jobs for this pull request from the CI run attempt. The rerun is being tracked in the rerun attempt. |
Loose CI inputs could fall through to ALL or miss gated jobs, and audit output mixed regular PR work with independently scheduled targets. A broad skip pattern could also suppress CI for root VS Code launch and task changes consumed by extension tests. Route Layer 2 inputs to exact consumers or explicit classifications, separate advisory targets in comments and summaries, and add exact-set regressions for under- and over-selection. Keep enforcement disabled. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 0a785829-bac9-47ca-9fcf-34019bf2950e
The selector documentation had stale job tokens and ambiguous ALL and advisory semantics, leaving future changes without a reliable procedure for classifying loose CI inputs. Document the executable target vocabulary, independently scheduled work, the Layer 1 versus Layer 2 decision process, and the focused validation needed when routing rules change. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 0a785829-bac9-47ca-9fcf-34019bf2950e
Pull request reviews did not prompt reviewers to check selector routing when changes add test projects, CI jobs, reusable workflows, or loose inputs consumed outside the ProjectGraph. Add concise repository-wide and review-skill guidance for tracing real consumers, preserving run_* wiring, and requiring focused selector regressions. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 0a785829-bac9-47ca-9fcf-34019bf2950e
d7e514b to
8ee71d0
Compare
Tests selector (audit mode)The regular PR test matrix and PR-gated jobs still run in audit mode. The PR tests and jobs below are what selective CI would run under enforcement. Advisory-only targets are reported here but are not scheduled through the regular PR matrix or job gates; independent workflows may still run them for a PR. 1 / 99 PR test projects · 0 PR jobs · 0 advisory-only targets, from 7 changed files. Selected PR test projects (1 / 99)
Selected PR jobs (0)none Advisory workflow impact (0)none How these were chosen — grouped by what changed📄 📄 🧪 🧪 🧪 📄 📄 Job reasonsnone Selection computed for commit |
Description
[automated] Conditional-test audit results can currently miss gated installer jobs, force unnecessary full matrices, and present schedule/outerloop-only targets as PR-runnable work. For example, an edit to the reusable installer workflow selects
Infrastructure.Testsbut not the WinGet or Homebrew jobs it implements. Several loose CI inputs instead report:The curated map did not cover every runtime script/config dependency, and the audit renderer treated every selected token as work that PR enforcement could run.
This change routes confirmed loose inputs to their actual consumers, makes CI-wide inputs explicit
ALL, and explicitly accounts for paths already exercised by baseline or dedicated workflows as well as paths with no PR-CI consumer. Audit comments and job summaries now separate PR-gated work from advisory workflow impact that is scheduled independently of the regular selector gates.Repository-wide code-review guidance now prompts reviewers to check selector routing when PRs add test projects, CI jobs/workflows, or loose CI inputs, while avoiding manual mappings for ProjectGraph-owned .NET changes.
Native CLI archive verifier scripts remain in the main CI workflow but no longer select tests because the unconditional archive jobs already execute them. The Windows-only template catalog generator and schedule-only skills updater are classified outside PR CI. The cross-platform CLI starter validator is also outside selector targets because unconditional PR jobs already execute it. The bundle verifier remains covered by its dedicated PR workflow. Root VS Code settings and Pyright configuration skip the main matrix because they have no CI consumer; root VS Code launch and task configuration route to the extension unit job. Copilot canvas extension changes skip the main matrix and continue through their dedicated validation workflow.
Selector enforcement remains disabled (
enforce: 'false'). Unowned source and shared-file changes still fail safe toALL.Validation:
Checklist
<remarks />and<code />elements on your triple slash comments?