Move Ubuntu Helix queues to bare 24.04/26.04 VMs#129863
Conversation
Now that Ubuntu 26.04 VMs are available, undo the temporary VM-to-container conversion done in #125535. Each affected slot returns to a bare Ubuntu VM at its current version (queues verified present in Helix): helix-platforms.yml (oldest slots -> bare 22.04 VMs): - helix_linux_x64_oldest -> Ubuntu.2204.Amd64.Open - helix_linux_x64_oldest_internal -> Ubuntu.2204.Amd64 - helix_linux_x64_ubuntu_oldest -> Ubuntu.2204.Amd64.Open - helix_linux_arm64_oldest -> Ubuntu.2204.ArmArch.Open libraries/helix-queues-setup.yml (primary coverage -> bare 26.04 VMs): - Mono path -> Ubuntu.2604.Amd64.Open - Primary distro (general set) -> Ubuntu.2604.Amd64.Open Restores the bare-VM testing coverage described in the Ubuntu 26.04 VM plan (#125748). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Revert the Mono path (linux_x64) back to the ubuntu-26.04-helix-amd64 container on AzureLinux; only the CoreCLR primary distro and the helix-platforms oldest slots return to bare Ubuntu VMs. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Ahead of retiring the Ubuntu 22.04 VMs, make 24.04 the oldest bare-VM slot (queues verified present in Helix): - helix_linux_x64_oldest -> Ubuntu.2404.Amd64.Open - helix_linux_x64_oldest_internal -> Ubuntu.2404.Amd64 - helix_linux_x64_ubuntu_oldest -> Ubuntu.2404.Amd64.Open - helix_linux_arm64_oldest -> Ubuntu.2404.ArmArch.Open Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- helix_linux_x64_ubuntu_latest -> Ubuntu.2604.Amd64.Open (bare VM, no container) - helix_linux_arm64_latest -> Ubuntu.2604.ArmArch.Open (bare VM, no container) - helix_browser_wasm_oldest -> ubuntu-24.04-helix-webassembly-amd64 (kept as container; the WASM toolchain image is required) WASM latest stays on the 26.04 webassembly container for the same reason. All bare-VM queues and image tags verified present (Helix queue API / MCR registry). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Make the MCR registry tag list (mcr.microsoft.com/v2/dotnet-buildtools/prereqs/tags/list) the source of truth for confirming container tags. The image-info JSON in dotnet/versions can be stale or unavailable when branch protection blocks its automated push; note the in-flux state and the pending ORAS/OCI-artifact migration (dotnet/docker-tools#2142). Image-info is now a secondary cross-check. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
Tagging subscribers to this area: @dotnet/runtime-infrastructure |
There was a problem hiding this comment.
Pull request overview
This PR updates Helix queue selection to shift Ubuntu coverage from the temporary “containers-on-AzureLinux” setup back to bare Ubuntu VM queues, using Ubuntu 24.04 for “oldest” coverage and Ubuntu 26.04 for “latest” where applicable.
Changes:
- Switch the libraries “CoreCLR primary distro” queue to bare
Ubuntu.2604.Amd64.Open. - Update
helix-platforms.ymlUbuntu x64/arm64 “oldest/latest” variables to bare 24.04/26.04 VM queues (while keeping WASM containerized and bumping its oldest image to 24.04). - Update the OS coverage skill guidance to verify prereqs image tags via the MCR registry tag list (treating the
dotnet/versionsimage-info JSON as a secondary cross-check).
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| eng/pipelines/libraries/helix-queues-setup.yml | Moves the primary Linux x64 CoreCLR libraries queue to bare Ubuntu.2604.Amd64.Open. |
| eng/pipelines/helix-platforms.yml | Re-points Ubuntu oldest/latest variables to bare 24.04/26.04 VM queues; updates WASM oldest container tag to 24.04. |
| .github/skills/update-os-coverage/SKILL.md | Updates documentation to validate prereqs container tags via the MCR registry tag list and explains why image-info may be stale. |
|
This PR effectively reverts (by design) this prior change: #125535 |
Copilot Code ReviewHolistic AssessmentMotivation: Justified — restores the repo's intended bare-VM testing policy for Ubuntu now that 24.04 and 26.04 Helix VMs are available, removing the temporary container-on-AzureLinux workaround. Tracked in #125748. Approach: Correct — straightforward slot-by-slot replacement from container references to bare VM queue names, with WASM intentionally kept on containers (toolchain image required). Documentation updates to the Summary: ✅ LGTM. The changes are syntactically consistent with existing patterns, well-scoped, and clearly documented. Queue names follow established conventions ( Detailed FindingsDetailed Findings✅ Queue name consistency — Bare VM format matches codebase conventionsAll new bare VM values ( ✅ WASM container correctly stays containerized — Version bump from 22.04 → 24.04 is appropriate
✅ helix-queues-setup.yml — CoreCLR primary distro change is consistentThe CoreCLR primary distro moves from a container+digest reference to bare ✅ SKILL.md documentation — Reasonable pragmatic updateShifting verification guidance from 💡 Minor observation — sha256 digest loss in helix-queues-setup.ymlThe previous CoreCLR primary distro had a Note This review was created by GitHub Copilot.
|
|
@wfurt -- Is libmsquic incompatible with Ubuntu 26.04 and/or Linux kernel 7.0? Console log: 'System.Net.Quic.Functional.Tests' from job 1586e2c2-fd3b-4571-9b14-ad567985de6f workitem b214d261-e8c3-456d-9476-6ba02762f704 (ubuntu.2604.amd64.open.rt) executed on machine a000001 running Linux-7.0.0-1004-azure-x86_64-with-glibc2.43
+ export __TestArchitecture=x64
+ ./RunTests.sh --runtime-path /datadisks/disk1/work/A87F0957/p
========================= Begin custom configuration settings ==============================
export __IsXUnitLogCheckerSupported=1
export XUNIT_HIDE_PASSING_OUTPUT_DIAGNOSTICS=1
========================== End custom configuration settings ===============================
----- start Thu Jun 25 09:58:27 PM UTC 2026 =============== To repro directly: =====================================================
pushd .
/datadisks/disk1/work/A87F0957/p/dotnet exec --runtimeconfig System.Net.Quic.Functional.Tests.runtimeconfig.json --depsfile System.Net.Quic.Functional.Tests.deps.json xunit.console.dll System.Net.Quic.Functional.Tests.dll -xml testResults.xml -nologo -nocolor -notrait category=IgnoreForCI -notrait category=OuterLoop -notrait category=failing
popd
===========================================================================================================
/datadisks/disk1/work/A87F0957/w/A39E08B6/e /datadisks/disk1/work/A87F0957/w/A39E08B6/e
Discovering: System.Net.Quic.Functional.Tests (method display = ClassAndMethod, method display options = None)
Discovered: System.Net.Quic.Functional.Tests (found 5 of 158 test cases)
Starting: System.Net.Quic.Functional.Tests (parallel test collections = on [2 threads], stop on fail = off)
MsQuic not supported and using 'unknown' .
System.Net.Quic.Tests.MsQuicPlatformDetectionTests.SupportedLinuxPlatforms_IsSupportedIsTrue [FAIL]
Assert.True() Failure
Expected: True
Actual: False
Stack Trace:
/_/src/libraries/System.Net.Quic/tests/FunctionalTests/MsQuicPlatformDetectionTests.cs(66,0): at System.Net.Quic.Tests.MsQuicPlatformDetectionTests.SupportedLinuxPlatforms_IsSupportedIsTrue()
at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
/_/src/coreclr/System.Private.CoreLib/src/System/RuntimeHandles.cs(1188,0): at System.RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, Signature sig, Boolean isConstructor)
/_/src/coreclr/System.Private.CoreLib/src/System/Reflection/MethodBaseInvoker.CoreCLR.cs(37,0): at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
/_/src/libraries/System.Private.CoreLib/src/System/Reflection/MethodBaseInvoker.cs(57,0): at System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(Object obj, BindingFlags invokeAttr)
Output:
Running on Distro=ubuntu VersionId=24.4
Finished: System.Net.Quic.Functional.Tests |
Now that Ubuntu 26.04 VMs (and 24.04 VMs) are available in Helix, move the Ubuntu Helix coverage off the temporary containers-on-Azure-Linux arrangement and back onto bare Ubuntu VMs, per the Ubuntu 26.04 VM Plan (#125748). This restores the bare-VM testing the policy calls for and retires the 22.04 VMs by moving the oldest slots to 24.04.
Changes
eng/pipelines/helix-platforms.ymlhelix_linux_x64_oldest(+_internal)Ubuntu.2404.Amd64.Open/Ubuntu.2404.Amd64helix_linux_x64_ubuntu_latestUbuntu.2604.Amd64.Openhelix_linux_x64_ubuntu_oldestUbuntu.2404.Amd64.Openhelix_linux_arm64_latestUbuntu.2604.ArmArch.Openhelix_linux_arm64_oldestUbuntu.2404.ArmArch.Openhelix_browser_wasm_oldestubuntu-22.04-helix-webassembly-amd64ubuntu-24.04-helix-webassembly-amd64eng/pipelines/libraries/helix-queues-setup.ymlUbuntu.2604.Amd64.Open.github/skills/update-os-coverage/SKILL.mddotnet/versionsimage-info JSON is in flux pending the ORAS/OCI-artifact migration (dotnet/docker-tools#2142).Notes
Ubuntu.2204.Amd64.Android.*) — no 24.04/26.04 Android Helix queue exists yet (needs dnceng).Ubuntu.2204.ArmArch) insrc/coreclr/scripts/superpmi_collect_setup.py.Reference: OS onboarding guide
Note
This pull request was AI/Copilot-generated.