From 2e9e329c887aed3d1f9b9390f7351b4ec5b00623 Mon Sep 17 00:00:00 2001 From: Matous Kozak Date: Fri, 24 Jul 2026 09:53:51 +0200 Subject: [PATCH 1/2] Fix mobile package size measurements Stage only the signed APK or IPA and version metadata for mobile SizeOnDisk work items so publish sidecars do not inflate package or extracted-size metrics. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 9cde6db4-052e-4355-a252-05b45b2e624e --- eng/performance/maui_scenarios_android.proj | 5 +++-- eng/performance/maui_scenarios_ios.proj | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/eng/performance/maui_scenarios_android.proj b/eng/performance/maui_scenarios_android.proj index 5ef4fa5ef01..f8038f2885a 100644 --- a/eng/performance/maui_scenarios_android.proj +++ b/eng/performance/maui_scenarios_android.proj @@ -82,12 +82,13 @@ + - echo on; xcopy %HELIX_CORRELATION_PAYLOAD%\$(PreparePayloadOutDirectoryName)\%(HelixWorkItem.ScenarioDirectoryName) %HELIX_WORKITEM_ROOT%\pub\ /E /I /Y + echo on; if not exist "%HELIX_WORKITEM_ROOT%\pub" mkdir "%HELIX_WORKITEM_ROOT%\pub"; copy /Y "%HELIX_CORRELATION_PAYLOAD%\$(PreparePayloadOutDirectoryName)\%(HelixWorkItem.ScenarioDirectoryName)\%(HelixWorkItem.ApkName).apk" "%HELIX_WORKITEM_ROOT%\pub\%(HelixWorkItem.ApkName).apk"; copy /Y "%HELIX_CORRELATION_PAYLOAD%\$(PreparePayloadOutDirectoryName)\%(HelixWorkItem.ScenarioDirectoryName)\versions.json" "%HELIX_WORKITEM_ROOT%\pub\versions.json" $(Python) test.py sod --scenario-name "%(Identity)" $(ScenarioArgs) - echo on; xcopy %HELIX_CORRELATION_PAYLOAD%\$(PreparePayloadOutDirectoryName)\%(HelixWorkItem.ScenarioDirectoryName) %HELIX_WORKITEM_ROOT%\pub\ /E /I /Y; ren %HELIX_WORKITEM_ROOT%\pub\%(HelixWorkItem.ApkName).apk %(HelixWorkItem.ApkName).zip; powershell.exe -nologo -noprofile -command "& {Expand-Archive %HELIX_WORKITEM_ROOT%\pub\%(HelixWorkItem.ApkName).zip -DestinationPath %HELIX_WORKITEM_ROOT%\pub\}"; del %HELIX_WORKITEM_ROOT%\pub\%(HelixWorkItem.ApkName).zip + echo on; if not exist "%HELIX_WORKITEM_ROOT%\pub" mkdir "%HELIX_WORKITEM_ROOT%\pub"; copy /Y "%HELIX_CORRELATION_PAYLOAD%\$(PreparePayloadOutDirectoryName)\%(HelixWorkItem.ScenarioDirectoryName)\%(HelixWorkItem.ApkName).apk" "%HELIX_WORKITEM_ROOT%\pub\%(HelixWorkItem.ApkName).apk"; copy /Y "%HELIX_CORRELATION_PAYLOAD%\$(PreparePayloadOutDirectoryName)\%(HelixWorkItem.ScenarioDirectoryName)\versions.json" "%HELIX_WORKITEM_ROOT%\pub\versions.json"; ren "%HELIX_WORKITEM_ROOT%\pub\%(HelixWorkItem.ApkName).apk" "%(HelixWorkItem.ApkName).zip"; powershell.exe -nologo -noprofile -command "& {Expand-Archive '%HELIX_WORKITEM_ROOT%\pub\%(HelixWorkItem.ApkName).zip' -DestinationPath '%HELIX_WORKITEM_ROOT%\pub'}"; del "%HELIX_WORKITEM_ROOT%\pub\%(HelixWorkItem.ApkName).zip" $(Python) test.py sod --scenario-name "%(Identity)" $(ScenarioArgs) diff --git a/eng/performance/maui_scenarios_ios.proj b/eng/performance/maui_scenarios_ios.proj index 084344d6aa0..c3dcad2d144 100644 --- a/eng/performance/maui_scenarios_ios.proj +++ b/eng/performance/maui_scenarios_ios.proj @@ -76,12 +76,13 @@ + - cp -r $HELIX_CORRELATION_PAYLOAD/$(PreparePayloadOutDirectoryName)/%(HelixWorkItem.ScenarioDirectoryName) $HELIX_WORKITEM_ROOT/pub + mkdir -p "$HELIX_WORKITEM_ROOT/pub" && cp "$HELIX_CORRELATION_PAYLOAD/$(PreparePayloadOutDirectoryName)/%(HelixWorkItem.ScenarioDirectoryName)/%(HelixWorkItem.IPAName).ipa" "$HELIX_WORKITEM_ROOT/pub/%(HelixWorkItem.IPAName).ipa" && cp "$HELIX_CORRELATION_PAYLOAD/$(PreparePayloadOutDirectoryName)/%(HelixWorkItem.ScenarioDirectoryName)/versions.json" "$HELIX_WORKITEM_ROOT/pub/versions.json" $(Python) test.py sod --scenario-name "%(Identity)" $(ScenarioArgs) - cp -r $HELIX_CORRELATION_PAYLOAD/$(PreparePayloadOutDirectoryName)/%(HelixWorkItem.ScenarioDirectoryName) $HELIX_WORKITEM_ROOT/pub; mv $HELIX_WORKITEM_ROOT/pub/%(HelixWorkItem.IPAName).ipa $HELIX_WORKITEM_ROOT/pub/%(HelixWorkItem.IPAName).zip; unzip -d $HELIX_WORKITEM_ROOT/pub $HELIX_WORKITEM_ROOT/pub/%(HelixWorkItem.IPAName).zip; rm $HELIX_WORKITEM_ROOT/pub/%(HelixWorkItem.IPAName).zip + mkdir -p "$HELIX_WORKITEM_ROOT/pub" && cp "$HELIX_CORRELATION_PAYLOAD/$(PreparePayloadOutDirectoryName)/%(HelixWorkItem.ScenarioDirectoryName)/%(HelixWorkItem.IPAName).ipa" "$HELIX_WORKITEM_ROOT/pub/%(HelixWorkItem.IPAName).ipa" && cp "$HELIX_CORRELATION_PAYLOAD/$(PreparePayloadOutDirectoryName)/%(HelixWorkItem.ScenarioDirectoryName)/versions.json" "$HELIX_WORKITEM_ROOT/pub/versions.json" && mv "$HELIX_WORKITEM_ROOT/pub/%(HelixWorkItem.IPAName).ipa" "$HELIX_WORKITEM_ROOT/pub/%(HelixWorkItem.IPAName).zip" && unzip -d "$HELIX_WORKITEM_ROOT/pub" "$HELIX_WORKITEM_ROOT/pub/%(HelixWorkItem.IPAName).zip" && rm "$HELIX_WORKITEM_ROOT/pub/%(HelixWorkItem.IPAName).zip" $(Python) test.py sod --scenario-name "%(Identity)" $(ScenarioArgs) From 8e640ac8770a914a79ffaa5a764b7c4a4df19131 Mon Sep 17 00:00:00 2001 From: Matous Kozak Date: Mon, 27 Jul 2026 15:41:17 +0200 Subject: [PATCH 2/2] Measure only the app bundle in iOS extracted size Extract just Payload from the IPA so the extracted-size metric reports installed app content instead of also counting Apple's Symbols directory, which contributed 40-72% of the previous totals. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 9cde6db4-052e-4355-a252-05b45b2e624e --- eng/performance/maui_scenarios_ios.proj | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/eng/performance/maui_scenarios_ios.proj b/eng/performance/maui_scenarios_ios.proj index c3dcad2d144..476de2f043c 100644 --- a/eng/performance/maui_scenarios_ios.proj +++ b/eng/performance/maui_scenarios_ios.proj @@ -81,8 +81,9 @@ mkdir -p "$HELIX_WORKITEM_ROOT/pub" && cp "$HELIX_CORRELATION_PAYLOAD/$(PreparePayloadOutDirectoryName)/%(HelixWorkItem.ScenarioDirectoryName)/%(HelixWorkItem.IPAName).ipa" "$HELIX_WORKITEM_ROOT/pub/%(HelixWorkItem.IPAName).ipa" && cp "$HELIX_CORRELATION_PAYLOAD/$(PreparePayloadOutDirectoryName)/%(HelixWorkItem.ScenarioDirectoryName)/versions.json" "$HELIX_WORKITEM_ROOT/pub/versions.json" $(Python) test.py sod --scenario-name "%(Identity)" $(ScenarioArgs) + - mkdir -p "$HELIX_WORKITEM_ROOT/pub" && cp "$HELIX_CORRELATION_PAYLOAD/$(PreparePayloadOutDirectoryName)/%(HelixWorkItem.ScenarioDirectoryName)/%(HelixWorkItem.IPAName).ipa" "$HELIX_WORKITEM_ROOT/pub/%(HelixWorkItem.IPAName).ipa" && cp "$HELIX_CORRELATION_PAYLOAD/$(PreparePayloadOutDirectoryName)/%(HelixWorkItem.ScenarioDirectoryName)/versions.json" "$HELIX_WORKITEM_ROOT/pub/versions.json" && mv "$HELIX_WORKITEM_ROOT/pub/%(HelixWorkItem.IPAName).ipa" "$HELIX_WORKITEM_ROOT/pub/%(HelixWorkItem.IPAName).zip" && unzip -d "$HELIX_WORKITEM_ROOT/pub" "$HELIX_WORKITEM_ROOT/pub/%(HelixWorkItem.IPAName).zip" && rm "$HELIX_WORKITEM_ROOT/pub/%(HelixWorkItem.IPAName).zip" + mkdir -p "$HELIX_WORKITEM_ROOT/pub" && cp "$HELIX_CORRELATION_PAYLOAD/$(PreparePayloadOutDirectoryName)/%(HelixWorkItem.ScenarioDirectoryName)/%(HelixWorkItem.IPAName).ipa" "$HELIX_WORKITEM_ROOT/pub/%(HelixWorkItem.IPAName).ipa" && cp "$HELIX_CORRELATION_PAYLOAD/$(PreparePayloadOutDirectoryName)/%(HelixWorkItem.ScenarioDirectoryName)/versions.json" "$HELIX_WORKITEM_ROOT/pub/versions.json" && mv "$HELIX_WORKITEM_ROOT/pub/%(HelixWorkItem.IPAName).ipa" "$HELIX_WORKITEM_ROOT/pub/%(HelixWorkItem.IPAName).zip" && unzip -d "$HELIX_WORKITEM_ROOT/pub" "$HELIX_WORKITEM_ROOT/pub/%(HelixWorkItem.IPAName).zip" 'Payload/*' && rm "$HELIX_WORKITEM_ROOT/pub/%(HelixWorkItem.IPAName).zip" $(Python) test.py sod --scenario-name "%(Identity)" $(ScenarioArgs)