-
Notifications
You must be signed in to change notification settings - Fork 4.9k
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
Use new MacOS arm64 pool for official builds #98117
Conversation
This pool is only available internally for now, so let's use it!
Tagging subscribers to this area: @dotnet/area-infrastructure-libraries Issue DetailsThis pool is only available internally for now, so let's use it!
|
vmImage: 'macos-12' | ||
|
||
# Official build OSX pool | ||
${{ if and(in(parameters.osGroup, 'osx', 'maccatalyst', 'ios', 'iossimulator', 'tvos', 'tvossimulator'), ne(variables['System.TeamProject'], 'public')) }}: | ||
vmImage: 'macos-13-arm64' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We should double check that these builds use native Arm64 SDK after the switch.
(x64 SDK running on Arm64 emulator is slow and it has reliability issues.)
I assume there’s a newer Xcode on these machines, right? It breaks NativeAOT builds (which is a problem since Crossgen2 and ILCompiler are published with PublishAot). |
These machines have Xcode_15.0.1. |
Anything >= 15 uses the new linker and is affected. |
Issue: #97745 (comment) Note that just applying the workaround would not be enough since the tools are built with published ILCompiler, not the in-tree one. |
Assuming we can get machines off the pool reliably, the build times are a lot better. I think we're going to shave 30-40 min off of the official build. Should positively impact PR's if available publicly. The artifacts need tested / revert to the old pool for nativeaot (or #97745 gets fixed) before this can be merged. |
@jkotas @filipnavara can we split building ILCompiler / nativeaot runtime packs into its own leg that uses the old macs? |
There’s a PR to use old linker for net8.0 branch (#97856). We can probably take the bits to unblock this PR. Also, we need to check #98124. I can do both tomorrow if you feel like it’s worth pushing it through. |
I agree with @filipnavara that applying the workaround is the right way to go. Splitting the native aot specific builds into its own legs would be non-trivial and it would be colliding with what we are trying to do for Unified Build. |
FYI I've seen a couple random disconnects with this pool in the VMR build: https://dev.azure.com/dnceng/internal/_build?definitionId=1330&_a=summary&branchFilter=256180%2C256180%2C256180%2C256180%2C256180%2C256180%2C256180%2C256180%2C256180%2C256180%2C256180%2C256180%2C256180%2C256180%2C256180%2C256180%2C256180%2C256180%2C256180%2C256180%2C256180%2C256180%2C256180%2C256180&statusFilter=cancelled Interestingly all of them in the "Publish BuildLogs" step which just uploads files to AzDO... |
I'd post on FR if you didn't already. |
Have we done multiple successful trial runs on the new pool? If yes, this looks good to me. |
Yes, I kicked it off a few times. |
This pool is only available internally for now, so let's use it!