Skip to content

Commit 39b3aac

Browse files
authored
[MAUI][PERF] Maui Perf add iOS Podcast SOD Tests (#67165)
* Publish the maui iOS Podcast app in the build yml * Pipe the built Podcast IPA file through and test it.
1 parent 07549f0 commit 39b3aac

File tree

4 files changed

+53
-4
lines changed

4 files changed

+53
-4
lines changed

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

Lines changed: 33 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -157,12 +157,11 @@ steps:
157157
pwd
158158
chmod -R a+r .
159159
../../../dotnet restore Microsoft.NetConf2021.Maui.csproj
160-
../../../dotnet publish Microsoft.NetConf2021.Maui.csproj -bl:MauiAndroid.binlog -r android-arm64 --self-contained --no-restore -f net6.0-android -c Release
160+
../../../dotnet publish Microsoft.NetConf2021.Maui.csproj -bl:MauiPodcastAndroid.binlog -r android-arm64 --self-contained --no-restore -f net6.0-android -c Release
161161
mv ./bin/Release/net6.0-android/android-arm64/com.Microsoft.NetConf2021.Maui-Signed.apk $(Build.SourcesDirectory)/MauiTesting/MauiAndroidPodcast.apk
162-
displayName: Build podcast app for MAUI
162+
displayName: Build MAUI Podcast Android
163163
workingDirectory: $(Build.SourcesDirectory)/dotnet-podcasts/src/Mobile
164164
165-
166165
# This step pulls the product version from the used Microsoft.Maui.dll file properties and saves it for upload with the maui test counter.
167166
# We pull from this file as we did not find another place to reliably get the version information pre or post build.
168167
- powershell: |
@@ -186,6 +185,20 @@ steps:
186185
displayName: Build MAUI iOS
187186
workingDirectory: $(Build.SourcesDirectory)/MauiTesting
188187
188+
- script: |
189+
chmod -R a+r .
190+
# remove net6.0-maccatalyst to work around https://github.com/dotnet/sdk/issues/21877
191+
cp Microsoft.NetConf2021.Maui.csproj Microsoft.NetConf2021.Maui.csproj.bak
192+
sed -i'' -e 's/net6.0-ios;net6.0-maccatalyst/net6.0-ios/g' Microsoft.NetConf2021.Maui.csproj
193+
194+
../../../dotnet build ../Web/Components/Podcast.Components.Maui.csproj
195+
../../../dotnet publish Microsoft.NetConf2021.Maui.csproj -bl:MauiiOSPodcast.binlog -f net6.0-ios --self-contained -r ios-arm64 -c Release /p:_RequireCodeSigning=false
196+
mv ./bin/Release/net6.0-ios/ios-arm64/publish/Microsoft.NetConf2021.Maui.ipa ./MauiiOSPodcast.ipa
197+
198+
cp Microsoft.NetConf2021.Maui.csproj.bak Microsoft.NetConf2021.Maui.csproj
199+
displayName: Build MAUI Podcast iOS
200+
workingDirectory: $(Build.SourcesDirectory)/dotnet-podcasts/src/Mobile
201+
189202
- script: |
190203
chmod -R a+r .
191204
../dotnet publish -bl:MauiMacCatalyst.binlog -f net6.0-maccatalyst -c Release
@@ -214,6 +227,13 @@ steps:
214227
pathtoPublish: $(Build.SourcesDirectory)/MauiTesting/MauiMacCatalyst.binlog
215228
artifactName: ${{ parameters.artifactName }}
216229

230+
- task: PublishBuildArtifacts@1
231+
displayName: 'Publish MauiiOSPodcast binlog'
232+
condition: always()
233+
inputs:
234+
pathtoPublish: $(Build.SourcesDirectory)/dotnet-podcasts/src/Mobile/MauiiOSPodcast.binlog
235+
artifactName: ${{ parameters.artifactName }}
236+
217237
- template: /eng/pipelines/common/upload-artifact-step.yml
218238
parameters:
219239
rootFolder: $(Build.SourcesDirectory)/MauiTesting/MauiAndroidDefault.apk
@@ -234,7 +254,6 @@ steps:
234254
archiveType: tar
235255
tarCompression: gz
236256

237-
238257
- template: /eng/pipelines/common/upload-artifact-step.yml
239258
parameters:
240259
rootFolder: $(Build.SourcesDirectory)/MauiTesting/MauiiOSDefault.ipa
@@ -245,6 +264,16 @@ steps:
245264
archiveType: tar
246265
tarCompression: gz
247266

267+
- template: /eng/pipelines/common/upload-artifact-step.yml
268+
parameters:
269+
rootFolder: $(Build.SourcesDirectory)/dotnet-podcasts/src/Mobile/MauiiOSPodcast.ipa
270+
includeRootFolder: true
271+
displayName: Maui iOS Podcast IPA
272+
artifactName: MauiiOSPodcastIPA
273+
archiveExtension: '.tar.gz'
274+
archiveType: tar
275+
tarCompression: gz
276+
248277
- template: /eng/pipelines/common/upload-artifact-step.yml
249278
parameters:
250279
rootFolder: $(Build.SourcesDirectory)/MauiTesting/MauiMacCatalystDefault.app

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

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,13 @@ jobs:
216216
artifactFileName: 'MauiMacCatalystDefault.tar.gz'
217217
artifactName: 'MauiMacCatalystDefault'
218218
displayName: 'Maui MacCatalyst App'
219+
- template: /eng/pipelines/common/download-artifact-step.yml
220+
parameters:
221+
unpackFolder: $(Build.SourcesDirectory)/MauiiOSPodcastIPA
222+
cleanUnpackFolder: false
223+
artifactFileName: 'MauiiOSPodcastIPA.tar.gz'
224+
artifactName: 'MauiiOSPodcastIPA'
225+
displayName: 'Maui iOS Podcast IPA'
219226

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

eng/testing/performance/ios_scenarios.proj

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,5 +48,17 @@
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 iOS Podcast IPA Size" Condition="'$(iOSLlvmBuild)' == 'False'">
52+
<PayloadDirectory>$(WorkItemDirectory)</PayloadDirectory>
53+
<PreCommands>cd $(ScenarioDirectory)mauiios;copy %HELIX_CORRELATION_PAYLOAD%\MauiiOSPodcastIPA\MauiiOSPodcast.ipa .;$(Python) pre.py --name MauiiOSPodcast.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 iOS Podcast IPA Size Unzipped" Condition="'$(iOSLlvmBuild)' == 'False'">
58+
<PayloadDirectory>$(WorkItemDirectory)</PayloadDirectory>
59+
<PreCommands>cd $(ScenarioDirectory)mauiios;copy %HELIX_CORRELATION_PAYLOAD%\MauiiOSPodcastIPA\MauiiOSPodcast.ipa .;$(Python) pre.py --unzip --name MauiiOSPodcast.ipa</PreCommands>
60+
<Command>$(Python) test.py sod --scenario-name &quot;%(Identity)&quot;</Command>
61+
<PostCommands>$(Python) post.py</PostCommands>
62+
</HelixWorkItem>
5163
</ItemGroup>
5264
</Project>

eng/testing/performance/performance-setup.ps1

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,7 @@ if ($iOSMono) {
172172
Copy-Item -path "$SourceDirectory\iosHelloWorld\nollvm" $PayloadDirectory\iosHelloWorld\nollvm -Recurse
173173
Copy-Item -path "$SourceDirectory\MauiiOSDefaultIPA" $PayloadDirectory\MauiiOSDefaultIPA -Recurse
174174
Copy-Item -path "$SourceDirectory\MauiMacCatalystDefault\MauiMacCatalystDefault.app" $PayloadDirectory\MauiMacCatalystDefault -Recurse
175+
Copy-Item -path "$SourceDirectory\MauiiOSPodcastIPA" $PayloadDirectory\MauiiOSPodcastIPA -Recurse
175176
}
176177

177178
$SetupArguments = $SetupArguments -replace $Architecture, 'arm64'

0 commit comments

Comments
 (0)