Skip to content

Commit b1aaaf2

Browse files
authored
[MAUI][Blazor][PERF] Add IPA file usage for iOS/MacCatalyst Maui Blazor SOD
1 parent 89f5745 commit b1aaaf2

File tree

4 files changed

+92
-6
lines changed

4 files changed

+92
-6
lines changed

eng/pipelines/coreclr/templates/build-perf-maui-apps.yml

Lines changed: 58 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -209,8 +209,6 @@ steps:
209209
- script: |
210210
./dotnet new maui-blazor -n MauiBlazorTesting
211211
cd MauiBlazorTesting
212-
# cp $(Build.SourcesDirectory)/src/tests/Common/maui/MauiScenario.props ./Directory.Build.props
213-
# cp $(Build.SourcesDirectory)/src/tests/Common/maui/MauiScenario.targets ./Directory.Build.targets
214212
cp $(Build.SourcesDirectory)/NuGet.config ./NuGet.config
215213
216214
echo -e "using Microsoft.AspNetCore.Components;
@@ -250,13 +248,47 @@ steps:
250248
displayName: Build MAUI Blazor Android
251249
workingDirectory: $(Build.SourcesDirectory)/MauiBlazorTesting
252250
251+
- script: |
252+
chmod -R a+r .
253+
# remove net6.0-maccatalyst to work around https://github.com/dotnet/sdk/issues/21877
254+
cp MauiBlazorTesting.csproj MauiBlazorTesting.csproj.bak
255+
sed -i'' -e 's/net6.0-ios;net6.0-maccatalyst/net6.0-ios/g' MauiBlazorTesting.csproj
256+
257+
../dotnet publish -bl:MauiBlazoriOS.binlog -f net6.0-ios --self-contained -r ios-arm64 -c Release /p:_RequireCodeSigning=false
258+
mv ./bin/Release/net6.0-ios/ios-arm64/publish/MauiBlazorTesting.ipa ./MauiBlazoriOSDefault.ipa
259+
260+
cp MauiBlazorTesting.csproj.bak MauiBlazorTesting.csproj
261+
displayName: Build MAUI Blazor iOS
262+
workingDirectory: $(Build.SourcesDirectory)/MauiBlazorTesting
263+
264+
- script: |
265+
chmod -R a+r .
266+
../dotnet publish -bl:MauiBlazorMacCatalyst.binlog -f net6.0-maccatalyst -c Release
267+
mv ./bin/Release/net6.0-maccatalyst/maccatalyst-x64/MauiBlazorTesting.app ./MauiBlazorMacCatalystDefault.app
268+
displayName: Build MAUI Blazor MacCatalyst
269+
workingDirectory: $(Build.SourcesDirectory)/MauiBlazorTesting
270+
253271
- task: PublishBuildArtifacts@1
254272
displayName: 'Publish MauiAndroid binlog'
255273
condition: always()
256274
inputs:
257275
pathtoPublish: $(Build.SourcesDirectory)/MauiTesting/MauiAndroid.binlog
258276
artifactName: ${{ parameters.artifactName }}
259277

278+
- task: PublishBuildArtifacts@1
279+
displayName: 'Publish MauiiOS binlog'
280+
condition: always()
281+
inputs:
282+
pathtoPublish: $(Build.SourcesDirectory)/MauiTesting/MauiiOS.binlog
283+
artifactName: ${{ parameters.artifactName }}
284+
285+
- task: PublishBuildArtifacts@1
286+
displayName: 'Publish MauiMacCatalyst binlog'
287+
condition: always()
288+
inputs:
289+
pathtoPublish: $(Build.SourcesDirectory)/MauiTesting/MauiMacCatalyst.binlog
290+
artifactName: ${{ parameters.artifactName }}
291+
260292
- task: PublishBuildArtifacts@1
261293
displayName: 'Publish MauiBlazorAndroid binlog'
262294
condition: always()
@@ -265,17 +297,17 @@ steps:
265297
artifactName: ${{ parameters.artifactName }}
266298

