Pipelines | Move CI and PR pipelines to SQL Server 2025 agent images - #4513
Pipelines | Move CI and PR pipelines to SQL Server 2025 agent images#4513cheenamalhotra wants to merge 2 commits into
Conversation
There was a problem hiding this comment.
Pull request overview
Updates Azure DevOps CI/PR pipeline YAML to retire SQL Server 2022 hosted-agent images and switch execution to the SQL Server 2025 agent image equivalents across CI, PR validation, Azure package integration jobs, stress runs, managed instance jobs, and Linux enclave configuration.
Changes:
- Replaced all
ADO-MMS22-SQL22*Windows images withADO-MMS25-SQL25*. - Replaced
ADO-UB22-SQL22Linux images withADO-UB24-SQL25(including consolidation of the Linux local-SQL config to a single Ubuntu 24 image). - Updated references and comments related to SQL Server 2025 and
SQL25RootPath.
Reviewed changes
Copilot reviewed 8 out of 8 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| eng/pipelines/stages/build-azure-package-ci-stage.yml | Moves Azure package CI integration jobs to SQL 2025 agent images and updates SQL root-path variable usage. |
| eng/pipelines/pr/steps/configure-sqlserver-windows-step.yml | Updates PR-step documentation comment to reference SQL 2025 Windows images. |
| eng/pipelines/pr/steps/configure-sqlserver-linux-step.yml | Updates PR-step documentation comment to reference SQL 2025 Linux images. |
| eng/pipelines/pr/sqlclient-pr-pipeline.yml | Updates PR validation platform image matrix from SQL 2022 to SQL 2025 images. |
| eng/pipelines/dotnet-sqlclient-ci-core.yml | Updates CI test configurations, image keys, and SQL root-path variable usage for SQL 2025 images (including stage key renames). |
| eng/pipelines/common/templates/steps/configure-sql-server-win-step.yml | Updates common Windows SQL configuration step documentation comment to reference SQL 2025 images. |
| eng/pipelines/ci/stress/sqlclient-ci-stress-stage.yml | Updates stress test stage to run on SQL 2025 agent images. |
| eng/pipelines/ci/managed-instance/sqlclient-ci-managed-instance-stage.yml | Updates managed instance CI jobs to run on SQL 2025 agent images. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| pool: ADO-CI-AE-1ES-Pool | ||
| images: | ||
| Ubuntu20_Enclave_Sql19: ADO-UB22-Sql22 | ||
| Ubuntu20_Enclave_Sql19: ADO-UB24-SQL25 |
There was a problem hiding this comment.
Intentionally not renaming this key, and I documented why in 13f3e591d.
Two reasons:
- The key doubles as the generated ADO stage name and is referenced by branch policies / required status checks. Renaming it here would compound the stage-rename migration this PR already requires.
- The suggested rename would actually be less accurate. The
Sql19suffix is correct: these tests target a remote Enclave-enabled SQL Server 2019 (seeTCPConnectionStringHGSVBS/AASSGXandconfigSqlFor: enclave). Only the agent image moved to Ubuntu 24 - the SQL Server under test is unchanged.
The stale part is just the Ubuntu20 prefix, so I added a comment at that site recording the reasoning rather than renaming.
Retire every SQL Server 2022 agent image in favour of the SQL Server 2025
equivalents:
ADO-MMS22-SQL22 -> ADO-MMS25-SQL25
ADO-UB22-SQL22 -> ADO-UB24-SQL25
This covers the CI test configurations, the PR pipeline platform list,
the Azure package integration test jobs (including the SQL root path,
which becomes SQL25RootPath), the Managed Instance jobs, the stress test
jobs, and the Linux enclave configuration.
Two notes on the change:
- CI test stage names derive from the image keys, so stages such as
Win22_Sql22 are now named Win25_Sql25. Any branch policies or
required status checks that reference the old stage names will need
to be updated.
- The Linux SQL configuration previously ran on both ADO-UB20-SQL22
and ADO-UB22-SQL22. We only have a single Ubuntu SQL 2025 image, so
it now runs on ADO-UB24-SQL25 alone.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 10246002-c950-42a7-adf5-1698f9af4b3d
The Linux enclave image key doubles as the generated ADO stage name and is referenced by branch policies and required status checks, so it is kept as-is. The 'Sql19' suffix also remains accurate because these tests target a remote Enclave-enabled SQL Server 2019; only the agent image moved to Ubuntu 24. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 10246002-c950-42a7-adf5-1698f9af4b3d
5c1b606 to
13f3e59
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #4513 +/- ##
==========================================
- Coverage 64.63% 62.81% -1.83%
==========================================
Files 288 283 -5
Lines 44088 67041 +22953
==========================================
+ Hits 28497 42111 +13614
- Misses 15591 24930 +9339
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Stacked PR 1 of 3. Follow-ups: (2) .NET 10 coverage, (3) hosted-agent retirement.
Summary
Retires every SQL Server 2022 agent image in favour of the SQL Server 2025 equivalents:
ADO-MMS22-SQL22ADO-MMS25-SQL25ADO-UB22-SQL22ADO-UB24-SQL25ADO-MMS22-SQL22-WITH-NAMED-INSTANCEADO-MMS25-SQL25-WITH-NAMED-INSTANCEThis covers the CI test configurations, the PR pipeline platform list, the Azure package integration test jobs (including the SQL root path, which becomes
SQL25RootPath), the Managed Instance jobs, the stress test jobs, and the Linux enclave configuration. After this change there is no remaining use ofADO-MMS22-SQL22orADO-UB22-SQL22.Images deliberately left alone, since they provide legacy SQL Server coverage rather than SQL 2022 coverage:
ADO-UB20-SQL22(Kerberos),ADO-MMS22-SQL16,ADO-MMS22-SQL17,ADO-MMS22-SQL19.Action required before merge
CI test stage names derive from the image keys, so stages such as
Win22_Sql22are now namedWin25_Sql25. Any branch policies or required status checks that reference the old stage names must be updated, otherwise they will hang waiting for stages that no longer exist.Linux enclave stage key
The Linux enclave image key
Ubuntu20_Enclave_Sql19is deliberately left unchanged, for two reasons:Sql19suffix is still accurate. These tests target a remote Enclave-enabled SQL Server 2019; only the agent image moved to Ubuntu 24.A comment was added at that site recording this, so the mismatch is not mistaken for an oversight.
Behaviour note
The Linux SQL configuration previously ran on both
ADO-UB20-SQL22andADO-UB22-SQL22. We only have a single Ubuntu SQL 2025 image, so it now runs onADO-UB24-SQL25alone. This reduces that configuration job count.Checklist
All modified YAML files parse cleanly. These changes have not yet been executed against Azure DevOps.