Skip to content

Use new MacOS arm64 pool for official builds#98117

Merged
steveisok merged 4 commits into
dotnet:mainfrom
steveisok:use-faster-better-macs
Feb 29, 2024
Merged

Use new MacOS arm64 pool for official builds#98117
steveisok merged 4 commits into
dotnet:mainfrom
steveisok:use-faster-better-macs

Conversation

@steveisok

Copy link
Copy Markdown
Member

This pool is only available internally for now, so let's use it!

This pool is only available internally for now, so let's use it!
@ghost

ghost commented Feb 7, 2024

Copy link
Copy Markdown

Tagging subscribers to this area: @dotnet/area-infrastructure-libraries
See info in area-owners.md if you want to be subscribed.

Issue Details

This pool is only available internally for now, so let's use it!

Author: steveisok
Assignees: steveisok
Labels:

area-Infrastructure-libraries

Milestone: -

@steveisok steveisok requested a review from a team February 7, 2024 17:05
@steveisok

Copy link
Copy Markdown
Member Author


# Official build OSX pool
${{ if and(in(parameters.osGroup, 'osx', 'maccatalyst', 'ios', 'iossimulator', 'tvos', 'tvossimulator'), ne(variables['System.TeamProject'], 'public')) }}:
vmImage: 'macos-13-arm64'

@jkotas jkotas Feb 7, 2024

Copy link
Copy Markdown
Member

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.)

@filipnavara

filipnavara commented Feb 7, 2024

Copy link
Copy Markdown
Member

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).

@jkotas

jkotas commented Feb 7, 2024

Copy link
Copy Markdown
Member

These machines have Xcode_15.0.1.

@filipnavara

filipnavara commented Feb 7, 2024

Copy link
Copy Markdown
Member

These machines have Xcode_15.0.1.

Anything >= 15 uses the new linker and is affected.

@filipnavara

Copy link
Copy Markdown
Member

Issue: #97745 (comment)
Workaround: #97960

Note that just applying the workaround would not be enough since the tools are built with published ILCompiler, not the in-tree one.

@steveisok

Copy link
Copy Markdown
Member Author

Official build run https://dev.azure.com/dnceng/internal/_build/results?buildId=2372706&view=results

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.

@steveisok

Copy link
Copy Markdown
Member Author

@jkotas @filipnavara can we split building ILCompiler / nativeaot runtime packs into its own leg that uses the old macs?

@filipnavara

filipnavara commented Feb 8, 2024

Copy link
Copy Markdown
Member

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.

@jkotas

jkotas commented Feb 8, 2024

Copy link
Copy Markdown
Member

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.

@akoeplinger

Copy link
Copy Markdown
Member

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 think we have some contact on the Mac pool team we could ping right?

@steveisok

Copy link
Copy Markdown
Member Author

Interestingly all of them in the "Publish BuildLogs" step which just uploads files to AzDO... I think we have some contact on the Mac pool team we could ping right?

I'd post on FR if you didn't already.

@jkotas

jkotas commented Feb 28, 2024

Copy link
Copy Markdown
Member

Have we done multiple successful trial runs on the new pool? If yes, this looks good to me.

@steveisok

Copy link
Copy Markdown
Member Author

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.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-Infrastructure-libraries NO-MERGE The PR is not ready for merge yet (see discussion for detailed reasons)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants