Skip to content

Pipelines | Move CI and PR pipelines to SQL Server 2025 agent images - #4513

Draft
cheenamalhotra wants to merge 2 commits into
mainfrom
dev/automation/ci-sql2025-images
Draft

Pipelines | Move CI and PR pipelines to SQL Server 2025 agent images#4513
cheenamalhotra wants to merge 2 commits into
mainfrom
dev/automation/ci-sql2025-images

Conversation

@cheenamalhotra

@cheenamalhotra cheenamalhotra commented Aug 7, 2026

Copy link
Copy Markdown
Member

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:

Old image New image
ADO-MMS22-SQL22 ADO-MMS25-SQL25
ADO-UB22-SQL22 ADO-UB24-SQL25
ADO-MMS22-SQL22-WITH-NAMED-INSTANCE ADO-MMS25-SQL25-WITH-NAMED-INSTANCE

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. After this change there is no remaining use of ADO-MMS22-SQL22 or ADO-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_Sql22 are now named Win25_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_Sql19 is deliberately left unchanged, for two reasons:

  1. It doubles as the generated ADO stage name and is referenced by branch policies / required status checks.
  2. The Sql19 suffix 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-SQL22 and ADO-UB22-SQL22. We only have a single Ubuntu SQL 2025 image, so it now runs on ADO-UB24-SQL25 alone. This reduces that configuration job count.

Checklist

  • Tests added or updated - n/a, pipeline-only change
  • Public API changes documented - n/a
  • Verified against customer repro - n/a
  • Ensure no breaking changes introduced - no product code touched; see the stage-rename note above

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

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 with ADO-MMS25-SQL25*.
  • Replaced ADO-UB22-SQL22 Linux images with ADO-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

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Intentionally not renaming this key, and I documented why in 13f3e591d.

Two reasons:

  1. 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.
  2. The suggested rename would actually be less accurate. The Sql19 suffix is correct: these tests target a remote Enclave-enabled SQL Server 2019 (see TCPConnectionStringHGSVBS / AASSGX and configSqlFor: 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.

@cheenamalhotra cheenamalhotra added this to the 7.1.0-preview3 milestone Aug 7, 2026
@cheenamalhotra
cheenamalhotra marked this pull request as draft August 7, 2026 23:17
cheenamalhotra and others added 2 commits August 7, 2026 23:48
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
Copilot AI review requested due to automatic review settings August 8, 2026 06:49
@cheenamalhotra
cheenamalhotra force-pushed the dev/automation/ci-sql2025-images branch from 5c1b606 to 13f3e59 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 8 out of 8 changed files in this pull request and generated no new comments.

@codecov

codecov Bot commented Aug 9, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 62.81%. Comparing base (9b20e5e) to head (13f3e59).

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     
Flag Coverage Δ
CI-SqlClient ?
PR-SqlClient-Project 62.81% <ø> (?)

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.

4 participants