[ci] Build ruby CIPD packages with Xcode 17c52 - #5155
Conversation
Both ruby builders have been failing at 'build package' because Homebrew requires Xcode >= 16.0 on macOS 15 and they request Xcode 15a240d: Error: Your Xcode (15.0 => /opt/flutter/xcode/15a240d/XCode.app/Contents/Developer) at /Applications/Xcode.app is too outdated. Please update to Xcode 26.3 (or delete it). Move both to 17c52 (Xcode 26.2), the version every other Flutter builder uses, so mac-amd64 and mac-arm64 are built with the same toolchain. This also keeps them aligned with the Intel Xcode pin in https://flutter-review.googlesource.com/c/recipes/+/83760, which would otherwise change only the amd64 builder. Examples: https://ci.chromium.org/b/8670377120581308353 (Mac ruby), https://ci.chromium.org/b/8670377021801718401 (Mac_arm64 ruby). Related: flutter/flutter#164665
|
Proposal: rather than land this, we could delete both ruby targets (and This PR only clears the first of three blockers (see description). Getting these builders green also needs Command Line Tools on the devicelab image (flutter/flutter#162344) and a CocoaPods/ActiveSupport dependency fix in the build script (flutter/flutter#162341). That's real work across two teams for a package that, as far as I can tell, has no remaining reason to exist:
@vashworth wdyt? |
Technically we still use CocoaPods in CI so we may have future use for these builders. Currently, they fail consistently and have for a while (they are in bringup), but I don't want to be blocked by figuring out the ramifications of removing these entirely. Let's file an issue to track removing these and we can follow up when appropriate. |
Both ruby builders have been failing at
build packagebecause Homebrew requires Xcode >= 16.0 on macOS 15 and they request Xcode 15a240d:Move both to 17c52 (Xcode 26.2), the version every other Flutter builder uses, so mac-amd64 and mac-arm64 are built with the same toolchain. This also keeps them aligned with the Intel Xcode pin in https://flutter-review.googlesource.com/c/recipes/+/83760, which would otherwise change only the amd64 builder.
Examples: https://ci.chromium.org/b/8670377120581308353 (Mac ruby), https://ci.chromium.org/b/8670377021801718401 (Mac_arm64 ruby).
What this does and does not fix
Homebrew's
fatal_build_from_source_checksare fatal (exit 1) forbrew reinstall --build-from-source, whichcipd_packages/ruby/tools/build.shuses; on Intel Homebrew no longer ships bottles at all, so evenbrew install curlbuilds from source. This PR clears one of those checks:check_xcode_minimum_version(Xcode >= 16.0 on macOS 15) — fixed here.check_if_xcode_needs_clt_installed—/Library/Developer/CommandLineToolsis not present on the devicelab hosts (Error: Xcode alone is not sufficient on Sequoia). Host provisioning, not fixable from.ci.yaml. Tracked inMac rubyfailing due to missing command line tools flutter#162344.pod --versionfailed through mid-2025 withuninitialized constant ActiveSupport::LoggerThreadSafeLevel::Logger(cocoapods 1.16.2 + activesupport 7.0.8). Tracked inMac rubyfailing due to ActiveSupport issue flutter#162341. Likely to reappear.So these builders will stay red after this lands; this is a prerequisite, not the fix. Umbrella: flutter/flutter#164665.
Note on
os: "Mac-15.5|Mac-15.7": 17c52 requires macOS 15.6, but there are currently 0 macOS 15.5 bots inluci.flutter.prod(150 Mac bots, all 15.7.x), so the dimension is left as is.Consumers are unaffected either way: every
rubydependency in flutter/flutter (80) and flutter/packages (1) pins CIPD refruby_3.1-pod_1.13(registered 2023-10-23); these builders only re-registerlatest.