branch-4.1: [fix](ci) migrate macOS BE UT off retired image - #66248
Draft
hello-stephen wants to merge 13 commits into
Draft
branch-4.1: [fix](ci) migrate macOS BE UT off retired image#66248hello-stephen wants to merge 13 commits into
hello-stephen wants to merge 13 commits into
Conversation
Contributor
Author
|
Thank you for your contribution to Apache Doris. Please clearly describe your PR:
|
This was referenced Jul 29, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
The branch-4.1 macOS BE UT workflow still requests
macos-13.GitHub retired the
macos-13hosted-runner image on December 4, 2025. Jobs now remain queued without a runner assignment. Current examples:Both jobs report
labels=[macos-13]with an emptyrunner_name.Change
Switch the workflow to the supported Intel
macos-15-intellabel and explicitly select Homebrew LLVM 18. The Intel image preserves compatibility with the branch's x86_64 thirdparty archive and AVX build flags, while LLVM 18 satisfies branch-4.1's Clang 16 minimum and provides a current matching libc++.Select the prebuilt thirdparty archive from
uname -mand resolve JDK 17 through/usr/libexec/java_home -v 17. GitHub currently assigns an arm64 host to this label, so hard-coding the old x86_64 archive andJAVA_HOME_17_X64is not portable.Also include
.github/workflows/be-ut-mac.ymlin the workflow's own path filter. This makes a workflow-only PR run the actual Ccache and BE UT steps, providing target validation for future runner changes.Use
curl -fLfor the thirdparty archive and fall back to the commonautomationrelease only when a branch-specific asset is unavailable. Theautomation-4.1release does not exist, while the common release contains the required x86_64 archive.Install Homebrew
libompand pass its include/library paths to CMake. AppleClang on the macOS 15 image does not ship the OpenMP runtime; this follows the existing master workflow's compatibility setup.Split CMake's multi-part
OpenMP_CXX_FLAGSbefore applying them to PCH and global C++ compilation. On AppleClang, FindOpenMP returns-Xclang -fopenmp; treating that string as one argument causes clang to reject it.Keep the Clang PCH option grouped with CMake's
SHELL:syntax. Once OpenMP adds other-Xclangpairs, CMake option de-duplication can otherwise separate-fno-pch-timestampfrom its required-Xclangprefix.Unlink the Homebrew
fmtheaders after dependency setup. The Intel image exposes its latestfmtunder/usr/local/include, which shadows and mixes with the branch-pinnedfmtfrom the Doris thirdparty archive.The
macos-15-intelinvestigation showed that both its default Xcode 16.4 / AppleClang 17 and its oldest Xcode 16.0 reject branch-4.1'sDateV2Valuetrivial-copy assertions. Homebrew LLVM 16 is also unsuitable because its libc++ rejects the branch'sconstexpr std::stringand dependentstatic_assert(false)patterns.Validation
git diff --checksucceeded.00aab152provedmacos-15-intelreceives a GitHub-hosted Intel runner and completes setup, checkout, and path filtering. Its BE UT step was skipped because the old path filter ignored workflow-only changes.5cd92b90ran the target step onmacos-15-intel; job 90722331359 finished with failure because the old workflow downloaded a 9-byte response from the nonexistentautomation-4.1asset andtarrejected it.ff7fb9e2proved the asset fallback works and progressed into CMake configuration; job 90724954885 finished with failure at the next shared-image incompatibility,Could NOT find OpenMP_C.d7dd1944proved the Homebrew OpenMP setup works and compiled 6860/9581 targets; job 90726643757 then exposed a PCH flag-list bug where clang received-Xclang -fopenmpas one argument.e481a229proved the OpenMP flag split works; job 90730432792 reached the PCH target and exposed CMake de-duplication separating-fno-pch-timestampfrom-Xclang.26d11954proved the grouped PCH option works and compiled 6959/9581 targets; job 90733847807 then failed because/usr/local/include/fmtfrom the shared Homebrew image shadowed the branch-pinned thirdparty headers.12fd20d3proved the Homebrewfmtunlink works and compiled 6960/9581 targets; job 90737720669 then exposed that the keg-only LLVM 16 installation was unused and the job instead compiled with/usr/bin/clang++/ AppleClang 17, failing the branch'sDateV2Valuetrivial-copy assertions.72e105f191proved the explicit compiler selection works (Clang 16.0.6,/usr/local/opt/llvm@16/bin/clang++) and reached 6960/9581 targets; job 90743117287 then failed because Homebrew LLVM 16's libc++ rejects branch-4.1'sconstexpr std::stringand dependentstatic_assert(false)patterns.6d70ab2889proved Xcode 16.0 selection works (AppleClang 16.0.0.16000026) but job 90749132035 still failed at 6960/9623 on the sameDateV2Valuetrivial-copy assertions.a8829c5967proved themacos-14host starts the target step and exposes the requested Xcode installation. Job 90753706832 then showed that the current host is arm64: the hard-coded x86_64 runtime inputs left Java 25 active, andrun-be-ut.shstopped before compilation because JDK 17 is required.5983fc4fc2proved architecture-aware thirdparty selection and JDK 17 resolution work. Job 90754616400 reached CMake configuration with the matching arm64 asset and JDK 17, then correctly rejected AppleClang 15 because branch-4.1 requires Clang 16 or newer.49eaf49324showed that the arm64macos-14image does not install Xcode 16.0, so it cannot satisfy branch-4.1's compiler minimum with an Apple toolchain.2a484f749ereturns to the supported Intel image and selects the current LLVM 18 toolchain, retaining the architecture/JDK, asset, OpenMP, PCH, andfmtfixes above. Its new macOS job must finish the actual BE UT step successfully before this PR is considered validated.GitHub retirement notice: https://github.blog/changelog/2025-09-19-github-actions-macos-13-runner-image-is-closing-down/