From 592dd14a7275264bfd929716c378e8470ea608e6 Mon Sep 17 00:00:00 2001 From: Tanay Parikh Date: Tue, 19 Apr 2022 23:09:41 +0000 Subject: [PATCH 01/22] [MAUI][Blazor][PERF] Add APK file usage for Android Maui Blazor SOD --- .../templates/build-perf-maui-apps.yml | 42 ++++++++++++++++++- eng/pipelines/coreclr/templates/perf-job.yml | 7 ++++ .../performance/android_scenarios.proj | 24 +++++++++++ eng/testing/performance/performance-setup.ps1 | 3 +- 4 files changed, 74 insertions(+), 2 deletions(-) diff --git a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml index 4c77815510701..e02f0242ee3a8 100644 --- a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml +++ b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml @@ -206,6 +206,24 @@ steps: displayName: Build MAUI MacCatalyst workingDirectory: $(Build.SourcesDirectory)/MauiTesting + - script: | + ./dotnet new maui-blazor -n MauiBlazorTesting + cd MauiBlazorTesting + # cp $(Build.SourcesDirectory)/src/tests/Common/maui/MauiScenario.props ./Directory.Build.props + # cp $(Build.SourcesDirectory)/src/tests/Common/maui/MauiScenario.targets ./Directory.Build.targets + cp $(Build.SourcesDirectory)/NuGet.config ./NuGet.config + displayName: Setup MAUI Blazor Hybrid Project + workingDirectory: $(Build.SourcesDirectory) + + - script: | + chmod -R a+r . + # Restore is split out because of https://github.com/dotnet/sdk/issues/21877, can be removed with --no-restore once fixed + ../dotnet restore + ../dotnet publish -bl:MauiBlazorAndroid.binlog -f net6.0-android -c Release -r android-arm64 --no-restore --self-contained + mv ./bin/Release/net6.0-android/android-arm64/com.companyname.mauiblazortesting-Signed.apk ./MauiBlazorAndroidDefault.apk + displayName: Build MAUI Blazor Android + workingDirectory: $(Build.SourcesDirectory)/MauiBlazorTesting + - task: PublishBuildArtifacts@1 displayName: 'Publish MauiAndroid binlog' condition: always() @@ -213,6 +231,13 @@ steps: pathtoPublish: $(Build.SourcesDirectory)/MauiTesting/MauiAndroid.binlog artifactName: ${{ parameters.artifactName }} + - task: PublishBuildArtifacts@1 + displayName: 'Publish MauiBlazorAndroid binlog' + condition: always() + inputs: + pathtoPublish: $(Build.SourcesDirectory)/MauiBlazorTesting/MauiBlazorAndroid.binlog + artifactName: ${{ parameters.artifactName }} + - task: PublishBuildArtifacts@1 displayName: 'Publish MauiiOS binlog' condition: always() @@ -244,6 +269,16 @@ steps: archiveType: tar tarCompression: gz + - template: /eng/pipelines/common/upload-artifact-step.yml + parameters: + rootFolder: $(Build.SourcesDirectory)/MauiBlazorTesting/MauiBlazorAndroidDefault.apk + includeRootFolder: true + displayName: Maui Blazor Android App + artifactName: MauiBlazorAndroidApp + archiveExtension: '.tar.gz' + archiveType: tar + tarCompression: gz + - template: /eng/pipelines/common/upload-artifact-step.yml parameters: rootFolder: $(Build.SourcesDirectory)/MauiTesting/MauiAndroidPodcast.apk @@ -286,7 +321,12 @@ steps: - script: rm -r -f ./bin workingDirectory: $(Build.SourcesDirectory)/MauiTesting - displayName: Clean bin directory + displayName: Clean MauiTesting bin directory + condition: succeededOrFailed() + + - script: rm -r -f ./bin + workingDirectory: $(Build.SourcesDirectory)/MauiBlazorTesting + displayName: Clean MauiBlazorTesting bin directory condition: succeededOrFailed() - template: /eng/pipelines/common/upload-artifact-step.yml diff --git a/eng/pipelines/coreclr/templates/perf-job.yml b/eng/pipelines/coreclr/templates/perf-job.yml index 7a955240dfd6a..dd5a045767bd1 100644 --- a/eng/pipelines/coreclr/templates/perf-job.yml +++ b/eng/pipelines/coreclr/templates/perf-job.yml @@ -191,6 +191,13 @@ jobs: artifactFileName: 'MauiAndroidPodcast.tar.gz' artifactName: 'MauiAndroidPodcast' displayName: 'Maui Android Podcast' + - template: /eng/pipelines/common/download-artifact-step.yml + parameters: + unpackFolder: $(Build.SourcesDirectory) + cleanUnpackFolder: false + artifactFileName: 'MauiBlazorAndroidApp.tar.gz' + artifactName: 'MauiBlazorAndroidApp' + displayName: 'Maui Blazor Android App' # Download iOSMono tests and MauiiOS/MacCatalyst diff --git a/eng/testing/performance/android_scenarios.proj b/eng/testing/performance/android_scenarios.proj index c2fc486f5ec4c..6c884401fb619 100644 --- a/eng/testing/performance/android_scenarios.proj +++ b/eng/testing/performance/android_scenarios.proj @@ -41,6 +41,12 @@ $(Python) test.py sod --scenario-name "%(Identity)" $(Python) post.py + + $(WorkItemDirectory) + cd $(ScenarioDirectory)mauiandroid;copy %HELIX_CORRELATION_PAYLOAD%\MauiBlazorAndroidDefault.apk .; $(Python) pre.py --apk-name MauiBlazorAndroidDefault.apk + $(Python) test.py sod --scenario-name "%(Identity)" + $(Python) post.py + $(WorkItemDirectory) cd $(ScenarioDirectory)mauiandroid;copy %HELIX_CORRELATION_PAYLOAD%\MauiAndroidPodcast.apk .; $(Python) pre.py --apk-name MauiAndroidPodcast.apk @@ -53,6 +59,12 @@ $(Python) test.py sod --scenario-name "%(Identity)" $(Python) post.py + + $(WorkItemDirectory) + cd $(ScenarioDirectory)mauiandroid;copy %HELIX_CORRELATION_PAYLOAD%\MauiBlazorAndroidDefault.apk .; $(Python) pre.py --unzip --apk-name MauiBlazorAndroidDefault.apk + $(Python) test.py sod --scenario-name "%(Identity)" + $(Python) post.py + $(WorkItemDirectory) cd $(ScenarioDirectory)mauiandroid;copy %HELIX_CORRELATION_PAYLOAD%\MauiAndroidPodcast.apk .; $(Python) pre.py --unzip --apk-name MauiAndroidPodcast.apk @@ -77,6 +89,12 @@ $(Python) test.py devicestartup --device-type android --package-path pub\MauiAndroidDefault.apk --package-name com.companyname.mauitesting --scenario-name "%(Identity)" $(Python) post.py + + $(WorkItemDirectory) + echo on;set XHARNESSPATH=$(XharnessPath);cd $(ScenarioDirectory)mauiandroid;copy %HELIX_CORRELATION_PAYLOAD%\MauiBlazorAndroidDefault.apk .;$(Python) pre.py --apk-name MauiBlazorAndroidDefault.apk + $(Python) test.py devicestartup --device-type android --package-path pub\MauiBlazorAndroidDefault.apk --package-name com.companyname.mauiblazortesting --scenario-name "%(Identity)" + $(Python) post.py + $(WorkItemDirectory) echo on;set XHARNESSPATH=$(XharnessPath);cd $(ScenarioDirectory)mauiandroid;copy %HELIX_CORRELATION_PAYLOAD%\MauiAndroidPodcast.apk .;$(Python) pre.py --apk-name MauiAndroidPodcast.apk @@ -89,6 +107,12 @@ $(Python) test.py devicestartup --device-type android --package-path pub\MauiAndroidDefault.apk --package-name com.companyname.mauitesting --scenario-name "%(Identity)" --disable-animations $(Python) post.py + + $(WorkItemDirectory) + echo on;set XHARNESSPATH=$(XharnessPath);cd $(ScenarioDirectory)mauiandroid;copy %HELIX_CORRELATION_PAYLOAD%\MauiBlazorAndroidDefault.apk .;$(Python) pre.py --apk-name MauiBlazorAndroidDefault.apk + $(Python) test.py devicestartup --device-type android --package-path pub\MauiBlazorAndroidDefault.apk --package-name com.companyname.mauiblazortesting --scenario-name "%(Identity)" --disable-animations + $(Python) post.py + $(WorkItemDirectory) echo on;set XHARNESSPATH=$(XharnessPath);cd $(ScenarioDirectory)mauiandroid;copy %HELIX_CORRELATION_PAYLOAD%\MauiAndroidPodcast.apk .;$(Python) pre.py --apk-name MauiAndroidPodcast.apk diff --git a/eng/testing/performance/performance-setup.ps1 b/eng/testing/performance/performance-setup.ps1 index 96ab8f639b63c..82fb7de964d5b 100644 --- a/eng/testing/performance/performance-setup.ps1 +++ b/eng/testing/performance/performance-setup.ps1 @@ -155,8 +155,9 @@ if ($AndroidMono) { mkdir $WorkItemDirectory } - Copy-Item -path "$SourceDirectory\androidHelloWorld\HelloAndroid.apk" $PayloadDirectory -Verbose + Copy-Item -path "$SourceDirectory\androidHelloWorld\HelloAndroid.apk" $PayloadDirectory -Verbose Copy-Item -path "$SourceDirectory\MauiAndroidDefault.apk" $PayloadDirectory -Verbose + Copy-Item -path "$SourceDirectory\MauiBlazorAndroidDefault.apk" $PayloadDirectory -Verbose Copy-Item -path "$SourceDirectory\MauiAndroidPodcast.apk" $PayloadDirectory -Verbose $SetupArguments = $SetupArguments -replace $Architecture, 'arm64' } From 82cc0639007b6556029b151aa9405cd9fd19e5d8 Mon Sep 17 00:00:00 2001 From: Tanay Parikh Date: Tue, 19 Apr 2022 16:22:03 -0700 Subject: [PATCH 02/22] Update android_scenarios.proj --- eng/testing/performance/android_scenarios.proj | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/eng/testing/performance/android_scenarios.proj b/eng/testing/performance/android_scenarios.proj index 6c884401fb619..61ffb932fefa0 100644 --- a/eng/testing/performance/android_scenarios.proj +++ b/eng/testing/performance/android_scenarios.proj @@ -43,7 +43,7 @@ $(WorkItemDirectory) - cd $(ScenarioDirectory)mauiandroid;copy %HELIX_CORRELATION_PAYLOAD%\MauiBlazorAndroidDefault.apk .; $(Python) pre.py --apk-name MauiBlazorAndroidDefault.apk + cd $(ScenarioDirectory)mauiblazorandroid;copy %HELIX_CORRELATION_PAYLOAD%\MauiBlazorAndroidDefault.apk .; $(Python) pre.py --apk-name MauiBlazorAndroidDefault.apk $(Python) test.py sod --scenario-name "%(Identity)" $(Python) post.py @@ -61,7 +61,7 @@ $(WorkItemDirectory) - cd $(ScenarioDirectory)mauiandroid;copy %HELIX_CORRELATION_PAYLOAD%\MauiBlazorAndroidDefault.apk .; $(Python) pre.py --unzip --apk-name MauiBlazorAndroidDefault.apk + cd $(ScenarioDirectory)mauiblazorandroid;copy %HELIX_CORRELATION_PAYLOAD%\MauiBlazorAndroidDefault.apk .; $(Python) pre.py --unzip --apk-name MauiBlazorAndroidDefault.apk $(Python) test.py sod --scenario-name "%(Identity)" $(Python) post.py @@ -91,7 +91,7 @@ $(WorkItemDirectory) - echo on;set XHARNESSPATH=$(XharnessPath);cd $(ScenarioDirectory)mauiandroid;copy %HELIX_CORRELATION_PAYLOAD%\MauiBlazorAndroidDefault.apk .;$(Python) pre.py --apk-name MauiBlazorAndroidDefault.apk + echo on;set XHARNESSPATH=$(XharnessPath);cd $(ScenarioDirectory)mauiblazorandroid;copy %HELIX_CORRELATION_PAYLOAD%\MauiBlazorAndroidDefault.apk .;$(Python) pre.py --apk-name MauiBlazorAndroidDefault.apk $(Python) test.py devicestartup --device-type android --package-path pub\MauiBlazorAndroidDefault.apk --package-name com.companyname.mauiblazortesting --scenario-name "%(Identity)" $(Python) post.py @@ -109,7 +109,7 @@ $(WorkItemDirectory) - echo on;set XHARNESSPATH=$(XharnessPath);cd $(ScenarioDirectory)mauiandroid;copy %HELIX_CORRELATION_PAYLOAD%\MauiBlazorAndroidDefault.apk .;$(Python) pre.py --apk-name MauiBlazorAndroidDefault.apk + echo on;set XHARNESSPATH=$(XharnessPath);cd $(ScenarioDirectory)mauiblazorandroid;copy %HELIX_CORRELATION_PAYLOAD%\MauiBlazorAndroidDefault.apk .;$(Python) pre.py --apk-name MauiBlazorAndroidDefault.apk $(Python) test.py devicestartup --device-type android --package-path pub\MauiBlazorAndroidDefault.apk --package-name com.companyname.mauiblazortesting --scenario-name "%(Identity)" --disable-animations $(Python) post.py From ef1b58ae4d39f93654ab0b45f21cffb56aa573a9 Mon Sep 17 00:00:00 2001 From: Tanay Parikh Date: Wed, 20 Apr 2022 00:39:15 +0000 Subject: [PATCH 03/22] Call ReportFullyDrawn --- .../templates/build-perf-maui-apps.yml | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml index e02f0242ee3a8..d2e4aadf1bea7 100644 --- a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml +++ b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml @@ -212,6 +212,26 @@ steps: # cp $(Build.SourcesDirectory)/src/tests/Common/maui/MauiScenario.props ./Directory.Build.props # cp $(Build.SourcesDirectory)/src/tests/Common/maui/MauiScenario.targets ./Directory.Build.targets cp $(Build.SourcesDirectory)/NuGet.config ./NuGet.config + + echo -e "using Microsoft.AspNetCore.Components; + using Android.App; + + namespace mauiblazortesting.Pages + { + public partial class Index + { + protected override void OnAfterRender(bool firstRender) + { + if (firstRender) + { + var activity = MainActivity.Context as Activity; + activity.ReportFullyDrawn(); + } + } + } + }" > Pages/Index.razor.cs + + sed -i'' -e "s/{/{\npublic static Context Context { get; private set; }\npublic MainActivity() { Context = this; }/g" Platforms/Android/MainActivity.cs displayName: Setup MAUI Blazor Hybrid Project workingDirectory: $(Build.SourcesDirectory) From 504e53fa15f9ccb1065648febf2ab5c50ecb94c9 Mon Sep 17 00:00:00 2001 From: Tanay Parikh Date: Wed, 20 Apr 2022 18:06:09 +0000 Subject: [PATCH 04/22] Add --use-fully-drawn-time --fully-drawn-extra-delay --- eng/testing/performance/android_scenarios.proj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eng/testing/performance/android_scenarios.proj b/eng/testing/performance/android_scenarios.proj index 61ffb932fefa0..0a7961f62cd71 100644 --- a/eng/testing/performance/android_scenarios.proj +++ b/eng/testing/performance/android_scenarios.proj @@ -92,7 +92,7 @@ $(WorkItemDirectory) echo on;set XHARNESSPATH=$(XharnessPath);cd $(ScenarioDirectory)mauiblazorandroid;copy %HELIX_CORRELATION_PAYLOAD%\MauiBlazorAndroidDefault.apk .;$(Python) pre.py --apk-name MauiBlazorAndroidDefault.apk - $(Python) test.py devicestartup --device-type android --package-path pub\MauiBlazorAndroidDefault.apk --package-name com.companyname.mauiblazortesting --scenario-name "%(Identity)" + $(Python) test.py devicestartup --device-type android --package-path pub\MauiBlazorAndroidDefault.apk --package-name com.companyname.mauiblazortesting --scenario-name "%(Identity)" --use-fully-drawn-time --fully-drawn-extra-delay $(Python) post.py @@ -110,7 +110,7 @@ $(WorkItemDirectory) echo on;set XHARNESSPATH=$(XharnessPath);cd $(ScenarioDirectory)mauiblazorandroid;copy %HELIX_CORRELATION_PAYLOAD%\MauiBlazorAndroidDefault.apk .;$(Python) pre.py --apk-name MauiBlazorAndroidDefault.apk - $(Python) test.py devicestartup --device-type android --package-path pub\MauiBlazorAndroidDefault.apk --package-name com.companyname.mauiblazortesting --scenario-name "%(Identity)" --disable-animations + $(Python) test.py devicestartup --device-type android --package-path pub\MauiBlazorAndroidDefault.apk --package-name com.companyname.mauiblazortesting --scenario-name "%(Identity)" --use-fully-drawn-time --fully-drawn-extra-delay --disable-animations $(Python) post.py From f1a7fdd64e2a0dbae18a652a813d3070812f32a6 Mon Sep 17 00:00:00 2001 From: Tanay Parikh Date: Wed, 20 Apr 2022 18:13:07 +0000 Subject: [PATCH 05/22] Add System.Console.WriteLine for non-android platforms --- .../coreclr/templates/build-perf-maui-apps.yml | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml index d2e4aadf1bea7..610ee5b5b34d7 100644 --- a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml +++ b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml @@ -214,7 +214,9 @@ steps: cp $(Build.SourcesDirectory)/NuGet.config ./NuGet.config echo -e "using Microsoft.AspNetCore.Components; - using Android.App; + #if ANDROID + using Android.App; + #endif namespace mauiblazortesting.Pages { @@ -224,8 +226,12 @@ steps: { if (firstRender) { - var activity = MainActivity.Context as Activity; - activity.ReportFullyDrawn(); + #if ANDROID + var activity = MainActivity.Context as Activity; + activity.ReportFullyDrawn(); + #else + System.Console.WriteLine("__MAUI_Blazor_WebView_OnAfterRender__") + #endif } } } From 89f57459adc101dece704d80d81b9bdcf6e0e8cf Mon Sep 17 00:00:00 2001 From: Tanay Parikh Date: Wed, 20 Apr 2022 18:14:50 +0000 Subject: [PATCH 06/22] Add 6 second delay --- eng/testing/performance/android_scenarios.proj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eng/testing/performance/android_scenarios.proj b/eng/testing/performance/android_scenarios.proj index 0a7961f62cd71..f01d7c17c2643 100644 --- a/eng/testing/performance/android_scenarios.proj +++ b/eng/testing/performance/android_scenarios.proj @@ -92,7 +92,7 @@ $(WorkItemDirectory) echo on;set XHARNESSPATH=$(XharnessPath);cd $(ScenarioDirectory)mauiblazorandroid;copy %HELIX_CORRELATION_PAYLOAD%\MauiBlazorAndroidDefault.apk .;$(Python) pre.py --apk-name MauiBlazorAndroidDefault.apk - $(Python) test.py devicestartup --device-type android --package-path pub\MauiBlazorAndroidDefault.apk --package-name com.companyname.mauiblazortesting --scenario-name "%(Identity)" --use-fully-drawn-time --fully-drawn-extra-delay + $(Python) test.py devicestartup --device-type android --package-path pub\MauiBlazorAndroidDefault.apk --package-name com.companyname.mauiblazortesting --scenario-name "%(Identity)" --use-fully-drawn-time --fully-drawn-extra-delay 6 $(Python) post.py @@ -110,7 +110,7 @@ $(WorkItemDirectory) echo on;set XHARNESSPATH=$(XharnessPath);cd $(ScenarioDirectory)mauiblazorandroid;copy %HELIX_CORRELATION_PAYLOAD%\MauiBlazorAndroidDefault.apk .;$(Python) pre.py --apk-name MauiBlazorAndroidDefault.apk - $(Python) test.py devicestartup --device-type android --package-path pub\MauiBlazorAndroidDefault.apk --package-name com.companyname.mauiblazortesting --scenario-name "%(Identity)" --use-fully-drawn-time --fully-drawn-extra-delay --disable-animations + $(Python) test.py devicestartup --device-type android --package-path pub\MauiBlazorAndroidDefault.apk --package-name com.companyname.mauiblazortesting --scenario-name "%(Identity)" --use-fully-drawn-time --fully-drawn-extra-delay 6 --disable-animations $(Python) post.py From 50e837c65640feb8359a6557dcd233a8f6cfcb2f Mon Sep 17 00:00:00 2001 From: Tanay Parikh Date: Wed, 20 Apr 2022 14:58:48 -0700 Subject: [PATCH 07/22] Missing `;` --- eng/pipelines/coreclr/templates/build-perf-maui-apps.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml index 610ee5b5b34d7..804a426ee5f1d 100644 --- a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml +++ b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml @@ -230,7 +230,7 @@ steps: var activity = MainActivity.Context as Activity; activity.ReportFullyDrawn(); #else - System.Console.WriteLine("__MAUI_Blazor_WebView_OnAfterRender__") + System.Console.WriteLine("__MAUI_Blazor_WebView_OnAfterRender__"); #endif } } From 2b952b53b1f8f85554e2790e676655e6cd612d58 Mon Sep 17 00:00:00 2001 From: Tanay Parikh Date: Wed, 20 Apr 2022 17:13:00 -0700 Subject: [PATCH 08/22] Add back Directory.Build.{props, targets} (cherry picked from commit 28d9ef3ab4ac53b947dd435e6494428238b4dea5) --- .../coreclr/templates/build-perf-maui-apps.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml index 804a426ee5f1d..993a0bdbe7ba6 100644 --- a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml +++ b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml @@ -30,7 +30,7 @@ steps: # IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NETCore.App.Runtime.Mono.ios-!(*.symbols).nupkg # IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NETCore.App.Runtime.Mono.iossimulator-!(*.symbols).nupkg # IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NETCore.App.Runtime.Mono.maccatalyst-!(*.symbols).nupkg - + # # Other artifacts to include once they are being built # # EX. IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NETCore.App.Runtime.Mono.maccatalyst-*.nupkg @@ -42,15 +42,15 @@ steps: # cleanTargetFolder: false # targetFolder: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks # flattenFolders: true - + #- script: | # for file in *.nupkg - # do - # mv -v "$file" "${file%.nupkg}.zip" + # do + # mv -v "$file" "${file%.nupkg}.zip" # done # displayName: Change nupkgs to zips # workingDirectory: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks - + ##Unzip the nuget packages to make the actual runtimes accessible #- task: ExtractFiles@1 @@ -209,10 +209,10 @@ steps: - script: | ./dotnet new maui-blazor -n MauiBlazorTesting cd MauiBlazorTesting - # cp $(Build.SourcesDirectory)/src/tests/Common/maui/MauiScenario.props ./Directory.Build.props - # cp $(Build.SourcesDirectory)/src/tests/Common/maui/MauiScenario.targets ./Directory.Build.targets + cp $(Build.SourcesDirectory)/src/tests/Common/maui/MauiScenario.props ./Directory.Build.props + cp $(Build.SourcesDirectory)/src/tests/Common/maui/MauiScenario.targets ./Directory.Build.targets cp $(Build.SourcesDirectory)/NuGet.config ./NuGet.config - + echo -e "using Microsoft.AspNetCore.Components; #if ANDROID using Android.App; From 3405567019b4a683ee26918dfb7f87ba7145c738 Mon Sep 17 00:00:00 2001 From: Tanay Parikh Date: Wed, 20 Apr 2022 18:28:17 -0700 Subject: [PATCH 09/22] Fixes based on CI 1729796 https://dev.azure.com/dnceng/internal/_build/results?buildId=1729796&view=logs&j=4d93e3ae-0b8e-5532-bed2-af5c8a7c58d3&t=b13dec14-3eb2-5f1a-4501-8a9fdadb0e3a (cherry picked from commit d470655576d3abe6a6fec478c221c4d9de698ba9) --- eng/pipelines/coreclr/templates/build-perf-maui-apps.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml index 993a0bdbe7ba6..91eb2225ed426 100644 --- a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml +++ b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml @@ -218,7 +218,7 @@ steps: using Android.App; #endif - namespace mauiblazortesting.Pages + namespace MauiBlazorTesting.Pages { public partial class Index { @@ -237,7 +237,7 @@ steps: } }" > Pages/Index.razor.cs - sed -i'' -e "s/{/{\npublic static Context Context { get; private set; }\npublic MainActivity() { Context = this; }/g" Platforms/Android/MainActivity.cs + sed -i'' -e "s/{/{\npublic static Android.Content.Context Context { get; private set; }\npublic MainActivity() { Context = this; }/g" Platforms/Android/MainActivity.cs displayName: Setup MAUI Blazor Hybrid Project workingDirectory: $(Build.SourcesDirectory) From 54fa30d876e2be0fef82883033d8fb027de2a150 Mon Sep 17 00:00:00 2001 From: Tanay Parikh Date: Wed, 20 Apr 2022 16:29:53 -0700 Subject: [PATCH 10/22] [REVERT THIS] Temporarily skip other jobs (cherry picked from commit df51582df9e7bb9d1ca82759d664823c76823c29) --- eng/pipelines/coreclr/perf.yml | 512 ++++++++++++++++----------------- 1 file changed, 256 insertions(+), 256 deletions(-) diff --git a/eng/pipelines/coreclr/perf.yml b/eng/pipelines/coreclr/perf.yml index 4e6b3ccbc8997..66443ebe809c8 100644 --- a/eng/pipelines/coreclr/perf.yml +++ b/eng/pipelines/coreclr/perf.yml @@ -47,7 +47,7 @@ schedules: jobs: - ${{ if and(ne(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'Schedule')) }}: - + # build mono - template: /eng/pipelines/common/platform-matrix.yml parameters: @@ -126,56 +126,56 @@ jobs: - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'Schedule')) }}: - # build coreclr and libraries - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml - buildConfig: release - platforms: - - Linux_x64 - - windows_x64 - - windows_x86 - - Linux_musl_x64 - jobParameters: - testGroup: perf + # # build coreclr and libraries + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml + # buildConfig: release + # platforms: + # - Linux_x64 + # - windows_x64 + # - windows_x86 + # - Linux_musl_x64 + # jobParameters: + # testGroup: perf - # build mono on wasm - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: Release - runtimeFlavor: mono - platforms: - - Browser_wasm - jobParameters: - buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - nameSuffix: wasm - isOfficialBuild: false - extraStepsTemplate: /eng/pipelines/coreclr/perf-wasm-prepare-artifacts-steps.yml - extraStepsParameters: - configForBuild: Release + # # build mono on wasm + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # buildConfig: Release + # runtimeFlavor: mono + # platforms: + # - Browser_wasm + # jobParameters: + # buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + # nameSuffix: wasm + # isOfficialBuild: false + # extraStepsTemplate: /eng/pipelines/coreclr/perf-wasm-prepare-artifacts-steps.yml + # extraStepsParameters: + # configForBuild: Release - # build mono for AOT - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: release - runtimeFlavor: mono - platforms: - - Linux_x64 - jobParameters: - buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - nameSuffix: AOT - isOfficialBuild: false - extraStepsTemplate: /eng/pipelines/common/upload-artifact-step.yml - extraStepsParameters: - rootFolder: '$(Build.SourcesDirectory)/artifacts/' - includeRootFolder: true - displayName: AOT Mono Artifacts - artifactName: LinuxMonoAOTx64 - archiveExtension: '.tar.gz' - archiveType: tar - tarCompression: gz + # # build mono for AOT + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # buildConfig: release + # runtimeFlavor: mono + # platforms: + # - Linux_x64 + # jobParameters: + # buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + # nameSuffix: AOT + # isOfficialBuild: false + # extraStepsTemplate: /eng/pipelines/common/upload-artifact-step.yml + # extraStepsParameters: + # rootFolder: '$(Build.SourcesDirectory)/artifacts/' + # includeRootFolder: true + # displayName: AOT Mono Artifacts + # artifactName: LinuxMonoAOTx64 + # archiveExtension: '.tar.gz' + # archiveType: tar + # tarCompression: gz # build mono Android scenarios - template: /eng/pipelines/common/platform-matrix.yml @@ -198,7 +198,7 @@ jobs: archiveExtension: '.tar.gz' archiveType: tar tarCompression: gz - + # build mono iOS scenarios - template: /eng/pipelines/common/platform-matrix.yml parameters: @@ -287,222 +287,222 @@ jobs: logicalmachine: 'perfpixel4a' iosLlvmBuild: True - # run mono microbenchmarks perf job - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - buildConfig: release - runtimeFlavor: mono - platforms: - - Linux_x64 - jobParameters: - testGroup: perf - liveLibrariesBuildConfig: Release - runtimeType: mono - projectFile: microbenchmarks.proj - runKind: micro_mono - runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml - logicalmachine: 'perftiger' + # # run mono microbenchmarks perf job + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + # buildConfig: release + # runtimeFlavor: mono + # platforms: + # - Linux_x64 + # jobParameters: + # testGroup: perf + # liveLibrariesBuildConfig: Release + # runtimeType: mono + # projectFile: microbenchmarks.proj + # runKind: micro_mono + # runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml + # logicalmachine: 'perftiger' - # run mono interpreter perf job - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - buildConfig: release - runtimeFlavor: mono - platforms: - - Linux_x64 - jobParameters: - testGroup: perf - liveLibrariesBuildConfig: Release - runtimeType: mono - codeGenType: 'Interpreter' - projectFile: microbenchmarks.proj - runKind: micro_mono - runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml - logicalmachine: 'perftiger' + # # run mono interpreter perf job + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + # buildConfig: release + # runtimeFlavor: mono + # platforms: + # - Linux_x64 + # jobParameters: + # testGroup: perf + # liveLibrariesBuildConfig: Release + # runtimeType: mono + # codeGenType: 'Interpreter' + # projectFile: microbenchmarks.proj + # runKind: micro_mono + # runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml + # logicalmachine: 'perftiger' - # run mono wasm interpreter (default) microbenchmarks perf job - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml # NOTE: should we move this file out of coreclr tempelates because it contains mono jobs? - buildConfig: release - runtimeFlavor: wasm - platforms: - - Linux_x64 - jobParameters: - testGroup: perf - liveLibrariesBuildConfig: Release - skipLiveLibrariesDownload: true - runtimeType: wasm - codeGenType: 'wasm' - projectFile: microbenchmarks.proj - runKind: micro - runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml - logicalmachine: 'perftiger' - javascriptEngine: 'v8' - collectHelixLogsScript: ${{ variables['_wasmCollectHelixLogsScript'] }} + # # run mono wasm interpreter (default) microbenchmarks perf job + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml # NOTE: should we move this file out of coreclr tempelates because it contains mono jobs? + # buildConfig: release + # runtimeFlavor: wasm + # platforms: + # - Linux_x64 + # jobParameters: + # testGroup: perf + # liveLibrariesBuildConfig: Release + # skipLiveLibrariesDownload: true + # runtimeType: wasm + # codeGenType: 'wasm' + # projectFile: microbenchmarks.proj + # runKind: micro + # runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml + # logicalmachine: 'perftiger' + # javascriptEngine: 'v8' + # collectHelixLogsScript: ${{ variables['_wasmCollectHelixLogsScript'] }} - #run mono wasm aot microbenchmarks perf job - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobtemplate: /eng/pipelines/coreclr/templates/perf-job.yml # note: should we move this file out of coreclr tempelates because it contains mono jobs? - buildconfig: release - runtimeflavor: wasm - platforms: - - linux_x64 - jobparameters: - testgroup: perf - livelibrariesbuildconfig: Release - skipLiveLibrariesDownload: true - runtimetype: wasm - codegentype: 'aot' - projectfile: microbenchmarks.proj - runkind: micro - runjobtemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml - logicalmachine: 'perftiger' - javascriptEngine: 'v8' - collectHelixLogsScript: ${{ variables['_wasmCollectHelixLogsScript'] }} + # #run mono wasm aot microbenchmarks perf job + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobtemplate: /eng/pipelines/coreclr/templates/perf-job.yml # note: should we move this file out of coreclr tempelates because it contains mono jobs? + # buildconfig: release + # runtimeflavor: wasm + # platforms: + # - linux_x64 + # jobparameters: + # testgroup: perf + # livelibrariesbuildconfig: Release + # skipLiveLibrariesDownload: true + # runtimetype: wasm + # codegentype: 'aot' + # projectfile: microbenchmarks.proj + # runkind: micro + # runjobtemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml + # logicalmachine: 'perftiger' + # javascriptEngine: 'v8' + # collectHelixLogsScript: ${{ variables['_wasmCollectHelixLogsScript'] }} - # run mono aot microbenchmarks perf job - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml # NOTE: should we move this file out of coreclr tempelates because it contains mono jobs? - buildConfig: release - runtimeFlavor: aot - platforms: - - Linux_x64 - jobParameters: - testGroup: perf - liveLibrariesBuildConfig: Release - runtimeType: mono - codeGenType: 'AOT' - projectFile: microbenchmarks.proj - runKind: micro_mono - runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml - logicalmachine: 'perftiger' + # # run mono aot microbenchmarks perf job + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml # NOTE: should we move this file out of coreclr tempelates because it contains mono jobs? + # buildConfig: release + # runtimeFlavor: aot + # platforms: + # - Linux_x64 + # jobParameters: + # testGroup: perf + # liveLibrariesBuildConfig: Release + # runtimeType: mono + # codeGenType: 'AOT' + # projectFile: microbenchmarks.proj + # runKind: micro_mono + # runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml + # logicalmachine: 'perftiger' - # run coreclr perftiger microbenchmarks perf job - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - buildConfig: release - runtimeFlavor: coreclr - platforms: - - Linux_x64 - - windows_x64 - - windows_x86 - - Linux_musl_x64 - jobParameters: - testGroup: perf - liveLibrariesBuildConfig: Release - projectFile: microbenchmarks.proj - runKind: micro - runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml - logicalmachine: 'perftiger' + # # run coreclr perftiger microbenchmarks perf job + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + # buildConfig: release + # runtimeFlavor: coreclr + # platforms: + # - Linux_x64 + # - windows_x64 + # - windows_x86 + # - Linux_musl_x64 + # jobParameters: + # testGroup: perf + # liveLibrariesBuildConfig: Release + # projectFile: microbenchmarks.proj + # runKind: micro + # runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml + # logicalmachine: 'perftiger' - # run coreclr perftiger microbenchmarks pgo perf jobs - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - buildConfig: release - runtimeFlavor: coreclr - platforms: - - windows_x64 - jobParameters: - testGroup: perf - liveLibrariesBuildConfig: Release - projectFile: microbenchmarks.proj - runKind: micro - runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml - logicalmachine: 'perftiger' - pgoRunType: -NoPgo + # # run coreclr perftiger microbenchmarks pgo perf jobs + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + # buildConfig: release + # runtimeFlavor: coreclr + # platforms: + # - windows_x64 + # jobParameters: + # testGroup: perf + # liveLibrariesBuildConfig: Release + # projectFile: microbenchmarks.proj + # runKind: micro + # runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml + # logicalmachine: 'perftiger' + # pgoRunType: -NoPgo - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - buildConfig: release - runtimeFlavor: coreclr - platforms: - - windows_x64 - jobParameters: - testGroup: perf - liveLibrariesBuildConfig: Release - projectFile: microbenchmarks.proj - runKind: micro - runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml - logicalmachine: 'perftiger' - pgoRunType: -DynamicPgo + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + # buildConfig: release + # runtimeFlavor: coreclr + # platforms: + # - windows_x64 + # jobParameters: + # testGroup: perf + # liveLibrariesBuildConfig: Release + # projectFile: microbenchmarks.proj + # runKind: micro + # runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml + # logicalmachine: 'perftiger' + # pgoRunType: -DynamicPgo - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - buildConfig: release - runtimeFlavor: coreclr - platforms: - - windows_x64 - jobParameters: - testGroup: perf - liveLibrariesBuildConfig: Release - projectFile: microbenchmarks.proj - runKind: micro - runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml - logicalmachine: 'perftiger' - pgoRunType: -FullPgo + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + # buildConfig: release + # runtimeFlavor: coreclr + # platforms: + # - windows_x64 + # jobParameters: + # testGroup: perf + # liveLibrariesBuildConfig: Release + # projectFile: microbenchmarks.proj + # runKind: micro + # runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml + # logicalmachine: 'perftiger' + # pgoRunType: -FullPgo - # run coreclr perfowl microbenchmarks perf job - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - buildConfig: release - runtimeFlavor: coreclr - platforms: - - Linux_x64 - - windows_x64 - jobParameters: - testGroup: perf - liveLibrariesBuildConfig: Release - projectFile: microbenchmarks.proj - runKind: micro - runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml - logicalmachine: 'perfowl' + # # run coreclr perfowl microbenchmarks perf job + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + # buildConfig: release + # runtimeFlavor: coreclr + # platforms: + # - Linux_x64 + # - windows_x64 + # jobParameters: + # testGroup: perf + # liveLibrariesBuildConfig: Release + # projectFile: microbenchmarks.proj + # runKind: micro + # runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml + # logicalmachine: 'perfowl' - # run coreclr crossgen perf job - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - buildConfig: release - runtimeFlavor: coreclr - platforms: - - Linux_x64 - - windows_x64 - - windows_x86 - jobParameters: - testGroup: perf - liveLibrariesBuildConfig: Release - projectFile: crossgen_perf.proj - runKind: crossgen_scenarios - runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml - logicalmachine: 'perftiger' + # # run coreclr crossgen perf job + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + # buildConfig: release + # runtimeFlavor: coreclr + # platforms: + # - Linux_x64 + # - windows_x64 + # - windows_x86 + # jobParameters: + # testGroup: perf + # liveLibrariesBuildConfig: Release + # projectFile: crossgen_perf.proj + # runKind: crossgen_scenarios + # runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml + # logicalmachine: 'perftiger' - # run mono wasm blazor perf job - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - buildConfig: release - runtimeFlavor: wasm - platforms: - - Linux_x64 - jobParameters: - testGroup: perf - liveLibrariesBuildConfig: Release - skipLiveLibrariesDownload: true - runtimeType: wasm - projectFile: blazor_perf.proj - runKind: blazor_scenarios - runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml - additionalSetupParameters: '--latestdotnet' - logicalmachine: 'perftiger' + # # run mono wasm blazor perf job + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + # buildConfig: release + # runtimeFlavor: wasm + # platforms: + # - Linux_x64 + # jobParameters: + # testGroup: perf + # liveLibrariesBuildConfig: Release + # skipLiveLibrariesDownload: true + # runtimeType: wasm + # projectFile: blazor_perf.proj + # runKind: blazor_scenarios + # runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml + # additionalSetupParameters: '--latestdotnet' + # logicalmachine: 'perftiger' # Uncomment to reenable package replacement ## build maui runtime packs @@ -527,7 +527,7 @@ jobs: # extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml # extraStepsParameters: # name: MonoRuntimePacks - + # build maui app - template: /eng/pipelines/common/platform-matrix.yml parameters: From 65771a79e9af93b93a7afb044e54a16ee9bd5b81 Mon Sep 17 00:00:00 2001 From: Tanay Parikh Date: Wed, 20 Apr 2022 21:47:12 +0000 Subject: [PATCH 11/22] [MAUI][Blazor][PERF] Add IPA file usage for iOS/MacCatalyst Maui Blazor SOD (cherry picked from commit b1aaaf222e302c19ad6760eaa7cdb1f0e7ed364d) --- .../templates/build-perf-maui-apps.yml | 62 +++++++++++++++++-- eng/pipelines/coreclr/templates/perf-job.yml | 14 +++++ eng/testing/performance/ios_scenarios.proj | 18 ++++++ eng/testing/performance/performance-setup.ps1 | 2 + 4 files changed, 92 insertions(+), 4 deletions(-) diff --git a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml index 13646cf654d21..3452299b09f7f 100644 --- a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml +++ b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml @@ -250,6 +250,26 @@ steps: displayName: Build MAUI Blazor Android workingDirectory: $(Build.SourcesDirectory)/MauiBlazorTesting + - script: | + chmod -R a+r . + # remove net6.0-maccatalyst to work around https://github.com/dotnet/sdk/issues/21877 + cp MauiBlazorTesting.csproj MauiBlazorTesting.csproj.bak + sed -i'' -e 's/net6.0-ios;net6.0-maccatalyst/net6.0-ios/g' MauiBlazorTesting.csproj + + ../dotnet publish -bl:MauiBlazoriOS.binlog -f net6.0-ios --self-contained -r ios-arm64 -c Release /p:_RequireCodeSigning=false + mv ./bin/Release/net6.0-ios/ios-arm64/publish/MauiBlazorTesting.ipa ./MauiBlazoriOSDefault.ipa + + cp MauiBlazorTesting.csproj.bak MauiBlazorTesting.csproj + displayName: Build MAUI Blazor iOS + workingDirectory: $(Build.SourcesDirectory)/MauiBlazorTesting + + - script: | + chmod -R a+r . + ../dotnet publish -bl:MauiBlazorMacCatalyst.binlog -f net6.0-maccatalyst -c Release + mv ./bin/Release/net6.0-maccatalyst/maccatalyst-x64/MauiBlazorTesting.app ./MauiBlazorMacCatalystDefault.app + displayName: Build MAUI Blazor MacCatalyst + workingDirectory: $(Build.SourcesDirectory)/MauiBlazorTesting + - task: PublishBuildArtifacts@1 displayName: 'Publish MauiAndroid binlog' condition: always() @@ -257,6 +277,20 @@ steps: pathtoPublish: $(Build.SourcesDirectory)/MauiTesting/MauiAndroid.binlog artifactName: ${{ parameters.artifactName }} + - task: PublishBuildArtifacts@1 + displayName: 'Publish MauiiOS binlog' + condition: always() + inputs: + pathtoPublish: $(Build.SourcesDirectory)/MauiTesting/MauiiOS.binlog + artifactName: ${{ parameters.artifactName }} + + - task: PublishBuildArtifacts@1 + displayName: 'Publish MauiMacCatalyst binlog' + condition: always() + inputs: + pathtoPublish: $(Build.SourcesDirectory)/MauiTesting/MauiMacCatalyst.binlog + artifactName: ${{ parameters.artifactName }} + - task: PublishBuildArtifacts@1 displayName: 'Publish MauiBlazorAndroid binlog' condition: always() @@ -265,17 +299,17 @@ steps: artifactName: ${{ parameters.artifactName }} - task: PublishBuildArtifacts@1 - displayName: 'Publish MauiiOS binlog' + displayName: 'Publish MauiBlazoriOS binlog' condition: always() inputs: - pathtoPublish: $(Build.SourcesDirectory)/MauiTesting/MauiiOS.binlog + pathtoPublish: $(Build.SourcesDirectory)/MauiBlazorTesting/MauiBlazoriOS.binlog artifactName: ${{ parameters.artifactName }} - task: PublishBuildArtifacts@1 - displayName: 'Publish MauiMacCatalyst binlog' + displayName: 'Publish MauiBlazorMacCatalyst binlog' condition: always() inputs: - pathtoPublish: $(Build.SourcesDirectory)/MauiTesting/MauiMacCatalyst.binlog + pathtoPublish: $(Build.SourcesDirectory)/MauiBlazorTesting/MauiBlazorMacCatalyst.binlog artifactName: ${{ parameters.artifactName }} - task: PublishBuildArtifacts@1 @@ -325,6 +359,16 @@ steps: archiveType: tar tarCompression: gz + - template: /eng/pipelines/common/upload-artifact-step.yml + parameters: + rootFolder: $(Build.SourcesDirectory)/MauiBlazorpTesting/MauiBlazoriOSDefault.ipa + includeRootFolder: true + displayName: Maui Blazor iOS IPA + artifactName: MauiBlazoriOSDefaultIPA + archiveExtension: '.tar.gz' + archiveType: tar + tarCompression: gz + - template: /eng/pipelines/common/upload-artifact-step.yml parameters: rootFolder: $(Build.SourcesDirectory)/dotnet-podcasts/src/Mobile/MauiiOSPodcast.ipa @@ -345,6 +389,16 @@ steps: archiveType: tar tarCompression: gz + - template: /eng/pipelines/common/upload-artifact-step.yml + parameters: + rootFolder: $(Build.SourcesDirectory)/MauiBlazorTesting/MauiBlazorMacCatalystDefault.app + includeRootFolder: true + displayName: Maui Blazor MacCatalyst App + artifactName: MauiBlazorMacCatalystDefault + archiveExtension: '.tar.gz' + archiveType: tar + tarCompression: gz + - script: rm -r -f ./bin workingDirectory: $(Build.SourcesDirectory)/MauiTesting displayName: Clean MauiTesting bin directory diff --git a/eng/pipelines/coreclr/templates/perf-job.yml b/eng/pipelines/coreclr/templates/perf-job.yml index 5c0ab4c16e210..279ae094882a0 100644 --- a/eng/pipelines/coreclr/templates/perf-job.yml +++ b/eng/pipelines/coreclr/templates/perf-job.yml @@ -237,6 +237,20 @@ jobs: artifactFileName: 'MauiiOSPodcastIPA.tar.gz' artifactName: 'MauiiOSPodcastIPA' displayName: 'Maui iOS Podcast IPA' + - template: /eng/pipelines/common/download-artifact-step.yml + parameters: + unpackFolder: $(Build.SourcesDirectory)/MauiBlazoriOSDefaultIPA + cleanUnpackFolder: false + artifactFileName: 'MauiBlazoriOSDefaultIPA.tar.gz' + artifactName: 'MauiBlazoriOSDefaultIPA' + displayName: 'Maui Blazor iOS IPA' + - template: /eng/pipelines/common/download-artifact-step.yml + parameters: + unpackFolder: $(Build.SourcesDirectory)/MauiBlazorMacCatalystDefault + cleanUnpackFolder: false + artifactFileName: 'MauiBlazorMacCatalystDefault.tar.gz' + artifactName: 'MauiBlazorMacCatalystDefault' + displayName: 'Maui Blazor MacCatalyst App' # Create Core_Root - script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) $(buildConfig) $(archType) generatelayoutonly $(librariesOverrideArg) diff --git a/eng/testing/performance/ios_scenarios.proj b/eng/testing/performance/ios_scenarios.proj index c1a3af2357776..0d5add3eab705 100644 --- a/eng/testing/performance/ios_scenarios.proj +++ b/eng/testing/performance/ios_scenarios.proj @@ -52,6 +52,24 @@ $(Python) test.py sod --scenario-name "%(Identity)" $(Python) post.py + + $(WorkItemDirectory) + cd $(ScenarioDirectory)mauiblazorios;copy %HELIX_CORRELATION_PAYLOAD%\MauiBlazoriOSDefaultIPA\MauiBlazoriOSDefault.ipa .;$(Python) pre.py --name MauiBlazoriOSDefault.ipa + $(Python) test.py sod --scenario-name "%(Identity)" + $(Python) post.py + + + $(WorkItemDirectory) + cd $(ScenarioDirectory)mauiblazorios;copy %HELIX_CORRELATION_PAYLOAD%\MauiBlazoriOSDefaultIPA\MauiBlazoriOSDefault.ipa .;$(Python) pre.py --unzip --name MauiBlazoriOSDefault.ipa + $(Python) test.py sod --scenario-name "%(Identity)" + $(Python) post.py + + + $(WorkItemDirectory) + cd $(ScenarioDirectory)mauiblazorios;xcopy %HELIX_CORRELATION_PAYLOAD%\MauiBlazorMacCatalystDefault .\app/e/i;$(Python) pre.py --name app + $(Python) test.py sod --scenario-name "%(Identity)" + $(Python) post.py + $(WorkItemDirectory) cd $(ScenarioDirectory)mauiios;cp $HELIX_CORRELATION_PAYLOAD/MauiiOSPodcast.ipa .;$(Python) pre.py --name MauiiOSPodcast.ipa diff --git a/eng/testing/performance/performance-setup.ps1 b/eng/testing/performance/performance-setup.ps1 index db5f64cce1305..5f98261c0ff1f 100644 --- a/eng/testing/performance/performance-setup.ps1 +++ b/eng/testing/performance/performance-setup.ps1 @@ -174,6 +174,8 @@ if ($iOSMono) { Copy-Item -path "$SourceDirectory\iosHelloWorld\nollvm" $PayloadDirectory\iosHelloWorld\nollvm -Recurse Copy-Item -path "$SourceDirectory\MauiiOSDefaultIPA" $PayloadDirectory\MauiiOSDefaultIPA -Recurse Copy-Item -path "$SourceDirectory\MauiMacCatalystDefault\MauiMacCatalystDefault.app" $PayloadDirectory\MauiMacCatalystDefault -Recurse + Copy-Item -path "$SourceDirectory\MauiBlazoriOSDefaultIPA" $PayloadDirectory\MauiBlazoriOSDefaultIPA -Recurse + Copy-Item -path "$SourceDirectory\MauiBlazorMacCatalystDefault\MauiBlazorMacCatalystDefault.app" $PayloadDirectory\MauiBlazorMacCatalystDefault -Recurse Copy-Item -path "$SourceDirectory\MauiiOSPodcastIPA" $PayloadDirectory\MauiiOSPodcastIPA -Recurse } From e20e1f33286ce3b662fea2d997e9411e4ea09459 Mon Sep 17 00:00:00 2001 From: Tanay Parikh Date: Thu, 28 Apr 2022 06:58:40 -0700 Subject: [PATCH 12/22] Remove / restore nuget.config --- .../coreclr/templates/build-perf-maui-apps.yml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml index 3452299b09f7f..a8afe6b8724c7 100644 --- a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml +++ b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml @@ -256,16 +256,30 @@ steps: cp MauiBlazorTesting.csproj MauiBlazorTesting.csproj.bak sed -i'' -e 's/net6.0-ios;net6.0-maccatalyst/net6.0-ios/g' MauiBlazorTesting.csproj + # NuGet.config file cannot be in the build directory currently due to https://github.com/dotnet/aspnetcore/issues/41397 + rm NuGet.config + ../dotnet publish -bl:MauiBlazoriOS.binlog -f net6.0-ios --self-contained -r ios-arm64 -c Release /p:_RequireCodeSigning=false mv ./bin/Release/net6.0-ios/ios-arm64/publish/MauiBlazorTesting.ipa ./MauiBlazoriOSDefault.ipa + # Restore NuGet.config + cp $(Build.SourcesDirectory)/NuGet.config ./NuGet.config + cp MauiBlazorTesting.csproj.bak MauiBlazorTesting.csproj displayName: Build MAUI Blazor iOS workingDirectory: $(Build.SourcesDirectory)/MauiBlazorTesting - script: | chmod -R a+r . + + # NuGet.config file cannot be in the build directory currently due to https://github.com/dotnet/aspnetcore/issues/41397 + rm NuGet.config + ../dotnet publish -bl:MauiBlazorMacCatalyst.binlog -f net6.0-maccatalyst -c Release + + # Restore NuGet.config + cp $(Build.SourcesDirectory)/NuGet.config ./NuGet.config + mv ./bin/Release/net6.0-maccatalyst/maccatalyst-x64/MauiBlazorTesting.app ./MauiBlazorMacCatalystDefault.app displayName: Build MAUI Blazor MacCatalyst workingDirectory: $(Build.SourcesDirectory)/MauiBlazorTesting From bb58b6409ccdb3fb2f539c7b7a5964868b6b2dfd Mon Sep 17 00:00:00 2001 From: Tanay Parikh Date: Thu, 28 Apr 2022 08:03:39 -0700 Subject: [PATCH 13/22] Escape quotes --- eng/pipelines/coreclr/templates/build-perf-maui-apps.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml index a8afe6b8724c7..9e8f3f41d107e 100644 --- a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml +++ b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml @@ -230,7 +230,7 @@ steps: var activity = MainActivity.Context as Activity; activity.ReportFullyDrawn(); #else - System.Console.WriteLine("__MAUI_Blazor_WebView_OnAfterRender__"); + System.Console.WriteLine(\"__MAUI_Blazor_WebView_OnAfterRender__\"); #endif } } From d07b1ee94e47e5f985fbf7cb34ea9796ee1776a5 Mon Sep 17 00:00:00 2001 From: Tanay Parikh Date: Thu, 28 Apr 2022 09:57:50 -0700 Subject: [PATCH 14/22] Fix typo --- eng/pipelines/coreclr/templates/build-perf-maui-apps.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml index 9e8f3f41d107e..88795f4f9c062 100644 --- a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml +++ b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml @@ -375,7 +375,7 @@ steps: - template: /eng/pipelines/common/upload-artifact-step.yml parameters: - rootFolder: $(Build.SourcesDirectory)/MauiBlazorpTesting/MauiBlazoriOSDefault.ipa + rootFolder: $(Build.SourcesDirectory)/MauiBlazorTesting/MauiBlazoriOSDefault.ipa includeRootFolder: true displayName: Maui Blazor iOS IPA artifactName: MauiBlazoriOSDefaultIPA From d3149d4748b44e8b6decd0773fcff82865442ea1 Mon Sep 17 00:00:00 2001 From: Tanay Parikh Date: Thu, 28 Apr 2022 13:27:18 -0700 Subject: [PATCH 15/22] Replicate changes from https://github.com/dotnet/runtime/pull/67670 --- .../templates/build-perf-maui-apps.yml | 2 +- eng/testing/performance/ios_scenarios.proj | 76 ++++++++++++------- eng/testing/performance/performance-setup.sh | 9 +++ 3 files changed, 60 insertions(+), 27 deletions(-) diff --git a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml index 88795f4f9c062..4f126e08e4623 100644 --- a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml +++ b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml @@ -259,7 +259,7 @@ steps: # NuGet.config file cannot be in the build directory currently due to https://github.com/dotnet/aspnetcore/issues/41397 rm NuGet.config - ../dotnet publish -bl:MauiBlazoriOS.binlog -f net6.0-ios --self-contained -r ios-arm64 -c Release /p:_RequireCodeSigning=false + ../dotnet publish -bl:MauiBlazoriOS.binlog -f net6.0-ios --self-contained -r ios-arm64 -c Release /p:_RequireCodeSigning=false /p:ApplicationId=net.dot.mauiblazortesting mv ./bin/Release/net6.0-ios/ios-arm64/publish/MauiBlazorTesting.ipa ./MauiBlazoriOSDefault.ipa # Restore NuGet.config diff --git a/eng/testing/performance/ios_scenarios.proj b/eng/testing/performance/ios_scenarios.proj index 0d5add3eab705..8ba3d83d61ae4 100644 --- a/eng/testing/performance/ios_scenarios.proj +++ b/eng/testing/performance/ios_scenarios.proj @@ -18,10 +18,10 @@ nollvm llvm - + %HELIX_CORRELATION_PAYLOAD%\performance\src\scenarios\ - + $HELIX_CORRELATION_PAYLOAD/performance/src/scenarios/ @@ -29,10 +29,10 @@ - $(WorkItemDirectory) - cd $(ScenarioDirectory)helloios;cp -rf $HELIX_CORRELATION_PAYLOAD/iosHelloWorld/$(LlvmPath) ./app;$(Python) pre.py --name app - $(Python) test.py sod --scenario-name "%(Identity)" - $(Python) post.py + $(WorkItemDirectory) + cd $(ScenarioDirectory)helloios;cp -rf $HELIX_CORRELATION_PAYLOAD/iosHelloWorld/$(LlvmPath) ./app;$(Python) pre.py --name app + $(Python) test.py sod --scenario-name "%(Identity)" + $(Python) post.py $(WorkItemDirectory) @@ -54,19 +54,19 @@ $(WorkItemDirectory) - cd $(ScenarioDirectory)mauiblazorios;copy %HELIX_CORRELATION_PAYLOAD%\MauiBlazoriOSDefaultIPA\MauiBlazoriOSDefault.ipa .;$(Python) pre.py --name MauiBlazoriOSDefault.ipa + cd $(ScenarioDirectory)mauiblazorios;cp $HELIX_CORRELATION_PAYLOAD/MauiBlazoriOSDefault.ipa .;$(Python) pre.py --name MauiBlazoriOSDefault.ipa $(Python) test.py sod --scenario-name "%(Identity)" $(Python) post.py $(WorkItemDirectory) - cd $(ScenarioDirectory)mauiblazorios;copy %HELIX_CORRELATION_PAYLOAD%\MauiBlazoriOSDefaultIPA\MauiBlazoriOSDefault.ipa .;$(Python) pre.py --unzip --name MauiBlazoriOSDefault.ipa + cd $(ScenarioDirectory)mauiblazorios;cp $HELIX_CORRELATION_PAYLOAD/MauiBlazoriOSDefault.ipa .;$(Python) pre.py --unzip --name MauiBlazoriOSDefault.ipa $(Python) test.py sod --scenario-name "%(Identity)" $(Python) post.py $(WorkItemDirectory) - cd $(ScenarioDirectory)mauiblazorios;xcopy %HELIX_CORRELATION_PAYLOAD%\MauiBlazorMacCatalystDefault .\app/e/i;$(Python) pre.py --name app + cd $(ScenarioDirectory)mauiblazorios;cp -rf $HELIX_CORRELATION_PAYLOAD/MauiBlazorMacCatalystDefault ./app;$(Python) pre.py --name app $(Python) test.py sod --scenario-name "%(Identity)" $(Python) post.py @@ -82,12 +82,12 @@ $(Python) test.py sod --scenario-name "%(Identity)" $(Python) post.py - - $(WorkItemDirectory).zip - 00:05:00 - ios-device - - + $(WorkItemDirectory).zip + 00:05:00 + ios-device + + + + + + $(WorkItemDirectory).zip + 00:05:00 + ios-device + + - - + + - $(WorkItemDirectory).zip - 00:05:00 - ios-device - - $(WorkItemDirectory).zip + 00:05:00 + ios-device + + - - + + diff --git a/eng/testing/performance/performance-setup.sh b/eng/testing/performance/performance-setup.sh index 9b0905bd7204d..06469192a8415 100755 --- a/eng/testing/performance/performance-setup.sh +++ b/eng/testing/performance/performance-setup.sh @@ -357,12 +357,21 @@ if [[ "$iosmono" == "true" ]]; then # NoLLVM Mono .app, Maui iOS IPA, Maui Maccatalyst, Maui iOS Podcast IPA mkdir -p $payload_directory/iosHelloWorld/nollvm && cp -rv $source_directory/iosHelloWorld/nollvm $payload_directory/iosHelloWorld/nollvm mkdir -p $payload_directory/MauiMacCatalystDefault && cp -rv $source_directory/MauiMacCatalystDefault/MauiMacCatalystDefault.app $payload_directory/MauiMacCatalystDefault + mkdir -p $payload_directory/MauiBlazorMacCatalystDefault && cp -rv $source_directory/MauiBlazorMacCatalystDefault/MauiBlazorMacCatalystDefault.app $payload_directory/MauiBlazorMacCatalystDefault cp -v $source_directory/MauiiOSDefaultIPA/MauiiOSDefault.ipa $payload_directory/MauiiOSDefault.ipa + cp -v $source_directory/MauiBlazoriOSDefaultIPA/MauiBlazoriOSDefault.ipa $payload_directory/MauiBlazoriOSDefault.ipa cp -v $source_directory/MauiiOSPodcastIPA/MauiiOSPodcast.ipa $payload_directory/MauiiOSPodcast.ipa + # Get the .app so we can resign in the xharness item cp -v $source_directory/MauiiOSDefaultIPA/MauiiOSDefault.ipa $source_directory/MauiiOSDefaultIPA/MauiiOSDefault.zip unzip -d $source_directory/MauiiOSDefaultIPA $source_directory/MauiiOSDefaultIPA/MauiiOSDefault.zip mv $source_directory/MauiiOSDefaultIPA/Payload/MauiTesting.app $payload_directory/ + + # Get the .app so we can resign in the xharness item for Maui Blazor + cp -v $source_directory/MauiBlazoriOSDefaultIPA/MauiBlazoriOSDefault.ipa $source_directory/MauiBlazoriOSDefaultIPA/MauiBlazoriOSDefault.zip + unzip -d $source_directory/MauiBlazoriOSDefaultIPA $source_directory/MauiBlazoriOSDefaultIPA/MauiBlazoriOSDefault.zip + mv $source_directory/MauiBlazoriOSDefaultIPA/Payload/MauiBlazorTesting.app $payload_directory/ + # Get the .app so we can resign in the xharness item for podcast cp -v $source_directory/MauiiOSPodcastIPA/MauiiOSPodcast.ipa $source_directory/MauiiOSPodcastIPA/MauiiOSPodcast.zip unzip -d $source_directory/MauiiOSPodcastIPA $source_directory/MauiiOSPodcastIPA/MauiiOSPodcast.zip From 5be410ec6e10821f3c26328b4fe69d16c6a1fe5a Mon Sep 17 00:00:00 2001 From: Tanay Parikh Date: Fri, 29 Apr 2022 15:55:19 -0700 Subject: [PATCH 16/22] use-fully-drawn-time --- eng/testing/performance/ios_scenarios.proj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/testing/performance/ios_scenarios.proj b/eng/testing/performance/ios_scenarios.proj index 8ba3d83d61ae4..18aa7e752c76c 100644 --- a/eng/testing/performance/ios_scenarios.proj +++ b/eng/testing/performance/ios_scenarios.proj @@ -123,7 +123,7 @@ $(Python) pre.py --name MauiBlazorTesting.app # Testing commands - $(Python) test.py devicestartup --device-type ios --package-path MauiBlazorTesting.app --package-name net.dot.mauiblazortesting --scenario-name "%(Identity)" + $(Python) test.py devicestartup --device-type ios --package-path MauiBlazorTesting.app --package-name net.dot.mauiblazortesting --scenario-name "%(Identity) --use-fully-drawn-time --fully-drawn-magic-string __MAUI_Blazor_WebView_OnAfterRender__" # Post commands $(Python) post.py From 12358b6f024bd1727aee8bf5ad71576d69623734 Mon Sep 17 00:00:00 2001 From: Tanay Parikh Date: Fri, 29 Apr 2022 16:19:13 -0700 Subject: [PATCH 17/22] Use akoeplinger/performance --- eng/testing/performance/performance-setup.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/testing/performance/performance-setup.sh b/eng/testing/performance/performance-setup.sh index 06469192a8415..ab43577f4f4fc 100755 --- a/eng/testing/performance/performance-setup.sh +++ b/eng/testing/performance/performance-setup.sh @@ -301,7 +301,7 @@ if [[ "$run_from_perf_repo" == true ]]; then performance_directory=$workitem_directory setup_arguments="--perf-hash $commit_sha $common_setup_arguments" else - git clone --branch main --depth 1 --quiet https://github.com/dotnet/performance.git $performance_directory + git clone --branch fullydrawn-ios --depth 1 --quiet https://github.com/akoeplinger/performance.git $performance_directory # uncomment to use BenchmarkDotNet sources instead of nuget packages # git clone https://github.com/dotnet/BenchmarkDotNet.git $benchmark_directory From e0517d2d7e78ca5d3860fbeb2d5208f7a0bf876f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexander=20K=C3=B6plinger?= Date: Mon, 2 May 2022 16:19:30 +0200 Subject: [PATCH 18/22] Fix misplaced quote character --- eng/testing/performance/ios_scenarios.proj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/testing/performance/ios_scenarios.proj b/eng/testing/performance/ios_scenarios.proj index 18aa7e752c76c..d852651603d87 100644 --- a/eng/testing/performance/ios_scenarios.proj +++ b/eng/testing/performance/ios_scenarios.proj @@ -123,7 +123,7 @@ $(Python) pre.py --name MauiBlazorTesting.app # Testing commands - $(Python) test.py devicestartup --device-type ios --package-path MauiBlazorTesting.app --package-name net.dot.mauiblazortesting --scenario-name "%(Identity) --use-fully-drawn-time --fully-drawn-magic-string __MAUI_Blazor_WebView_OnAfterRender__" + $(Python) test.py devicestartup --device-type ios --package-path MauiBlazorTesting.app --package-name net.dot.mauiblazortesting --scenario-name "%(Identity)" --use-fully-drawn-time --fully-drawn-magic-string __MAUI_Blazor_WebView_OnAfterRender__ # Post commands $(Python) post.py From ee7be6191786734a31827cef0adbe23d5e020752 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexander=20K=C3=B6plinger?= Date: Tue, 3 May 2022 01:07:30 +0200 Subject: [PATCH 19/22] Revert "Use akoeplinger/performance" This reverts commit 12358b6f024bd1727aee8bf5ad71576d69623734. The change was merged to dotnet/performance. --- eng/testing/performance/performance-setup.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/testing/performance/performance-setup.sh b/eng/testing/performance/performance-setup.sh index ab43577f4f4fc..06469192a8415 100755 --- a/eng/testing/performance/performance-setup.sh +++ b/eng/testing/performance/performance-setup.sh @@ -301,7 +301,7 @@ if [[ "$run_from_perf_repo" == true ]]; then performance_directory=$workitem_directory setup_arguments="--perf-hash $commit_sha $common_setup_arguments" else - git clone --branch fullydrawn-ios --depth 1 --quiet https://github.com/akoeplinger/performance.git $performance_directory + git clone --branch main --depth 1 --quiet https://github.com/dotnet/performance.git $performance_directory # uncomment to use BenchmarkDotNet sources instead of nuget packages # git clone https://github.com/dotnet/BenchmarkDotNet.git $benchmark_directory From b56636c5c1e04eaf08ef50d7c9027b780765b078 Mon Sep 17 00:00:00 2001 From: Tanay Parikh Date: Wed, 29 Jun 2022 11:09:52 -0700 Subject: [PATCH 20/22] Add ` --startup-iterations 7` --- eng/testing/performance/ios_scenarios.proj | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/eng/testing/performance/ios_scenarios.proj b/eng/testing/performance/ios_scenarios.proj index e1c8a05f61d79..9d46538327508 100644 --- a/eng/testing/performance/ios_scenarios.proj +++ b/eng/testing/performance/ios_scenarios.proj @@ -87,19 +87,19 @@ $(WorkItemDirectory) cd $(ScenarioDirectory)mauiblazorios;cp $HELIX_CORRELATION_PAYLOAD/MauiBlazoriOSDefault.ipa .;$(Python) pre.py --name MauiBlazoriOSDefault.ipa - $(Python) test.py sod --scenario-name "%(Identity)" + $(Python) test.py sod --scenario-name "%(Identity)" --startup-iterations 7 $(Python) post.py $(WorkItemDirectory) cd $(ScenarioDirectory)mauiblazorios;cp $HELIX_CORRELATION_PAYLOAD/MauiBlazoriOSDefault.ipa .;$(Python) pre.py --unzip --name MauiBlazoriOSDefault.ipa - $(Python) test.py sod --scenario-name "%(Identity)" + $(Python) test.py sod --scenario-name "%(Identity)" --startup-iterations 7 $(Python) post.py $(WorkItemDirectory) cd $(ScenarioDirectory)mauiblazorios;cp -rf $HELIX_CORRELATION_PAYLOAD/MauiBlazorMacCatalystDefault ./app;$(Python) pre.py --name app - $(Python) test.py sod --scenario-name "%(Identity)" + $(Python) test.py sod --scenario-name "%(Identity)" --startup-iterations 7 $(Python) post.py @@ -157,7 +157,7 @@ $(Python) pre.py --name MauiBlazorTesting.app # Testing commands - $(Python) test.py devicestartup --device-type ios --package-path MauiBlazorTesting.app --package-name net.dot.mauiblazortesting --scenario-name "%(Identity)" --use-fully-drawn-time --fully-drawn-magic-string __MAUI_Blazor_WebView_OnAfterRender__ + $(Python) test.py devicestartup --device-type ios --package-path MauiBlazorTesting.app --package-name net.dot.mauiblazortesting --scenario-name "%(Identity)" --use-fully-drawn-time --fully-drawn-magic-string __MAUI_Blazor_WebView_OnAfterRender__ --startup-iterations 7 # Post commands $(Python) post.py From 93da17c221177883e78c0c53162a7d32a799d566 Mon Sep 17 00:00:00 2001 From: Tanay Parikh Date: Tue, 5 Jul 2022 11:03:44 -0700 Subject: [PATCH 21/22] Revert "[REVERT THIS] Temporarily skip other jobs" This reverts commit 54fa30d876e2be0fef82883033d8fb027de2a150. --- eng/pipelines/coreclr/perf.yml | 512 ++++++++++++++++----------------- 1 file changed, 256 insertions(+), 256 deletions(-) diff --git a/eng/pipelines/coreclr/perf.yml b/eng/pipelines/coreclr/perf.yml index 235062fb577cb..57b2d9f27990b 100644 --- a/eng/pipelines/coreclr/perf.yml +++ b/eng/pipelines/coreclr/perf.yml @@ -44,7 +44,7 @@ schedules: jobs: - ${{ if and(ne(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'Schedule')) }}: - + # build mono - template: /eng/pipelines/common/platform-matrix.yml parameters: @@ -123,56 +123,56 @@ jobs: - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'Schedule')) }}: - # # build coreclr and libraries - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml - # buildConfig: release - # platforms: - # - Linux_x64 - # - windows_x64 - # - windows_x86 - # - Linux_musl_x64 - # jobParameters: - # testGroup: perf + # build coreclr and libraries + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml + buildConfig: release + platforms: + - Linux_x64 + - windows_x64 + - windows_x86 + - Linux_musl_x64 + jobParameters: + testGroup: perf - # # build mono on wasm - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # buildConfig: Release - # runtimeFlavor: mono - # platforms: - # - Browser_wasm - # jobParameters: - # buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - # nameSuffix: wasm - # isOfficialBuild: false - # extraStepsTemplate: /eng/pipelines/coreclr/perf-wasm-prepare-artifacts-steps.yml - # extraStepsParameters: - # configForBuild: Release + # build mono on wasm + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: Release + runtimeFlavor: mono + platforms: + - Browser_wasm + jobParameters: + buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + nameSuffix: wasm + isOfficialBuild: false + extraStepsTemplate: /eng/pipelines/coreclr/perf-wasm-prepare-artifacts-steps.yml + extraStepsParameters: + configForBuild: Release - # # build mono for AOT - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # buildConfig: release - # runtimeFlavor: mono - # platforms: - # - Linux_x64 - # jobParameters: - # buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - # nameSuffix: AOT - # isOfficialBuild: false - # extraStepsTemplate: /eng/pipelines/common/upload-artifact-step.yml - # extraStepsParameters: - # rootFolder: '$(Build.SourcesDirectory)/artifacts/' - # includeRootFolder: true - # displayName: AOT Mono Artifacts - # artifactName: LinuxMonoAOTx64 - # archiveExtension: '.tar.gz' - # archiveType: tar - # tarCompression: gz + # build mono for AOT + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: release + runtimeFlavor: mono + platforms: + - Linux_x64 + jobParameters: + buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + nameSuffix: AOT + isOfficialBuild: false + extraStepsTemplate: /eng/pipelines/common/upload-artifact-step.yml + extraStepsParameters: + rootFolder: '$(Build.SourcesDirectory)/artifacts/' + includeRootFolder: true + displayName: AOT Mono Artifacts + artifactName: LinuxMonoAOTx64 + archiveExtension: '.tar.gz' + archiveType: tar + tarCompression: gz # build mono Android scenarios - template: /eng/pipelines/common/platform-matrix.yml @@ -195,7 +195,7 @@ jobs: archiveExtension: '.tar.gz' archiveType: tar tarCompression: gz - + # build mono iOS scenarios - template: /eng/pipelines/common/platform-matrix.yml parameters: @@ -288,222 +288,222 @@ jobs: iOSLlvmBuild: True additionalSetupParameters: "--mauiversion $(mauiVersion)" - # # run mono microbenchmarks perf job - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - # buildConfig: release - # runtimeFlavor: mono - # platforms: - # - Linux_x64 - # jobParameters: - # testGroup: perf - # liveLibrariesBuildConfig: Release - # runtimeType: mono - # projectFile: microbenchmarks.proj - # runKind: micro_mono - # runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml - # logicalmachine: 'perftiger' + # run mono microbenchmarks perf job + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + buildConfig: release + runtimeFlavor: mono + platforms: + - Linux_x64 + jobParameters: + testGroup: perf + liveLibrariesBuildConfig: Release + runtimeType: mono + projectFile: microbenchmarks.proj + runKind: micro_mono + runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml + logicalmachine: 'perftiger' - # # run mono interpreter perf job - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - # buildConfig: release - # runtimeFlavor: mono - # platforms: - # - Linux_x64 - # jobParameters: - # testGroup: perf - # liveLibrariesBuildConfig: Release - # runtimeType: mono - # codeGenType: 'Interpreter' - # projectFile: microbenchmarks.proj - # runKind: micro_mono - # runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml - # logicalmachine: 'perftiger' + # run mono interpreter perf job + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + buildConfig: release + runtimeFlavor: mono + platforms: + - Linux_x64 + jobParameters: + testGroup: perf + liveLibrariesBuildConfig: Release + runtimeType: mono + codeGenType: 'Interpreter' + projectFile: microbenchmarks.proj + runKind: micro_mono + runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml + logicalmachine: 'perftiger' - # # run mono wasm interpreter (default) microbenchmarks perf job - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml # NOTE: should we move this file out of coreclr tempelates because it contains mono jobs? - # buildConfig: release - # runtimeFlavor: wasm - # platforms: - # - Linux_x64 - # jobParameters: - # testGroup: perf - # liveLibrariesBuildConfig: Release - # skipLiveLibrariesDownload: true - # runtimeType: wasm - # codeGenType: 'wasm' - # projectFile: microbenchmarks.proj - # runKind: micro - # runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml - # logicalmachine: 'perftiger' - # javascriptEngine: 'v8' - # collectHelixLogsScript: ${{ variables['_wasmCollectHelixLogsScript'] }} + # run mono wasm interpreter (default) microbenchmarks perf job + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml # NOTE: should we move this file out of coreclr tempelates because it contains mono jobs? + buildConfig: release + runtimeFlavor: wasm + platforms: + - Linux_x64 + jobParameters: + testGroup: perf + liveLibrariesBuildConfig: Release + skipLiveLibrariesDownload: true + runtimeType: wasm + codeGenType: 'wasm' + projectFile: microbenchmarks.proj + runKind: micro + runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml + logicalmachine: 'perftiger' + javascriptEngine: 'v8' + collectHelixLogsScript: ${{ variables['_wasmCollectHelixLogsScript'] }} - # #run mono wasm aot microbenchmarks perf job - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobtemplate: /eng/pipelines/coreclr/templates/perf-job.yml # note: should we move this file out of coreclr tempelates because it contains mono jobs? - # buildconfig: release - # runtimeflavor: wasm - # platforms: - # - linux_x64 - # jobparameters: - # testgroup: perf - # livelibrariesbuildconfig: Release - # skipLiveLibrariesDownload: true - # runtimetype: wasm - # codegentype: 'aot' - # projectfile: microbenchmarks.proj - # runkind: micro - # runjobtemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml - # logicalmachine: 'perftiger' - # javascriptEngine: 'v8' - # collectHelixLogsScript: ${{ variables['_wasmCollectHelixLogsScript'] }} + #run mono wasm aot microbenchmarks perf job + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobtemplate: /eng/pipelines/coreclr/templates/perf-job.yml # note: should we move this file out of coreclr tempelates because it contains mono jobs? + buildconfig: release + runtimeflavor: wasm + platforms: + - linux_x64 + jobparameters: + testgroup: perf + livelibrariesbuildconfig: Release + skipLiveLibrariesDownload: true + runtimetype: wasm + codegentype: 'aot' + projectfile: microbenchmarks.proj + runkind: micro + runjobtemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml + logicalmachine: 'perftiger' + javascriptEngine: 'v8' + collectHelixLogsScript: ${{ variables['_wasmCollectHelixLogsScript'] }} - # # run mono aot microbenchmarks perf job - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml # NOTE: should we move this file out of coreclr tempelates because it contains mono jobs? - # buildConfig: release - # runtimeFlavor: aot - # platforms: - # - Linux_x64 - # jobParameters: - # testGroup: perf - # liveLibrariesBuildConfig: Release - # runtimeType: mono - # codeGenType: 'AOT' - # projectFile: microbenchmarks.proj - # runKind: micro_mono - # runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml - # logicalmachine: 'perftiger' + # run mono aot microbenchmarks perf job + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml # NOTE: should we move this file out of coreclr tempelates because it contains mono jobs? + buildConfig: release + runtimeFlavor: aot + platforms: + - Linux_x64 + jobParameters: + testGroup: perf + liveLibrariesBuildConfig: Release + runtimeType: mono + codeGenType: 'AOT' + projectFile: microbenchmarks.proj + runKind: micro_mono + runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml + logicalmachine: 'perftiger' - # # run coreclr perftiger microbenchmarks perf job - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - # buildConfig: release - # runtimeFlavor: coreclr - # platforms: - # - Linux_x64 - # - windows_x64 - # - windows_x86 - # - Linux_musl_x64 - # jobParameters: - # testGroup: perf - # liveLibrariesBuildConfig: Release - # projectFile: microbenchmarks.proj - # runKind: micro - # runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml - # logicalmachine: 'perftiger' + # run coreclr perftiger microbenchmarks perf job + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + buildConfig: release + runtimeFlavor: coreclr + platforms: + - Linux_x64 + - windows_x64 + - windows_x86 + - Linux_musl_x64 + jobParameters: + testGroup: perf + liveLibrariesBuildConfig: Release + projectFile: microbenchmarks.proj + runKind: micro + runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml + logicalmachine: 'perftiger' - # # run coreclr perftiger microbenchmarks pgo perf jobs - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - # buildConfig: release - # runtimeFlavor: coreclr - # platforms: - # - windows_x64 - # jobParameters: - # testGroup: perf - # liveLibrariesBuildConfig: Release - # projectFile: microbenchmarks.proj - # runKind: micro - # runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml - # logicalmachine: 'perftiger' - # pgoRunType: -NoPgo + # run coreclr perftiger microbenchmarks pgo perf jobs + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + buildConfig: release + runtimeFlavor: coreclr + platforms: + - windows_x64 + jobParameters: + testGroup: perf + liveLibrariesBuildConfig: Release + projectFile: microbenchmarks.proj + runKind: micro + runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml + logicalmachine: 'perftiger' + pgoRunType: -NoPgo - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - # buildConfig: release - # runtimeFlavor: coreclr - # platforms: - # - windows_x64 - # jobParameters: - # testGroup: perf - # liveLibrariesBuildConfig: Release - # projectFile: microbenchmarks.proj - # runKind: micro - # runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml - # logicalmachine: 'perftiger' - # pgoRunType: -DynamicPgo + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + buildConfig: release + runtimeFlavor: coreclr + platforms: + - windows_x64 + jobParameters: + testGroup: perf + liveLibrariesBuildConfig: Release + projectFile: microbenchmarks.proj + runKind: micro + runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml + logicalmachine: 'perftiger' + pgoRunType: -DynamicPgo - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - # buildConfig: release - # runtimeFlavor: coreclr - # platforms: - # - windows_x64 - # jobParameters: - # testGroup: perf - # liveLibrariesBuildConfig: Release - # projectFile: microbenchmarks.proj - # runKind: micro - # runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml - # logicalmachine: 'perftiger' - # pgoRunType: -FullPgo + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + buildConfig: release + runtimeFlavor: coreclr + platforms: + - windows_x64 + jobParameters: + testGroup: perf + liveLibrariesBuildConfig: Release + projectFile: microbenchmarks.proj + runKind: micro + runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml + logicalmachine: 'perftiger' + pgoRunType: -FullPgo - # # run coreclr perfowl microbenchmarks perf job - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - # buildConfig: release - # runtimeFlavor: coreclr - # platforms: - # - Linux_x64 - # - windows_x64 - # jobParameters: - # testGroup: perf - # liveLibrariesBuildConfig: Release - # projectFile: microbenchmarks.proj - # runKind: micro - # runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml - # logicalmachine: 'perfowl' + # run coreclr perfowl microbenchmarks perf job + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + buildConfig: release + runtimeFlavor: coreclr + platforms: + - Linux_x64 + - windows_x64 + jobParameters: + testGroup: perf + liveLibrariesBuildConfig: Release + projectFile: microbenchmarks.proj + runKind: micro + runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml + logicalmachine: 'perfowl' - # # run coreclr crossgen perf job - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - # buildConfig: release - # runtimeFlavor: coreclr - # platforms: - # - Linux_x64 - # - windows_x64 - # - windows_x86 - # jobParameters: - # testGroup: perf - # liveLibrariesBuildConfig: Release - # projectFile: crossgen_perf.proj - # runKind: crossgen_scenarios - # runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml - # logicalmachine: 'perftiger' + # run coreclr crossgen perf job + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + buildConfig: release + runtimeFlavor: coreclr + platforms: + - Linux_x64 + - windows_x64 + - windows_x86 + jobParameters: + testGroup: perf + liveLibrariesBuildConfig: Release + projectFile: crossgen_perf.proj + runKind: crossgen_scenarios + runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml + logicalmachine: 'perftiger' - # # run mono wasm blazor perf job - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - # buildConfig: release - # runtimeFlavor: wasm - # platforms: - # - Linux_x64 - # jobParameters: - # testGroup: perf - # liveLibrariesBuildConfig: Release - # skipLiveLibrariesDownload: true - # runtimeType: wasm - # projectFile: blazor_perf.proj - # runKind: blazor_scenarios - # runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml - # additionalSetupParameters: '--latestdotnet' - # logicalmachine: 'perftiger' + # run mono wasm blazor perf job + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + buildConfig: release + runtimeFlavor: wasm + platforms: + - Linux_x64 + jobParameters: + testGroup: perf + liveLibrariesBuildConfig: Release + skipLiveLibrariesDownload: true + runtimeType: wasm + projectFile: blazor_perf.proj + runKind: blazor_scenarios + runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml + additionalSetupParameters: '--latestdotnet' + logicalmachine: 'perftiger' # Uncomment to reenable package replacement ## build maui runtime packs @@ -528,7 +528,7 @@ jobs: # extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml # extraStepsParameters: # name: MonoRuntimePacks - + # build maui app - template: /eng/pipelines/common/platform-matrix.yml parameters: From 0d1ae069cb694d04fb9cf62164182dfdd0517fbe Mon Sep 17 00:00:00 2001 From: Tanay Parikh Date: Tue, 5 Jul 2022 11:05:39 -0700 Subject: [PATCH 22/22] Remove SOD Startup Iterations --- eng/testing/performance/ios_scenarios.proj | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/eng/testing/performance/ios_scenarios.proj b/eng/testing/performance/ios_scenarios.proj index 9d46538327508..06b4d721c9a2d 100644 --- a/eng/testing/performance/ios_scenarios.proj +++ b/eng/testing/performance/ios_scenarios.proj @@ -87,19 +87,19 @@ $(WorkItemDirectory) cd $(ScenarioDirectory)mauiblazorios;cp $HELIX_CORRELATION_PAYLOAD/MauiBlazoriOSDefault.ipa .;$(Python) pre.py --name MauiBlazoriOSDefault.ipa - $(Python) test.py sod --scenario-name "%(Identity)" --startup-iterations 7 + $(Python) test.py sod --scenario-name "%(Identity)" $(Python) post.py $(WorkItemDirectory) cd $(ScenarioDirectory)mauiblazorios;cp $HELIX_CORRELATION_PAYLOAD/MauiBlazoriOSDefault.ipa .;$(Python) pre.py --unzip --name MauiBlazoriOSDefault.ipa - $(Python) test.py sod --scenario-name "%(Identity)" --startup-iterations 7 + $(Python) test.py sod --scenario-name "%(Identity)" $(Python) post.py $(WorkItemDirectory) cd $(ScenarioDirectory)mauiblazorios;cp -rf $HELIX_CORRELATION_PAYLOAD/MauiBlazorMacCatalystDefault ./app;$(Python) pre.py --name app - $(Python) test.py sod --scenario-name "%(Identity)" --startup-iterations 7 + $(Python) test.py sod --scenario-name "%(Identity)" $(Python) post.py