Skip to content

Pipelines | Add .NET 10 test coverage to the CI-SqlClient pipeline - #4514

Draft
cheenamalhotra wants to merge 1 commit into
dev/automation/ci-sql2025-imagesfrom
dev/automation/ci-net10-coverage
Draft

Pipelines | Add .NET 10 test coverage to the CI-SqlClient pipeline#4514
cheenamalhotra wants to merge 1 commit into
dev/automation/ci-sql2025-imagesfrom
dev/automation/ci-net10-coverage

Conversation

@cheenamalhotra

Copy link
Copy Markdown
Member

Stacked PR 2 of 3. Targets dev/automation/ci-sql2025-images (#4513) - review that one first. Follow-up: (3) hosted-agent retirement.

Summary

Adds .NET 10 test coverage to the CI-SqlClient pipeline.

Introduces primaryTargetFrameworks and primaryTargetFrameworksUnix, which apply only to the primary test configurations - local SQL Server 2025 and Azure SQL, on both Windows and Linux. Those four configurations now run net10.0 in addition to their existing target frameworks. Each of those configurations runs the unit, functional, and manual test sets, so this covers all three for .NET 10.

Restricting .NET 10 to the primary configurations keeps the added agent cost bounded rather than multiplying it across every legacy SQL Server image. The other pipelines that extend the CI core (ci-package-reference, pr-package-ref, pr-project-ref) pin the new parameters to their existing target framework lists, so their behaviour is unchanged.

Note on what this validates

The driver itself only targets net462, net8.0, and net9.0, so the net10.0 test assemblies resolve the net9.0 driver build. These jobs therefore validate the driver on the .NET 10 runtime, rather than validating a .NET 10 build of the driver. This is called out in a comment in the pipeline.

global.json already pins SDK 10.0.300, so no SDK installation changes were needed.

Checklist

  • Tests added or updated - n/a, pipeline-only change (this change is additional test coverage)
  • Public API changes documented - n/a
  • Verified against customer repro - n/a
  • Ensure no breaking changes introduced - additive only; other pipelines pin the new parameters to preserve current behaviour

All modified YAML files parse cleanly. These changes have not yet been executed against Azure DevOps.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a “primary configuration” target framework override to the shared CI core template so the CI-SqlClient pipeline can run its main SQL Server 2025 + Azure SQL test legs on the .NET 10 runtime, while keeping other pipelines’ framework matrices unchanged.

Changes:

  • Introduces primaryTargetFrameworks / primaryTargetFrameworksUnix parameters and wires them into the SQL 2025 + Azure SQL Windows/Linux configurations in dotnet-sqlclient-ci-core.yml.
  • Updates the CI-SqlClient (project-reference) pipeline to expose and pass the new parameters, defaulting primary legs to include net10.0 while keeping legacy-image legs on the previous framework set.
  • Pins the new parameters in the PR and package-reference pipelines so their behavior remains aligned with their existing targetFrameworks / targetFrameworksUnix values.

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated no comments.

Show a summary per file
File Description
eng/pipelines/dotnet-sqlclient-ci-core.yml Adds primary-framework parameters and uses them for SQL 2025 + Azure SQL legs (Windows/Linux).
eng/pipelines/dotnet-sqlclient-ci-project-reference-pipeline.yml Defines and threads primary-framework parameters; primary legs include net10.0 by default.
eng/pipelines/dotnet-sqlclient-ci-package-reference-pipeline.yml Pins primary-framework parameters to the existing framework lists to avoid behavioral changes.
eng/pipelines/sqlclient-pr-package-ref-pipeline.yml Pins primary-framework parameters to match PR pipeline framework lists (no expansion).
eng/pipelines/sqlclient-pr-project-ref-pipeline.yml Pins primary-framework parameters to match PR pipeline framework lists (no expansion).

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@cheenamalhotra
cheenamalhotra marked this pull request as draft August 7, 2026 23:17
Introduce primaryTargetFrameworks and primaryTargetFrameworksUnix, which
apply only to the primary test configurations: local SQL Server 2025 and
Azure SQL, on both Windows and Linux.  Those configurations now run
net10.0 in addition to the existing target frameworks.

Restricting .NET 10 to the primary configurations keeps the added agent
cost bounded rather than multiplying it across every legacy SQL Server
image.  The other pipelines that extend the CI core pin the new
parameters to their existing target framework lists, so their behaviour
is unchanged.

Note that the driver itself only targets net462, net8.0, and net9.0, so
the net10.0 test assemblies resolve the net9.0 driver build.  These jobs
therefore validate the driver on the .NET 10 runtime rather than
validating a .NET 10 build of the driver.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 10246002-c950-42a7-adf5-1698f9af4b3d
Copilot AI review requested due to automatic review settings August 8, 2026 06:49
@cheenamalhotra
cheenamalhotra force-pushed the dev/automation/ci-net10-coverage branch from ddd25ba to 871f38c Compare August 8, 2026 06:49

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 5 out of 5 changed files in this pull request and generated no new comments.

Suppressed comments (1)

eng/pipelines/dotnet-sqlclient-ci-core.yml:46

  • The comment describing “primary test configurations” is a bit ambiguous because there are multiple SQL Server 2025 configurations in this template (e.g., x86, named instance, macOS docker). Since only a subset of these configurations is wired to primaryTargetFrameworks*, consider calling out the specific config keys treated as “primary” so future edits don’t mistakenly assume all SQL 2025 variants are included.
  # The target frameworks to build and run tests for on Windows, for the
  # primary test configurations (local SQL Server 2025 and Azure SQL).
  #
  # These configurations carry the broadest coverage, so newer runtimes are
  # validated here first before being enabled across every configuration.

@codecov

codecov Bot commented Aug 8, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
⚠️ Please upload report for BASE (dev/automation/ci-sql2025-images@13f3e59). Learn more about missing BASE report.

Additional details and impacted files
@@                         Coverage Diff                         @@
##             dev/automation/ci-sql2025-images    #4514   +/-   ##
===================================================================
  Coverage                                    ?   62.69%           
===================================================================
  Files                                       ?      283           
  Lines                                       ?    67041           
  Branches                                    ?        0           
===================================================================
  Hits                                        ?    42031           
  Misses                                      ?    25010           
  Partials                                    ?        0           
Flag Coverage Δ
PR-SqlClient-Project 62.69% <ø> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: To triage

Development

Successfully merging this pull request may close these issues.

2 participants