-
Notifications
You must be signed in to change notification settings - Fork 4.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Upgrade our macOS build machines to the latest image #109454
Upgrade our macOS build machines to the latest image #109454
Conversation
/backport to release/9.0-staging |
/backport to release/8.0-staging |
Started backporting to release/9.0-staging: https://github.com/dotnet/runtime/actions/runs/11633383083 |
Started backporting to release/8.0-staging: https://github.com/dotnet/runtime/actions/runs/11633385070 |
Apparently AzDO doesn't support all of the images specified in https://github.com/actions/runner-images/blob/main/README.md. I guess I'll move us to macOS-13 (the last tag that corresponds to an x64 image) and we'll need to go through this song-and-dance again when that pool is deprecated. |
/backport to release/9.0-staging |
/backport to release/8.0-staging |
Started backporting to release/9.0-staging: https://github.com/dotnet/runtime/actions/runs/11633597484 |
Started backporting to release/8.0-staging: https://github.com/dotnet/runtime/actions/runs/11633599152 |
@akoeplinger this looks related to enabling Swift linking on iOS that was done in #104383.
Any chance something jumps out at you as the cause of the issue? |
@vcsjones looks like this is because we're now compiling using Xcode 15.4 on the AzDO build machine but the Helix machine is still using Xcode 14.3 and the static .a contains references to some swift libraries that the earlier Xcode doesn't provide. In general it seems Swift doesn't provide module backwards compatibility to earlier Xcode versions: https://developer.apple.com/forums/thread/749540 Some options:
|
I just saw that the 8.0/9.0 backport PRs using macos-13 are using Xcode 15.2 and apparently don't run into that issue so that's probably the quickest option. It doesn't solve the official build problem in main (where we're using an image with Xcode 15.4 on it) since it effectively means we don't support earlier Xcodes anymore. /cc @vitek-karas |
|
I would prefer if we can get away w/ xcode latest. |
Currently it's possible to submit apps with Xcode 15 (presumably 15.0): "All iOS and iPadOS apps uploaded to App Store Connect must be built with a minimum of Xcode 15 and the iOS 17 SDK" (https://developer.apple.com/ios/submit/). Xcode 15.[0-2]'s minimum macOS version is macOS 13.5 (https://xcodereleases.com/?scope=release). Bumping to Xcode 15.3+ also means bumping the min macOS version to macOS 14.0 (https://xcodereleases.com/?scope=release). This is a severe problem for people whose Macs can't update to macOS 14.0, which means that backporting this change to .NET 8 can mean a service update may force people to buy new Macs... I think it's fine to bump the Xcode requirement to Xcode 15.2 though, everybody who's publishing apps to the App Store today should be able to upgrade to Xcode 15.2. |
I'll change this PR back to using macOS 13 for now. |
/fyi @matouskozak |
If we keep using Xcode 15.2 then we could probably also switch to the macos-14 image since minor versions should still be there even after actions/runner-images#10703 (we'd need to add a step to set 15.2 as the selected Xcode version) That said, I worry a bit for the official builds going forward since |
We'll likely have to follow this up in a few months with a move to the macOS14 image when the macOS15 one is out. But for now I'll merge this in. |
/ba-g tools timeout known |
Another option would be to revive #108318 and get rid of the Swift code in the PAL. |
No. |
The
macOS-12
image has been deprecated and will be removed in early December.Let's move our macOS builds to use the
macos-latest
image.This is the public equivalent of the 'macos-latest-internal' image we use for official builds already.
We need to backport this to enable public builds in our servicing PRs.