diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 3c85b206967..791fb4fef6e 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -302,6 +302,21 @@ jobs: projectFile: scenarios.proj channels: - release/6.0 + + # Maui Android scenario benchmarks + - template: /eng/performance/scenarios.yml + parameters: + osName: windows + architecture: x64 + osVersion: 19H1 + pool: + vmImage: 'windows-2022' + queue: Windows.10.Amd64.Pixel.Perf + machinePool: Pixel + kind: maui_scenarios_android + projectFile: maui_scenarios_android.proj + channels: + - release/6.0 # # Windows x64 micro benchmarks # - template: /eng/performance/benchmark_jobs.yml diff --git a/eng/performance/PreparePayloadWorkItems.targets b/eng/performance/PreparePayloadWorkItems.targets new file mode 100644 index 00000000000..2615b211813 --- /dev/null +++ b/eng/performance/PreparePayloadWorkItems.targets @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/eng/performance/Scenarios.Common.props b/eng/performance/Scenarios.Common.props new file mode 100644 index 00000000000..2ae44748780 --- /dev/null +++ b/eng/performance/Scenarios.Common.props @@ -0,0 +1,30 @@ + + + + %(Identity) + + + + + + 4:00 + + + + + $(_Framework.Substring($([MSBuild]::Subtract($(_Framework.Length), 3)))) + + + + $(WorkItemDirectory)\src\scenarios\ + $(HelixPreCommands);set PYTHONPATH=%HELIX_CORRELATION_PAYLOAD%\scripts%3B%HELIX_CORRELATION_PAYLOAD% + win-$(Architecture) + + + + $(WorkItemDirectory)/src/scenarios/ + $(HelixPreCommands);sudo apt-get update;chmod +x $HELIX_CORRELATION_PAYLOAD/startup/perfcollect + $(HelixPreCommands);export PYTHONPATH=$HELIX_CORRELATION_PAYLOAD/scripts:$HELIX_CORRELATION_PAYLOAD + linux-$(Architecture) + + \ No newline at end of file diff --git a/eng/performance/blazor_scenarios.proj b/eng/performance/blazor_scenarios.proj index 3937e7fee99..f85d90c6ac9 100644 --- a/eng/performance/blazor_scenarios.proj +++ b/eng/performance/blazor_scenarios.proj @@ -79,4 +79,6 @@ + + diff --git a/eng/performance/maui_scenarios_android.proj b/eng/performance/maui_scenarios_android.proj new file mode 100644 index 00000000000..c1e8a86e6fa --- /dev/null +++ b/eng/performance/maui_scenarios_android.proj @@ -0,0 +1,82 @@ + + + + + + true + 1.0.0-prerelease.21566.2 + %HELIX_CORRELATION_PAYLOAD%\microsoft.dotnet.xharness.cli\$(MicrosoftDotNetXHarnessCLIVersion)\tools\net6.0\any\Microsoft.DotNet.XHarness.CLI.dll + + + + $(Python) post.py + scenarios_out + $(CorrelationPayloadDirectory)$(PreparePayloadOutDirectoryName)\ + $(CorrelationPayloadDirectory)$(PreparePayloadOutDirectoryName)/ + + + + + + + + + + 00:30 + + + + + + mauiandroid + $(ScenariosDir)%(ScenarioDirectoryName) + com.companyname.mauiandroiddefault-Signed + com.companyname.mauiandroiddefault + + + mauiandroidpodcast + $(ScenariosDir)%(ScenarioDirectoryName) + com.Microsoft.NetConf2021.Maui-Signed + com.Microsoft.NetConf2021.Maui + + + mauiblazorandroid + $(ScenariosDir)%(ScenarioDirectoryName) + com.companyname.mauiblazorandroiddefault-Signed + com.companyname.mauiblazorandroiddefault + + + + + + + $(Python) pre.py publish -f $(_Framework)-android -o $(PreparePayloadWorkItemBaseDirectory)%(PreparePayloadWorkItem.ScenarioDirectoryName) -r android-arm64 --self-contained + %(PreparePayloadWorkItem.PayloadDirectory) + + + + + + + + echo on; xcopy %HELIX_CORRELATION_PAYLOAD%\$(PreparePayloadOutDirectoryName)\%(HelixWorkItem.ScenarioDirectoryName) %HELIX_WORKITEM_ROOT%\pub\ /E /I /Y + $(Python) test.py sod --scenario-name "%(Identity)" + + + echo on; xcopy %HELIX_CORRELATION_PAYLOAD%\$(PreparePayloadOutDirectoryName)\%(HelixWorkItem.ScenarioDirectoryName) %HELIX_WORKITEM_ROOT%\pub\ /E /I /Y; ren %HELIX_WORKITEM_ROOT%\pub\%(HelixWorkItem.ApkName).apk %(HelixWorkItem.ApkName).zip; powershell.exe -nologo -noprofile -command "& {Expand-Archive %HELIX_WORKITEM_ROOT%\pub\%(HelixWorkItem.ApkName).zip -DestinationPath %HELIX_WORKITEM_ROOT%\pub\}"; del %HELIX_WORKITEM_ROOT%\pub\%(HelixWorkItem.ApkName).zip + $(Python) test.py sod --scenario-name "%(Identity)" + + + echo on; set XHARNESSPATH=$(XharnessPath); xcopy %HELIX_CORRELATION_PAYLOAD%\$(PreparePayloadOutDirectoryName)\%(HelixWorkItem.ScenarioDirectoryName) %HELIX_WORKITEM_ROOT%\pub\ /E /I /Y + $(Python) test.py devicestartup --device-type android --package-path pub\%(HelixWorkItem.ApkName).apk --package-name %(HelixWorkItem.PackageName) --scenario-name "%(Identity)" + + + echo on; set XHARNESSPATH=$(XharnessPath); xcopy %HELIX_CORRELATION_PAYLOAD%\$(PreparePayloadOutDirectoryName)\%(HelixWorkItem.ScenarioDirectoryName) %HELIX_WORKITEM_ROOT%\pub\ /E /I /Y + $(Python) test.py devicestartup --device-type android --package-path pub\%(HelixWorkItem.ApkName).apk --package-name %(HelixWorkItem.PackageName) --scenario-name "%(Identity)" --disable-animations + + + + + + + diff --git a/eng/performance/scenarios.proj b/eng/performance/scenarios.proj index 7a70390047e..f8b357a5d0e 100644 --- a/eng/performance/scenarios.proj +++ b/eng/performance/scenarios.proj @@ -20,34 +20,78 @@ - + 4:00 + + + $(Python) post.py + scenarios_out + $(CorrelationPayloadDirectory)$(PreparePayloadOutDirectoryName)\ + $(CorrelationPayloadDirectory)$(PreparePayloadOutDirectoryName)/ + + + + + + - $(ScenariosDir)staticconsoletemplate + staticconsoletemplate + $(ScenariosDir)%(ScenarioDirectoryName) - $(ScenariosDir)staticvbconsoletemplate + staticvbconsoletemplate + $(ScenariosDir)%(ScenarioDirectoryName) - - $(ScenariosDir)emptyconsoletemplate + emptyconsoletemplate + $(ScenariosDir)%(ScenarioDirectoryName) - $(ScenariosDir)emptyvbconsoletemplate + emptyvbconsoletemplate + $(ScenariosDir)%(ScenarioDirectoryName) + + + mauidesktop + $(ScenariosDir)%(ScenarioDirectoryName) + + + mauiblazordesktop + $(ScenariosDir)%(ScenarioDirectoryName) + + + + + $(Python) pre.py publish -f $(_Framework) -c Release -o $(PreparePayloadWorkItemBaseDirectory)%(PreparePayloadWorkItem.ScenarioDirectoryName)_fdd + %(PreparePayloadWorkItem.PayloadDirectory) + + + $(Python) pre.py publish -f $(_Framework) -c Release -r $(RID) -o $(PreparePayloadWorkItemBaseDirectory)%(PreparePayloadWorkItem.ScenarioDirectoryName)_scd + %(PreparePayloadWorkItem.PayloadDirectory) + + + $(Python) pre.py build -c Release -f $(_Framework) -o $(PreparePayloadWorkItemBaseDirectory)%(PreparePayloadWorkItem.ScenarioDirectoryName)_build + %(PreparePayloadWorkItem.PayloadDirectory) + + + $(Python) pre.py publish -c Release -f $(_Framework)-windows10.0.19041.0 -o $(PreparePayloadWorkItemBaseDirectory)%(PreparePayloadWorkItem.ScenarioDirectoryName)_fdd + %(PreparePayloadWorkItem.PayloadDirectory) + + + + - $(Python) pre.py publish -f $(_Framework) -c Release + xcopy %HELIX_CORRELATION_PAYLOAD%\$(PreparePayloadOutDirectoryName)\%(HelixWorkItem.ScenarioDirectoryName)_fdd %HELIX_WORKITEM_ROOT%\pub /E /I /Y + cp -r $HELIX_CORRELATION_PAYLOAD/$(PreparePayloadOutDirectoryName)/%(HelixWorkItem.ScenarioDirectoryName)_fdd $HELIX_WORKITEM_ROOT/pub $(Python) test.py startup --scenario-name "%(Identity)" @@ -55,7 +99,8 @@ - $(Python) pre.py publish -f $(_Framework) -c Release + xcopy %HELIX_CORRELATION_PAYLOAD%\$(PreparePayloadOutDirectoryName)\%(HelixWorkItem.ScenarioDirectoryName)_fdd %HELIX_WORKITEM_ROOT%\pub /E /I /Y + cp -r $HELIX_CORRELATION_PAYLOAD/$(PreparePayloadOutDirectoryName)/%(HelixWorkItem.ScenarioDirectoryName)_fdd $HELIX_WORKITEM_ROOT/pub $(Python) test.py sod --scenario-name "%(Identity)" @@ -63,7 +108,8 @@ - $(Python) pre.py publish -f $(_Framework) -c Release -r $(RID) + xcopy %HELIX_CORRELATION_PAYLOAD%\$(PreparePayloadOutDirectoryName)\%(HelixWorkItem.ScenarioDirectoryName)_scd %HELIX_WORKITEM_ROOT%\pub /E /I /Y + cp -r $HELIX_CORRELATION_PAYLOAD/$(PreparePayloadOutDirectoryName)/%(HelixWorkItem.ScenarioDirectoryName)_scd $HELIX_WORKITEM_ROOT/pub $(Python) test.py sod --scenario-name "%(Identity)" @@ -71,38 +117,29 @@ - $(Python) pre.py build -c Release -f $(_Framework) + xcopy %HELIX_CORRELATION_PAYLOAD%\$(PreparePayloadOutDirectoryName)\%(HelixWorkItem.ScenarioDirectoryName)_build %HELIX_WORKITEM_ROOT%\bin /E /I /Y + cp -r $HELIX_CORRELATION_PAYLOAD/$(PreparePayloadOutDirectoryName)/%(HelixWorkItem.ScenarioDirectoryName)_build $HELIX_WORKITEM_ROOT/bin $(Python) test.py sod --scenario-name "%(Identity)" - + - - $(ScenariosDir)mauidesktop - $(Python) pre.py publish -c Release -f $(_Framework)-windows10.0.19041.0 + + xcopy %HELIX_CORRELATION_PAYLOAD%\$(PreparePayloadOutDirectoryName)\%(HelixWorkItem.ScenarioDirectoryName)_fdd %HELIX_WORKITEM_ROOT%\pub /E /I /Y + cp -r $HELIX_CORRELATION_PAYLOAD/$(PreparePayloadOutDirectoryName)/%(HelixWorkItem.ScenarioDirectoryName)_fdd $HELIX_WORKITEM_ROOT/pub $(Python) test.py sod --scenario-name "%(Identity)" - - $(ScenariosDir)mauidesktop - $(Python) pre.py publish -c Release -f $(_Framework)-windows10.0.19041.0 + + xcopy %HELIX_CORRELATION_PAYLOAD%\$(PreparePayloadOutDirectoryName)\%(HelixWorkItem.ScenarioDirectoryName)_fdd %HELIX_WORKITEM_ROOT%\pub /E /I /Y + cp -r $HELIX_CORRELATION_PAYLOAD/$(PreparePayloadOutDirectoryName)/%(HelixWorkItem.ScenarioDirectoryName)_fdd $HELIX_WORKITEM_ROOT/pub $(Python) test.py startup --scenario-name "%(Identity)" - - - - $(ScenariosDir)mauiblazordesktop - $(Python) pre.py publish -c Release -f $(_Framework)-windows10.0.19041.0 - $(Python) test.py sod --scenario-name "%(Identity)" - - - $(ScenariosDir)mauiblazordesktop - $(Python) pre.py publish -c Release -f $(_Framework)-windows10.0.19041.0 - $(Python) test.py startup --scenario-name "%(Identity)" - - + + +