-
Notifications
You must be signed in to change notification settings - Fork 548
Description
The build-pipeline for the iOS version of our MAUI app unexplicably exploded in terms of build times and output size this tuesday.
What took around 20 minutes on monday now takes 70-80 minutes and the outputted ipa grew from 60 MB to ca. 90 MB.
There were no changes/checkins to (NuGet)dependencies, *.csproj, *.props, etc. files that could/should affect the build process inbetween these dates. It's virtually the same solution now taking three times longer.
On closer inspection of the build logs, the most prominent changes seemed to be in the automatically installed workloads by the command dotnet workload install ios maui --source https://api.nuget.org/v3/index.json
Monday:
Installing workload manifest microsoft.net.sdk.android version 34.0.79...
Installing workload manifest microsoft.net.sdk.ios version 17.2.8022...
Installing workload manifest microsoft.net.sdk.maccatalyst version 17.2.8022...
Installing workload manifest microsoft.net.sdk.macos version 14.2.8022...
Installing workload manifest microsoft.net.sdk.maui version 8.0.61...
Installing workload manifest microsoft.net.sdk.tvos version 17.2.8022...
Installing workload manifest microsoft.net.workload.mono.toolchain.net7 version 8.0.0...
Installing workload manifest microsoft.net.workload.mono.toolchain.current version 8.0.0...
Installing workload manifest microsoft.net.workload.emscripten.net7 version 8.0.0...
Installing workload manifest microsoft.net.workload.emscripten.current version 8.0.0...
Tuesday:
Installing workload manifest microsoft.net.sdk.android version 34.0.113...
Installing workload manifest microsoft.net.sdk.ios version 17.2.8078...
Installing workload manifest microsoft.net.sdk.maccatalyst version 17.2.8078...
Installing workload manifest microsoft.net.sdk.macos version 14.2.8078...
Installing workload manifest microsoft.net.sdk.maui version 8.0.61...
Installing workload manifest microsoft.net.sdk.tvos version 17.2.8078...
Installing workload manifest microsoft.net.sdk.aspire version 8.0.2...
Adding an additional --from-rollback-file https://maui.blob.core.windows.net/metadata/rollbacks/8.0.61.json to the workload install command reverts to Monday's log output and decreases build time & output.
I'm sorry if I missed any announcements where new, drastical AOT changes were discussed, but the recent release notes only mention a "dedup optimization" which doesn't sound like something that should cause this situation, right?
Also: The linked PR mentions "FullAOT" mode, which we don't use. the relevant csproj-lines from our release-configuration are:
<MtouchExtraArgs>--optimize=-remove-dynamic-registrar</MtouchExtraArgs>
<MtouchEnableSGenConc>true</MtouchEnableSGenConc>
<MtouchInterpreter>-all,System.Private.Xml,System.Collections.Immutable</MtouchInterpreter>
<!-- System.Private.Xml is for our XSLT transformations that depend on reflection operations happening in that assembly -->
<!-- System.Collections.Immutable was chosen for an exception in CommunityToolKit's "toast" component: https://github.com/CommunityToolkit/Maui/Issues/1752 -->
<MtouchLink>SdkOnly</MtouchLink>
Steps to Reproduce
- Build a Maui project for iOS via CI (Sorry, can't really share our project here :/ )
Expected Behavior
The build takes a "reasonable" amount of time to finish
Actual Behavior
The build takes 3 times longer for no discernable reason
Environment
Runner Image
Image: macos-13
Version: 20240707.2
Included Software: https://github.com/actions/runner-images/blob/macos-13/20240707.2/images/macos/macos-13-Readme.md
Image Release: https://github.com/actions/runner-images/releases/tag/macos-13%2F20240707.2
Current image version: '20240707.2'
Build Logs
msbuild_workload_17.2.8022_redacted.binlog.zip
msbuild_workload_17.2.8078_redacted.binlog.zip
Example Project (If Possible)
Sorry, not possible I'm afraid, but I will reveal as much config/code you need, that I can.