267299
- task: PublishBuildArtifacts@1
268-
displayName: 'Publish MauiiOS binlog'
300+
displayName: 'Publish MauiBlazoriOS binlog'
269301
condition: always()
270302
inputs:
271-
pathtoPublish: $(Build.SourcesDirectory)/MauiTesting/MauiiOS.binlog
303+
pathtoPublish: $(Build.SourcesDirectory)/MauiBlazorTesting/MauiBlazoriOS.binlog
272304
artifactName: ${{ parameters.artifactName }}
273305

274306
- task: PublishBuildArtifacts@1
275-
displayName: 'Publish MauiMacCatalyst binlog'
307+
displayName: 'Publish MauiBlazorMacCatalyst binlog'
276308
condition: always()
277309
inputs:
278-
pathtoPublish: $(Build.SourcesDirectory)/MauiTesting/MauiMacCatalyst.binlog
310+
pathtoPublish: $(Build.SourcesDirectory)/MauiBlazorTesting/MauiBlazorMacCatalyst.binlog
279311
artifactName: ${{ parameters.artifactName }}
280312

281313
- task: PublishBuildArtifacts@1
@@ -325,6 +357,16 @@ steps:
325357
archiveType: tar
326358
tarCompression: gz
327359

360+
- template: /eng/pipelines/common/upload-artifact-step.yml
361+
parameters:
362+
rootFolder: $(Build.SourcesDirectory)/MauiBlazorpTesting/MauiBlazoriOSDefault.ipa
363+
includeRootFolder: true
364+
displayName: Maui Blazor iOS IPA
365+
artifactName: MauiBlazoriOSDefaultIPA
366+
archiveExtension: '.tar.gz'
367+
archiveType: tar
368+
tarCompression: gz
369+
328370
- template: /eng/pipelines/common/upload-artifact-step.yml
329371
parameters:
330372
rootFolder: $(Build.SourcesDirectory)/dotnet-podcasts/src/Mobile/MauiiOSPodcast.ipa
@@ -345,6 +387,16 @@ steps:
345387
archiveType: tar
346388
tarCompression: gz
347389

390+
- template: /eng/pipelines/common/upload-artifact-step.yml
391+
parameters:
392+
rootFolder: $(Build.SourcesDirectory)/MauiBlazorTesting/MauiBlazorMacCatalystDefault.app
393+
includeRootFolder: true
394+
displayName: Maui Blazor MacCatalyst App
395+
artifactName: MauiBlazorMacCatalystDefault
396+
archiveExtension: '.tar.gz'
397+
archiveType: tar
398+
tarCompression: gz
399+
348400
- script: rm -r -f ./bin
349401
workingDirectory: $(Build.SourcesDirectory)/MauiTesting
350402
displayName: Clean MauiTesting bin directory

eng/pipelines/coreclr/templates/perf-job.yml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -237,6 +237,20 @@ jobs:
237237
artifactFileName: 'MauiiOSPodcastIPA.tar.gz'
238238
artifactName: 'MauiiOSPodcastIPA'
239239
displayName: 'Maui iOS Podcast IPA'
240+
- template: /eng/pipelines/common/download-artifact-step.yml
241+
parameters:
242+
unpackFolder: $(Build.SourcesDirectory)/MauiBlazoriOSDefaultIPA
243+
cleanUnpackFolder: false
244+
artifactFileName: 'MauiBlazoriOSDefaultIPA.tar.gz'
245+
artifactName: 'MauiBlazoriOSDefaultIPA'
246+
displayName: 'Maui Blazor iOS IPA'
247+
- template: /eng/pipelines/common/download-artifact-step.yml
248+
parameters:
249+
unpackFolder: $(Build.SourcesDirectory)/MauiBlazorMacCatalystDefault
250+
cleanUnpackFolder: false
251+
artifactFileName: 'MauiBlazorMacCatalystDefault.tar.gz'
252+
artifactName: 'MauiBlazorMacCatalystDefault'
253+
displayName: 'Maui Blazor MacCatalyst App'
240254

241255
# Create Core_Root
242256
- script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) $(buildConfig) $(archType) generatelayoutonly $(librariesOverrideArg)

