Skip to content

Test distribution Clang on Ubuntu 26.04 and 26.10 - #566

Merged
helly25 merged 6 commits into
mainfrom
ci/ubuntu-distribution-clang
Oct 25, 2026
Merged

helly25 merged 6 commits into
mainfrom
ci/ubuntu-distribution-clang

Conversation

@helly25

@helly25 helly25 commented Oct 23, 2026 •

Copy link
Copy Markdown
Collaborator

Add two required optimized test jobs using distribution Clang 22: Ubuntu 26.04 directly on its hosted runner, and Ubuntu 26.10 userspace in the official container. This exercises newer distribution libraries and linkers alongside the existing Ubuntu 24.04 LLVM checks.

AG;DR

  • Add exactly two matrix cells to the main workflow and wire their reusable job into done. Keep the existing sanitizer, coverage, tidy, compiler, and Bazel compatibility cells.
  • Extend the existing reusable runner with an optional Ubuntu container and a clang-system mode. Bootstrap container Git/LFS, Python, GitHub CLI, and package tooling before checkout; install pinned Bazelisk 1.30.0 when the container has no preinstalled launcher, trust only the checked-out workspace for container Git ownership checks, and use Bash for script steps.
  • Install distribution Clang/LLD 22 and the default distribution C++ standard library. Use the matching distribution LLD for both host and target links; Ubuntu 26.10 binutils 2.47 crashed linking the MoPe build tool during initial validation. Select the compiler through Bazel's local toolchain configuration without registering the bundled LLVM compiler. Probe the selected family and major version to reject fallback.
  • Keep MoPe formatting on the pinned toolchains_llvm distribution for every compiler, including GCC and distribution Clang. Do not install or select a distribution formatter; compiler selection does not change formatting tools.
  • Reuse the full optimized Bazel suite, differential hashing, and disabled-mangling checks. Distinguish caches by Ubuntu userspace release, compiler mode/version, and existing configuration/dependency axes; retain existing cache bounds and main-only saving.
  • Add executable shell-selection/probe and Git-ownership regressions isolated from inherited system Git configuration and document host/container coverage. Ubuntu 26.10 uses the host's kernel. These distribution-compiler jobs do not establish that the pinned LLVM 22.1.8 bundled linker runs on Ubuntu 26; the existing bundled-LLVM checks remain on Ubuntu 24.04.

Validation on published head 504f923914:

  • All 19 CI checks pass, including both Ubuntu jobs, the baseline matrix, 142/142 tidy units, and the final done gate.
  • Both Ubuntu jobs use MoPe's pinned toolchains_llvm formatter. Ubuntu 26.04 uses distribution Clang 22.1.2 and libstdc++ 15; Ubuntu 26.10 uses distribution Clang 22.1.8 and libstdc++ 15. Each passes 165 tests out of 166 with one configuration-dependent skip, plus the disabled-mangling check.
  • Local bazel test --config=clang //...: all 164 applicable tests pass, one configuration-dependent skip. All 257 tooling tests pass, including the five executable compiler/probe/Git regressions.
  • Local and remote heads contain current main; the worktree is clean. No local lint or commit/push tidy was run.

@helly25
helly25 merged commit 46a2c23 into main Oct 25, 2026
19 checks passed
@helly25
helly25 deleted the ci/ubuntu-distribution-clang branch October 25, 2026 11:33

This branch was successfully deployed

1 active deployment
github-pages — 504f9239 Deployed Oct 25, 2026 by helly25 via publish #1252
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant