Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[PERF][MAUI]dotnet-podcast startup time and size measurements #65813

Merged
merged 44 commits into from
Mar 14, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
264b736
Added yml for podcast app.
Feb 23, 2022
9aa22a1
Switched to podcast yml.
Feb 23, 2022
9fcf51d
Added missing script.
Feb 23, 2022
3ece867
Removed --from-rollback-file https://aka.ms/dotnet/maui/main.json
Feb 23, 2022
4701b87
Corrected dotnet path.
Feb 24, 2022
7fdbe1d
Added project.
Feb 24, 2022
0c8d9d5
Integerated into perf-maui-apps
Feb 24, 2022
b01bffc
Moved perf.yml back to using perf-maui-apps
Feb 24, 2022
614c4be
Removed build-perf-maui-podcast.
Feb 24, 2022
6231f11
added appname value
Feb 24, 2022
924ea5b
Added missing )
Feb 24, 2022
2706cb5
Added other missing )
Feb 24, 2022
97fe3ad
Single quotes.
Feb 24, 2022
a0d353c
Changed apk path.
Feb 25, 2022
a712b47
Split out restore, added -r android-arm64 to publish.
Feb 28, 2022
4bf66fc
Added project name to restore.
Feb 28, 2022
b6076b1
Switched to ./../../dotnet
Feb 28, 2022
a448e5d
Added back run of maui scenarious
Mar 1, 2022
b77b98e
Build android scenarios.
Mar 1, 2022
8560ddb
Moved comment.
Mar 1, 2022
44a70c3
Added maui testing.
Mar 2, 2022
1f8743a
Moved obj
Mar 2, 2022
ae64035
Podcast work item.
Mar 3, 2022
e5807b3
Run both podcast and new maui.
Mar 3, 2022
137006a
Fixed spacing.
Mar 3, 2022
ed2f183
More spacing fixes.
Mar 3, 2022
c209e69
Even more spacing fixes.
Mar 3, 2022
c6f6c14
Removed errant s.
Mar 3, 2022
78f5dc8
Added download.
Mar 3, 2022
3b112d8
Changed helix work item name.
Mar 4, 2022
35d8802
Added copy item to perfromance-setup.ps1
Mar 4, 2022
40e20c8
Updated package name.
Mar 4, 2022
28c08ea
Added .Maui to package name.
Mar 7, 2022
ac2db0a
Enable podcast size scenarios.
Mar 10, 2022
afc6500
Removed extra <
Mar 11, 2022
ab9e216
Removed another <
Mar 11, 2022
d837f99
Fixed copy of file for size.
Mar 11, 2022
d640679
Fixed merge error.
Mar 11, 2022
46020fc
Fixed merge errors again.
Mar 11, 2022
553ebd4
Undid duplication of lanes in perf.yml
Mar 11, 2022
1147705
Added working directory back for iOS.
Mar 12, 2022
950eba2
Removed app name parameter.
Mar 14, 2022
71cabb4
Added back comment.
Mar 14, 2022
3d540de
Added no animation scenario to podcast.
Mar 14, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 32 additions & 1 deletion eng/pipelines/coreclr/templates/build-perf-maui-apps.yml
Original file line number Diff line number Diff line change
Expand Up @@ -142,6 +142,27 @@ steps:
displayName: Build MAUI Android
workingDirectory: $(Build.SourcesDirectory)/MauiTesting

- script: |
set -x
pwd
git clone https://github.com/naricc/dotnet-podcasts.git
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should think about what to do here going forward.

cd dotnet-podcasts
cp $(Build.SourcesDirectory)/src/tests/Common/maui/MauiScenario.props ./Directory.Build.props
cp $(Build.SourcesDirectory)/src/tests/Common/maui/MauiScenario.targets ./Directory.Build.targets
displayName: Clone podcast app
workingDirectory: $(Build.SourcesDirectory)

- script: |
set -x
pwd
chmod -R a+r .
../../../dotnet restore Microsoft.NetConf2021.Maui.csproj
../../../dotnet publish Microsoft.NetConf2021.Maui.csproj -bl:MauiAndroid.binlog -r android-arm64 --self-contained --no-restore -f net6.0-android -c Release
mv ./bin/Release/net6.0-android/android-arm64/com.Microsoft.NetConf2021.Maui-Signed.apk $(Build.SourcesDirectory)/MauiTesting/MauiAndroidPodcast.apk
displayName: Build podcast app for MAUI
workingDirectory: $(Build.SourcesDirectory)/dotnet-podcasts/src/Mobile


# This step pulls the product version from the used Microsoft.Maui.dll file properties and saves it for upload with the maui test counter.
# We pull from this file as we did not find another place to reliably get the version information pre or post build.
- powershell: |
Expand All @@ -154,7 +175,6 @@ steps:

- script: |
chmod -R a+r .

# remove net6.0-maccatalyst to work around https://github.com/dotnet/sdk/issues/21877
cp MauiTesting.csproj MauiTesting.csproj.bak
sed -i'' -e 's/net6.0-ios;net6.0-maccatalyst/net6.0-ios/g' MauiTesting.csproj
Expand Down Expand Up @@ -204,6 +224,17 @@ steps:
archiveType: tar
tarCompression: gz

- template: /eng/pipelines/common/upload-artifact-step.yml
parameters:
rootFolder: $(Build.SourcesDirectory)/MauiTesting/MauiAndroidPodcast.apk
includeRootFolder: true
displayName: Maui Android Podcast
artifactName: MauiAndroidPodcast
archiveExtension: '.tar.gz'
archiveType: tar
tarCompression: gz


- template: /eng/pipelines/common/upload-artifact-step.yml
parameters:
rootFolder: $(Build.SourcesDirectory)/MauiTesting/MauiiOSDefault.ipa
Expand Down
8 changes: 8 additions & 0 deletions eng/pipelines/coreclr/templates/perf-job.yml
Original file line number Diff line number Diff line change
Expand Up @@ -166,6 +166,14 @@ jobs:
artifactFileName: 'MauiAndroidApp.tar.gz'
artifactName: 'MauiAndroidApp'
displayName: 'Maui Android App'
- template: /eng/pipelines/common/download-artifact-step.yml
parameters:
unpackFolder: $(Build.SourcesDirectory)
cleanUnpackFolder: false
artifactFileName: 'MauiAndroidPodcast.tar.gz'
artifactName: 'MauiAndroidPodcast'
displayName: 'Maui Android Podcast'


# Download iOSMono tests and MauiiOS/MacCatalyst
- ${{ if eq(parameters.runtimeType, 'iOSMono') }}:
Expand Down
23 changes: 23 additions & 0 deletions eng/testing/performance/android_scenarios.proj
Original file line number Diff line number Diff line change
Expand Up @@ -41,12 +41,24 @@
<Command>$(Python) test.py sod --scenario-name &quot;%(Identity)&quot;</Command>
<PostCommands>$(Python) post.py</PostCommands>
</HelixWorkItem>
<HelixWorkItem Include="SOD - Maui Android Podcast APK Size">
<PayloadDirectory>$(WorkItemDirectory)</PayloadDirectory>
<PreCommands>cd $(ScenarioDirectory)mauiandroid;copy %HELIX_CORRELATION_PAYLOAD%\MauiAndroidPodcast.apk .; $(Python) pre.py --apk-name MauiAndroidPodcast.apk</PreCommands>
<Command>$(Python) test.py sod --scenario-name &quot;%(Identity)&quot;</Command>
<PostCommands>$(Python) post.py</PostCommands>
</HelixWorkItem>
<HelixWorkItem Include="SOD - Maui Android Extracted Size">
<PayloadDirectory>$(WorkItemDirectory)</PayloadDirectory>
<PreCommands>cd $(ScenarioDirectory)mauiandroid;copy %HELIX_CORRELATION_PAYLOAD%\MauiAndroidDefault.apk .; $(Python) pre.py --unzip --apk-name MauiAndroidDefault.apk</PreCommands>
<Command>$(Python) test.py sod --scenario-name &quot;%(Identity)&quot;</Command>
<PostCommands>$(Python) post.py</PostCommands>
</HelixWorkItem>
<HelixWorkItem Include="SOD - Maui Android Podcast Extracted Size">
<PayloadDirectory>$(WorkItemDirectory)</PayloadDirectory>
<PreCommands>cd $(ScenarioDirectory)mauiandroid;copy %HELIX_CORRELATION_PAYLOAD%\MauiAndroidPodcast.apk .; $(Python) pre.py --unzip --apk-name MauiAndroidPodcast.apk</PreCommands>
<Command>$(Python) test.py sod --scenario-name &quot;%(Identity)&quot;</Command>
<PostCommands>$(Python) post.py</PostCommands>
</HelixWorkItem>
<HelixWorkItem Include="Device Startup - Android Mono HelloWorld">
<PayloadDirectory>$(WorkItemDirectory)</PayloadDirectory>
<PreCommands>echo on;set XHARNESSPATH=$(XharnessPath);cd $(ScenarioDirectory)helloandroid;copy %HELIX_CORRELATION_PAYLOAD%\HelloAndroid.apk .;$(Python) pre.py --apk-name HelloAndroid.apk</PreCommands>
Expand All @@ -65,11 +77,22 @@
<Command>$(Python) test.py devicestartup --device-type android --package-path pub\MauiAndroidDefault.apk --package-name com.companyname.mauitesting --scenario-name &quot;%(Identity)&quot;</Command>
<PostCommands>$(Python) post.py</PostCommands>
</HelixWorkItem>
<HelixWorkItem Include="Device Startup - Android Maui Podcast">
<PayloadDirectory>$(WorkItemDirectory)</PayloadDirectory>
<PreCommands>echo on;set XHARNESSPATH=$(XharnessPath);cd $(ScenarioDirectory)mauiandroid;copy %HELIX_CORRELATION_PAYLOAD%\MauiAndroidPodcast.apk .;$(Python) pre.py --apk-name MauiAndroidPodcast.apk</PreCommands>
<Command>$(Python) test.py devicestartup --device-type android --package-path pub\MauiAndroidPodcast.apk --package-name com.Microsoft.NetConf2021.Maui --scenario-name &quot;%(Identity)&quot;</Command>
<PostCommands>$(Python) post.py</PostCommands>
</HelixWorkItem>
<HelixWorkItem Include="Device Startup - Android Maui DefaultTesting NoAnimation">
<PayloadDirectory>$(WorkItemDirectory)</PayloadDirectory>
<PreCommands>echo on;set XHARNESSPATH=$(XharnessPath);cd $(ScenarioDirectory)mauiandroid;copy %HELIX_CORRELATION_PAYLOAD%\MauiAndroidDefault.apk .;$(Python) pre.py --apk-name MauiAndroidDefault.apk</PreCommands>
<Command>$(Python) test.py devicestartup --device-type android --package-path pub\MauiAndroidDefault.apk --package-name com.companyname.mauitesting --scenario-name &quot;%(Identity)&quot; --disable-animations</Command>
<PostCommands>$(Python) post.py</PostCommands>
</HelixWorkItem>
<HelixWorkItem Include="Device Startup - Android Maui Podcast NoAnimation">
<PayloadDirectory>$(WorkItemDirectory)</PayloadDirectory>
<PreCommands>echo on;set XHARNESSPATH=$(XharnessPath);cd $(ScenarioDirectory)mauiandroid;copy %HELIX_CORRELATION_PAYLOAD%\MauiAndroidPodcast.apk .;$(Python) pre.py --apk-name MauiAndroidPodcast.apk</PreCommands>
<Command>$(Python) test.py devicestartup --device-type android --package-path pub\MauiAndroidPodcast.apk --package-name com.Microsoft.NetConf2021.Maui --scenario-name &quot;%(Identity)&quot; --disable-animations</Command>
<PostCommands>$(Python) post.py</PostCommands>
</ItemGroup>
</Project>
1 change: 1 addition & 0 deletions eng/testing/performance/performance-setup.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -157,6 +157,7 @@ if ($AndroidMono) {

Copy-Item -path "$SourceDirectory\androidHelloWorld\HelloAndroid.apk" $PayloadDirectory -Verbose
Copy-Item -path "$SourceDirectory\MauiAndroidDefault.apk" $PayloadDirectory -Verbose
Copy-Item -path "$SourceDirectory\MauiAndroidPodcast.apk" $PayloadDirectory -Verbose
$SetupArguments = $SetupArguments -replace $Architecture, 'arm64'
}

Expand Down