eng/testing/performance/ios_scenarios.proj

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,24 @@
4848
<Command>$(Python) test.py sod --scenario-name &quot;%(Identity)&quot;</Command>
4949
<PostCommands>$(Python) post.py</PostCommands>
5050
</HelixWorkItem>
51+
<HelixWorkItem Include="SOD - Maui Blazor iOS IPA Size" Condition="'$(iOSLlvmBuild)' == 'False'">
52+
<PayloadDirectory>$(WorkItemDirectory)</PayloadDirectory>
53+
<PreCommands>cd $(ScenarioDirectory)mauiblazorios;copy %HELIX_CORRELATION_PAYLOAD%\MauiBlazoriOSDefaultIPA\MauiBlazoriOSDefault.ipa .;$(Python) pre.py --name MauiBlazoriOSDefault.ipa</PreCommands>
54+
<Command>$(Python) test.py sod --scenario-name &quot;%(Identity)&quot;</Command>
55+
<PostCommands>$(Python) post.py</PostCommands>
56+
</HelixWorkItem>
57+
<HelixWorkItem Include="SOD - Maui Blazor iOS IPA Size Unzipped" Condition="'$(iOSLlvmBuild)' == 'False'">
58+
<PayloadDirectory>$(WorkItemDirectory)</PayloadDirectory>
59+
<PreCommands>cd $(ScenarioDirectory)mauiblazorios;copy %HELIX_CORRELATION_PAYLOAD%\MauiBlazoriOSDefaultIPA\MauiBlazoriOSDefault.ipa .;$(Python) pre.py --unzip --name MauiBlazoriOSDefault.ipa</PreCommands>
60+
<Command>$(Python) test.py sod --scenario-name &quot;%(Identity)&quot;</Command>
61+
<PostCommands>$(Python) post.py</PostCommands>
62+
</HelixWorkItem>
63+
<HelixWorkItem Include="SOD - Maui Blazor MacCatalyst .app Size" Condition="'$(iOSLlvmBuild)' == 'False'">
64+
<PayloadDirectory>$(WorkItemDirectory)</PayloadDirectory>
65+
<PreCommands>cd $(ScenarioDirectory)mauiblazorios;xcopy %HELIX_CORRELATION_PAYLOAD%\MauiBlazorMacCatalystDefault .\app/e/i;$(Python) pre.py --name app</PreCommands>
66+
<Command>$(Python) test.py sod --scenario-name &quot;%(Identity)&quot;</Command>
67+
<PostCommands>$(Python) post.py</PostCommands>
68+
</HelixWorkItem>
5169
<HelixWorkItem Include="SOD - Maui iOS Podcast IPA Size" Condition="'$(iOSLlvmBuild)' == 'False'">
5270
<PayloadDirectory>$(WorkItemDirectory)</PayloadDirectory>
5371
<PreCommands>cd $(ScenarioDirectory)mauiios;copy %HELIX_CORRELATION_PAYLOAD%\MauiiOSPodcastIPA\MauiiOSPodcast.ipa .;$(Python) pre.py --name MauiiOSPodcast.ipa</PreCommands>

eng/testing/performance/performance-setup.ps1

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,8 @@ if ($iOSMono) {
173173
Copy-Item -path "$SourceDirectory\iosHelloWorld\nollvm" $PayloadDirectory\iosHelloWorld\nollvm -Recurse
174174
Copy-Item -path "$SourceDirectory\MauiiOSDefaultIPA" $PayloadDirectory\MauiiOSDefaultIPA -Recurse
175175
Copy-Item -path "$SourceDirectory\MauiMacCatalystDefault\MauiMacCatalystDefault.app" $PayloadDirectory\MauiMacCatalystDefault -Recurse
176+
Copy-Item -path "$SourceDirectory\MauiBlazoriOSDefaultIPA" $PayloadDirectory\MauiBlazoriOSDefaultIPA -Recurse
177+
Copy-Item -path "$SourceDirectory\MauiBlazorMacCatalystDefault\MauiBlazorMacCatalystDefault.app" $PayloadDirectory\MauiBlazorMacCatalystDefault -Recurse
176178
Copy-Item -path "$SourceDirectory\MauiiOSPodcastIPA" $PayloadDirectory\MauiiOSPodcastIPA -Recurse
177179
}
178180

0 commit comments

Comments
 (0)