Pipelines | Restore SQL Server 2022 coverage in the CI test matrix - #4587
Pipelines | Restore SQL Server 2022 coverage in the CI test matrix#4587cheenamalhotra wants to merge 2 commits into
Conversation
Adds back windows_sql_22_x64 (ADO-MMS22-SQL22) and linux_ub22_sql_22 (ADO-UB22-SQL22) to the CI-SqlClient test configurations, so moving the primary configurations to SQL Server 2025 does not drop SQL Server 2022 coverage entirely. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Restores SQL Server 2022 coverage in the Azure DevOps CI test matrix by adding dedicated Windows and Linux test configurations that run against locally installed SQL Server 2022 images, complementing the primary SQL Server 2025 coverage.
Changes:
- Add a new Windows Server 2022 + local SQL Server 2022 test configuration (
windows_sql_22_x64) usingADO-MMS22-SQL22and$(SQL22RootPath). - Add a new Ubuntu 22 + local SQL Server 2022 test configuration (
linux_ub22_sql_22) usingADO-UB22-SQL22.
Suppressed comments (1)
eng/pipelines/dotnet-sqlclient-ci-core.yml:596
linux_ub22_sql_22is added unconditionally totestConfigurations, so it will run in PR pipelines as well (they passbuildSuffix: 'pr'but still inherit all non-legacy configurations). If SQL Server 2022 coverage is intended to be CI-only, this should be gated the same way as the Windows 2022 entry (e.g.,${{ if eq(parameters.buildSuffix, 'ci') }}or a dedicated parameter).
# Linux Ubuntu 22 with local SQL Server 2022, x64 build platform.
#
# Keeps Linux SQL Server 2022 coverage now that the primary Linux
# configuration below runs against SQL Server 2025.
linux_ub22_sql_22:
pool: ${{parameters.defaultPoolName }}
images:
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| # Windows Server 22 with local SQL Server 2022, x64 build platform. | ||
| # | ||
| # SQL Server 2025 is covered by windows_sql_25_x64 below. This | ||
| # configuration keeps SQL Server 2022 in the coverage matrix, alongside | ||
| # the 2016/2017/2019 configurations above. | ||
| windows_sql_22_x64: | ||
| pool: ${{parameters.defaultPoolName }} |
There was a problem hiding this comment.
Good catch - addressed in 1a2b3af61.
Both SQL 2022 configurations are now grouped under a single ${{ if eq(parameters.runSql22Tests, true) }} conditional (mirroring the existing runLegacySqlTests block), and sqlclient-pr-project-ref-pipeline.yml / sqlclient-pr-package-ref-pipeline.yml pass runSql22Tests: false. PR validation stays on SQL Server 2019, 2025 and Azure SQL; SQL 2022 is CI-only.
I used a dedicated parameter rather than buildSuffix, to match how legacy SQL coverage is already gated, and a single conditional block rather than two so there aren't duplicate conditional keys in the same mapping.
Groups windows_sql_22_x64 and linux_ub22_sql_22 under a single runSql22Tests conditional (mirroring the existing legacy SQL block) and opts the PR pipelines out, so PR validation stays on SQL Server 2019, 2025 and Azure SQL. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
80a921b to
1a2b3af
Compare
Stacked PR 4 of 4. Base:
dev/automation/ci-retire-hosted-agents(#4515), which stacks on #4514 → #4513.Summary
Addresses the outstanding review feedback on #4513: moving the primary CI configurations to SQL Server 2025 removed SQL Server 2022 coverage entirely. This restores it.
windows_sql_22_x64Win22_Sql22ADO-MMS22-SQL22linux_ub22_sql_22Ubuntu22_Sql22ADO-UB22-SQL22Both run against a locally installed SQL Server 2022 (
configSqlFor: local), mirroring the 2016/2017/2019 configurations. The Windows job uses$(SQL22RootPath).Target frameworks use the non-primary lists (
targetFrameworks/targetFrameworksUnix), consistent with the other legacy-SQL configurations — the newest runtimes are still validated first on the primary SQL 2025 / Azure SQL configurations.Feedback addressed
windows_sql_22_x64section here, and run it on an agent with SQL 2022 installed locally."The Linux configuration is included because #4513 also collapsed the Linux SQL 2022 jobs into a single SQL 2025 job.
CI-only gating
Both configurations sit under a single
${{ if eq(parameters.runSql22Tests, true) }}conditional, mirroring the existingrunLegacySqlTestsblock.sqlclient-pr-project-ref-pipeline.ymlandsqlclient-pr-package-ref-pipeline.ymlpassrunSql22Tests: false, so PR validation stays on SQL Server 2019, 2025 and Azure SQL, and PR runtime/cost is unchanged.Note
Two new CI stages (
Win22_Sql22,Ubuntu22_Sql22) are added. No existing stage names change in this PR.Checklist