Skip to content

Replace ubuntu22 VM and Helix images with Azure Linux 3#53792

Open
marcpopMSFT wants to merge 3 commits intorelease/8.0.1xxfrom
ubuntu22-to-azurelinux-8.0
Open

Replace ubuntu22 VM and Helix images with Azure Linux 3#53792
marcpopMSFT wants to merge 3 commits intorelease/8.0.1xxfrom
ubuntu22-to-azurelinux-8.0

Conversation

@marcpopMSFT
Copy link
Copy Markdown
Member

Replace Ubuntu 22.04 VM pool images, Helix queues, and agentOs labels with Azure Linux 3 equivalents across CI/PR pipelines.

Changes:

  • 1es-ubuntu-2204-open -> build.azurelinux.3.amd64.open
  • 1es-ubuntu-2204 -> build.azurelinux.3.amd64
  • build.ubuntu.2204.amd64.open -> build.azurelinux.3.amd64.open
  • build.ubuntu.2204.amd64 -> build.azurelinux.3.amd64
  • ubuntu.2204.amd64.open -> azurelinux.3.amd64.open
  • Ubuntu.2204.Amd64 -> AzureLinux.3.Amd64
  • agentOs: Ubuntu_22_04 -> AzureLinux_3
  • vmImage: ubuntu-22.04 -> demands-based pool with azurelinux image

Container images and eng/common (from arcade) are unchanged.

Copilot AI review requested due to automatic review settings April 10, 2026 00:03
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Updates this repo’s Azure Pipelines configuration to migrate Linux CI/PR jobs from Ubuntu 22.04 images/queues to Azure Linux 3 equivalents.

Changes:

  • Switches agentOs labels from Ubuntu_22_04* to AzureLinux_3* for build and template-engine jobs.
  • Replaces Ubuntu 22.04 pool image/demand selectors with build.azurelinux.3.* selectors.
  • Updates Helix target queues from Ubuntu 22.04 queues to Azure Linux 3 queues.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.

File Description
eng/template-engine.yml Moves template-engine Linux job to Azure Linux 3 pool demands and Helix queue.
.vsts-pr.yml Updates PR pipeline Linux job to Azure Linux 3 agentOs, pool demands, and Helix queue.
.vsts-ci.yml Updates CI pipeline Linux jobs (including template-engine) to Azure Linux 3 pool images and Helix queues.

Comment thread eng/template-engine.yml
demands: ImageOverride -equals build.azurelinux.3.amd64
${{ if eq(variables['System.TeamProject'], 'public') }}:
helixTargetQueue: 'ubuntu.2204.amd64.open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04-helix-amd64'
helixTargetQueue: 'azurelinux.3.amd64.open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04-helix-amd64'
Copy link

Copilot AI Apr 10, 2026

Choose a reason for hiding this comment

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

The Helix target queue was switched to azurelinux.3.amd64.open, but the Docker image override is still pinned to prereqs:ubuntu-22.04-helix-amd64. If the intent is to fully migrate Helix to Azure Linux 3, this should likely be updated to the Azure Linux 3 prereqs image (or the override removed). If keeping the Ubuntu image is intentional, consider documenting why to avoid confusion when debugging Helix environment issues.

Suggested change
helixTargetQueue: 'azurelinux.3.amd64.open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04-helix-amd64'
helixTargetQueue: azurelinux.3.amd64.open

Copilot uses AI. Check for mistakes.
Comment thread .vsts-ci.yml
os: linux
${{ if eq(variables['System.TeamProject'], 'public') }}:
helixTargetQueue: 'ubuntu.2204.amd64.open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04-helix-amd64'
helixTargetQueue: 'azurelinux.3.amd64.open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04-helix-amd64'
Copy link

Copilot AI Apr 10, 2026

Choose a reason for hiding this comment

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

The queue name has moved to azurelinux.3.amd64.open, but the Helix Docker image override remains prereqs:ubuntu-22.04-helix-amd64. If Azure Linux 3 has a corresponding prereqs image, consider switching to it (or dropping the override) so the queue/OS name and the container environment don’t diverge unexpectedly.

Suggested change
helixTargetQueue: 'azurelinux.3.amd64.open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04-helix-amd64'
helixTargetQueue: azurelinux.3.amd64.open

Copilot uses AI. Check for mistakes.
Replace Ubuntu 22.04 VM pool images, Helix queues, and agentOs labels
with Azure Linux 3 equivalents across CI/PR pipelines.

Changes:
- 1es-ubuntu-2204-open -> build.azurelinux.3.amd64.open
- 1es-ubuntu-2204 -> build.azurelinux.3.amd64
- build.ubuntu.2204.amd64.open -> build.azurelinux.3.amd64.open
- build.ubuntu.2204.amd64 -> build.azurelinux.3.amd64
- ubuntu.2204.amd64.open -> azurelinux.3.amd64.open
- Ubuntu.2204.Amd64 -> AzureLinux.3.Amd64
- agentOs: Ubuntu_22_04 -> AzureLinux_3
- vmImage: ubuntu-22.04 -> demands-based pool with azurelinux image

Container images and eng/common (from arcade) are unchanged.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@marcpopMSFT marcpopMSFT force-pushed the ubuntu22-to-azurelinux-8.0 branch from 4afa861 to 3ce2fa2 Compare April 24, 2026 16:13
marcpopMSFT and others added 2 commits April 27, 2026 13:44
These tests fail on Azure Linux 3 because older .NET Core runtimes
(netcoreapp3.0/3.1) require libicu for globalization support, which
is not installed by default on Azure Linux. Since these TFMs are
long out of support, remove them rather than adding workarounds.

Changes:
- Remove netcoreapp3.1 from PublishTestUtils.SupportedTfms (affects ~14 tests)
- Remove netcoreapp3.0 InlineData from ILLink_runs_and_creates_linked_app
- Remove netcoreapp3.1 InlineData from ILLink_old_defaults_keep_nonframework
- Remove netcoreapp3.1 InlineData from ILLink_displays_informational_warning_up_to_net5_by_default
- Retarget ILLink_and_crossgen_process_razor_assembly from netcoreapp3.0 to net6.0
- Update CreateTestProjectForILLinkTesting helper package reference TFM from netcoreapp3.0 to net5.0

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Set DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=true in both RunTestsOnHelix.sh
  and RunTestsOnHelix.cmd so old .NET Core runtimes (1.x/2.x) can run on
  distros without ICU installed (e.g., Azure Linux 3)
- Fix ILLink_and_crossgen_process_razor_assembly test: check TestWeb.dll
  instead of TestWeb.Views.dll since net6.0+ compiles Razor views into the
  main assembly

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants