Skip to content

Use Ubuntu 26.04 for developer innerloop builds - #136345

Merged
steveisok merged 2 commits into
dotnet:mainfrom
steveisok:steveisok-azure-linux-innerloop
Oct 24, 2026
Merged

steveisok merged 2 commits into
dotnet:mainfrom
steveisok:steveisok-azure-linux-innerloop

Conversation

@steveisok

@steveisok steveisok commented Oct 23, 2026 •

Copy link
Copy Markdown
Member

Summary

Update the Linux x64 developer-innerloop build container from Ubuntu 24.04 to Ubuntu 26.04. Keep this lane on Ubuntu as a proxy for Ubuntu desktop and WSL development, rather than moving it to Azure Linux.

Use the published native-prerequisite image, pinned to its verified Linux AMD64 manifest:

mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-26.04-amd64@sha256:9652406444a2d3527125566f0787ba0839efca9d009de374a3efc22570f19501

Remove the AL4-specific dependency-installer step added in the initial revision. The Ubuntu prerequisite image already supplies the native toolchain and development headers, so no per-job package installation is added. The net PR diff is only the linux_x64_dev_innerloop image/digest update in pipeline-with-resources.yml; global-build-job.yml returns to its original contents.

Preserve native/non-cross build commands, AL3 build.azurelinux.3.amd64[.open] build-agent hosts, target sysroots and ABI policy, SDK pins, and all unrelated image pins. No cross-build image or ARM64 image is substituted.

Related to #136313, I1 only. This does not close the tracking issue or declare I1 complete.

Local validation

Tested the actual pinned Linux AMD64 Ubuntu image under emulation on an ARM64 Docker Desktop host, not on a native x64 machine. The image identifies as Ubuntu 26.04.1 LTS.

Startup, packaged-toolchain and development-package checks passed. The image supplies Clang/LLVM 18.1.8, GCC 15.2.0, CMake 4.2.3, Ninja 1.13.2, and the ICU/OpenSSL/Kerberos/LTTng development dependencies used by the smoke. No packages were installed in the test container.

A small external CMake harness built the repository's minipal and C/C++ smoke executables:

  • /runtime/eng/native/gen-buildsys.sh /evidence/native /evidence/native-build x64 linux clang Debug ninja - passed using the repository's existing compiler/CMake setup.
  • cmake --build /evidence/native-build --target minipal_smoke dependencies_smoke --parallel 2 - passed, 26 build actions.
  • ctest --test-dir /evidence/native-build --output-on-failure --verbose - 2 passed, 0 failed. The C executable exercised ICU 78.2, OpenSSL 3.5.5 digest generation and Kerberos initialization, with LTTng headers/linkage. The C++ executable exercised minipal random generation, page size, UTF-8 roundtripping and std::thread.

Both executables were verified as AMD64 ELF binaries and ran successfully. CMake reported CMAKE_CROSSCOMPILING=FALSE, x86_64 host/target processors and an empty CMAKE_SYSROOT.

The exercised mkdir -p, CMake configure/build and CTest operations did not encounter the known Docker Desktop openat2 limitation. No validation shim, Docker/binfmt/kernel reconfiguration, or tracked workaround was used. Static YAML/image/consumer assertions and git diff --check passed; the net image-only diff and removal of the prior bootstrap were checked against the original PR baseline.

No full product build, broad test matrix, Azure Pipelines template expansion or native x64 build-agent/container integration run was performed locally. Earlier AL4 results are not validation of this Ubuntu revision. The small emulated smoke does not establish full innerloop coverage.

Required native non-cross CI coverage

All three affected runtime-dev-innerloop jobs remain required for this revision:

  • RuntimeFlavor_Mono
  • CoreLib_Libraries_AnalyzersLinker
  • Tools_AnalyzersLinker

Note

This change and PR description were prepared with GitHub Copilot.

Pin the Linux x64 developer-innerloop container to the published Azure Linux 4 AMD64 build image and install native prerequisites using the existing repository installer only for that container. Preserve native non-cross build commands, AL3 build-agent hosts, and other image pins.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 6b70def9-6f65-4067-8fc0-a9ccabba1b50
@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 5 pipeline(s).
11 pipeline(s) were filtered out due to trigger conditions.
There may be pipelines that require an authorized user to comment /azp run to run.

@dotnet-policy-service

Copy link
Copy Markdown
Contributor

Tagging subscribers to this area: @dotnet/runtime-infrastructure
See info in area-owners.md if you want to be subscribed.

agocke
agocke previously requested changes Oct 23, 2026

@agocke agocke left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

This is one I actually think we should keep on ubuntu. No one uses Azure Linux on the desktop, so we should keep Ubuntu as a dev proxy.

@jkoritzinsky

Copy link
Copy Markdown
Member

Yeah this lane is very specifically supposed to be on Ubuntu as that's the default WSL distro so that's what most people will use on their local machines.

Keep the Linux x64 developer-innerloop lane on Ubuntu as a desktop and WSL development proxy. Pin the published Ubuntu 26.04 AMD64 prerequisite image and remove the AL4-specific native dependency bootstrap from the prior revision.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 6b70def9-6f65-4067-8fc0-a9ccabba1b50
@steveisok steveisok changed the title Use Azure Linux 4 for developer innerloop builds Use Ubuntu 26.04 for developer innerloop builds Oct 23, 2026
@steveisok
steveisok requested a review from agocke October 23, 2026 13:35
@jkotas
jkotas self-requested a review October 24, 2026 14:54
@steveisok
steveisok dismissed agocke’s stale review October 24, 2026 15:05

Updated to use ubuntu 26.04

@steveisok

Copy link
Copy Markdown
Member Author

/ba-g SOS tests already fixed by dotnet/diagnostics#6143

@steveisok
steveisok merged commit 36e205e into dotnet:main Oct 24, 2026
180 of 190 checks passed
@dotnet-milestone-bot dotnet-milestone-bot Bot added this to the 12.0-preview1 milestone Oct 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

4 participants