-
Notifications
You must be signed in to change notification settings - Fork 513
Simplify the PR test matrix #4049
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Draft
sharwell
wants to merge
9
commits into
DotNetAnalyzers:master
Choose a base branch
from
sharwell:test-matrix
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Member
sharwell
commented
Dec 1, 2025
- Added a planner (build/compute-impacted-tests.ps1) that diffs against the PR target branch, detects changed analyzers/code fixes, dependency changes, and touched test files, builds a per-language plan (full vs class-filtered), publishes test-plan.json, and exposes AllTestsFull with a safe fallback to a full matrix on failure.
- Updated the pipeline template (build/build-and-test.yml) to introduce a PlanTests job, publish the plan artifact, force full runs for C# 6 and the latest project, and gate the coverage stage on AllTestsFull; added a LatestLangVersion parameter.
- Taught the test template (build/test.yml) to consume the plan, support forced-full runs, skip execution when no classes are selected, use xUnit response files for class filters, avoid coverage on partial runs, and tolerate missing result files when nothing runs.
- Wired the root pipeline (azure-pipelines.yml) to pass the latest language version parameter.
* Added a planner (build/compute-impacted-tests.ps1) that diffs against the PR target branch, detects changed analyzers/code fixes, dependency changes, and touched test files, builds a per-language plan (full vs class-filtered), publishes test-plan.json, and exposes AllTestsFull with a safe fallback to a full matrix on failure. * Updated the pipeline template (build/build-and-test.yml) to introduce a PlanTests job, publish the plan artifact, force full runs for C# 6 and the latest project, and gate the coverage stage on AllTestsFull; added a LatestLangVersion parameter. * Taught the test template (build/test.yml) to consume the plan, support forced-full runs, skip execution when no classes are selected, use xUnit response files for class filters, avoid coverage on partial runs, and tolerate missing result files when nothing runs. * Wired the root pipeline (azure-pipelines.yml) to pass the latest language version parameter.
* Added build/Run-ImpactedTests.ps1, which builds (unless -NoBuild), computes impacted tests via the planner against a target branch (default upstream/master), and runs only the needed xUnit test classes locally while always exercising C# 6 and the latest suite. Results drop under artifacts/test-results, with options for -LangVersions and -VerboseLogging. * Enhanced build/compute-impacted-tests.ps1 to accept -TargetBranch and -AssumePullRequest, enabling local diff-based planning without a PR pipeline. * Documented the local selective test workflow in CONTRIBUTING.md, including usage examples and options.
* Updated build/Run-ImpactedTests.ps1 to auto-detect the target branch when none is provided: it now looks for a git remote pointing at DotNetAnalyzers/StyleCopAnalyzers (HTTPS or SSH) and uses <remote>/master; otherwise it falls back to origin/master. The resolved branch is logged. * The TargetBranch parameter default is now empty to trigger auto-detection, and the help text describes the behavior.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #4049 +/- ##
========================================
Coverage 97.42% 97.43%
========================================
Files 977 979 +2
Lines 114316 114480 +164
Branches 3416 3418 +2
========================================
+ Hits 111376 111540 +164
Misses 1944 1944
Partials 996 996 🚀 New features to boost your workflow:
|
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.