runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml
logicalmachine: 'perfpixel4a'
- # run mono iOS scenarios and maui iOS scenarios
+ # run mono iOS scenarios scenarios
- template: /eng/pipelines/common/platform-matrix.yml
parameters:
jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml
runtimeFlavor: mono
platforms:
- osx_x64
- variables:
- - name: mauiVersion
- value: $[ dependencies.Build_ios_arm64_release_MACiOSAndroidMauiNet7.outputs['getMauiVersion.mauiVersion'] ]
jobParameters:
testGroup: perf
runtimeType: iOSMono
runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml
logicalmachine: 'perfiphone12mini'
iOSLlvmBuild: False
- additionalSetupParameters: "--mauiversion $(mauiVersion)"
- template: /eng/pipelines/common/platform-matrix.yml
parameters:
runtimeFlavor: mono
platforms:
- osx_x64
- variables:
- - name: mauiVersion
- value: $[ dependencies.Build_ios_arm64_release_MACiOSAndroidMauiNet7.outputs['getMauiVersion.mauiVersion'] ]
jobParameters:
testGroup: perf
runtimeType: iOSMono
runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml
logicalmachine: 'perfiphone12mini'
iOSLlvmBuild: True
- additionalSetupParameters: "--mauiversion $(mauiVersion)"
-
- # run maui iOS scenarios for net6 (Maui doesn't need Llmv true build (for net6))
- - template: /eng/pipelines/common/platform-matrix.yml
- parameters:
- jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml
- buildConfig: release
- runtimeFlavor: mono
- platforms:
- - osx_x64
- variables:
- - name: mauiVersion
- value: $[ dependencies.Build_ios_arm64_release_MACiOSAndroidMauiNet6.outputs['getMauiVersion.mauiVersion'] ]
- jobParameters:
- testGroup: perf
- runtimeType: iOSMobileNet6
- projectFile: ios_scenarios_net6.proj
- runKind: ios_scenarios_net6
- runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml
- logicalmachine: 'perfiphone12mini'
- iOSLlvmBuild: False
- additionalSetupParameters: "--mauiversion $(mauiVersion)"
# run mono microbenchmarks perf job
- template: /eng/pipelines/common/platform-matrix.yml
# extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml
# extraStepsParameters:
# name: MonoRuntimePacks
-
- # build maui app net7.0
- - template: /eng/pipelines/common/platform-matrix.yml
- parameters:
- jobTemplate: /eng/pipelines/common/global-build-job.yml
- buildConfig: release
- runtimeFlavor: mono
- platforms:
- - ios_arm64
- jobParameters:
- # Uncomment to reenable package replacement for main
- #dependsOn:
- # - Build_android_arm_release_Maui_Packs_Mono
- # - Build_android_arm64_release_Maui_Packs_Mono
- # - Build_android_x86_release_Maui_Packs_Mono
- # - Build_android_x64_release_Maui_Packs_Mono
- # - Build_maccatalyst_x64_release_Maui_Packs_Mono
- # - Build_iossimulator_x64_release_Maui_Packs_Mono
- # - Build_ios_arm64_release_Maui_Packs_Mono
- buildArgs: -s mono -c $(_BuildConfig)
- nameSuffix: MACiOSAndroidMauiNet7
- isOfficialBuild: false
- pool:
- vmImage: 'macos-12'
- extraStepsTemplate: /eng/pipelines/coreclr/templates/build-perf-maui-apps-net7.yml
- extraStepsParameters:
- rootFolder: '$(Build.SourcesDirectory)/artifacts/'
- includeRootFolder: true
- displayName: MAC, iOS, and Android Maui Artifacts Net7
- artifactName: MACiOSAndroidMauiArmNet7
- archiveExtension: '.tar.gz'
- archiveType: tar
- tarCompression: gz
-
- # build maui app net6.0
- - template: /eng/pipelines/common/platform-matrix.yml
- parameters:
- jobTemplate: /eng/pipelines/common/global-build-job.yml
- buildConfig: release
- runtimeFlavor: mono
- platforms:
- - ios_arm64
- jobParameters:
- buildArgs: -s mono -c $(_BuildConfig)
- nameSuffix: MACiOSAndroidMauiNet6
- isOfficialBuild: false
- pool:
- vmImage: 'macos-12'
- extraStepsTemplate: /eng/pipelines/coreclr/templates/build-perf-maui-apps-net6.yml
- extraStepsParameters:
- rootFolder: '$(Build.SourcesDirectory)/artifacts/'
- includeRootFolder: true
- displayName: MAC, iOS, and Android Maui Artifacts Net6
- artifactName: MACiOSAndroidMauiArmNet6
- archiveExtension: '.tar.gz'
- archiveType: tar
- tarCompression: gz
# Test job depends on the corresponding build job
${{ if eq(parameters.downloadSpecificBuild.buildId, '') }}:
dependsOn:
- - ${{ if not(in(parameters.runtimeType, 'AndroidMono', 'iOSMono', 'iOSMobileNet6', 'wasm')) }}:
+ - ${{ if not(in(parameters.runtimeType, 'AndroidMono', 'iOSMono', 'wasm')) }}:
- ${{ format('coreclr_{0}_product_build_{1}{2}_{3}_{4}', parameters.runtimeVariant, parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }}
- ${{ if and(ne(parameters.liveLibrariesBuildConfig, ''), eq(parameters.skipLiveLibrariesDownload, 'false')) }}:
- ${{ format('libraries_build_{0}{1}_{2}_{3}', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.liveLibrariesBuildConfig) }}
- ${{ format('build_{0}{1}_{2}_{3}_{4}', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig, parameters.codeGenType) }}
- ${{ if eq(parameters.runtimeType, 'AndroidMono')}}:
- ${{ 'build_android_arm64_release_AndroidMono' }}
- - ${{ 'Build_ios_arm64_release_MACiOSAndroidMauiNet7' }}
- ${{ if eq(parameters.runtimeType, 'iOSMono')}}:
- ${{ 'build_ios_arm64_release_iOSMono' }}
- - ${{ 'Build_ios_arm64_release_MACiOSAndroidMauiNet7' }}
- - ${{ if eq(parameters.runtimeType, 'iOSMobileNet6')}}:
- - ${{ 'Build_ios_arm64_release_MACiOSAndroidMauiNet6' }}
- ${{ if and(eq(parameters.osGroup, 'windows'), not(in(parameters.runtimeType, 'AndroidMono', 'iOSMono', 'iOSMobileNet6'))) }}:
+ ${{ if and(eq(parameters.osGroup, 'windows'), not(in(parameters.runtimeType, 'AndroidMono', 'iOSMono'))) }}:
${{ if eq(parameters.runtimeType, 'mono') }}:
extraSetupParameters: -Architecture ${{ parameters.archType }} -MonoDotnet $(Build.SourcesDirectory)\.dotnet-mono
${{ if eq(parameters.runtimeType, 'coreclr') }}:
extraSetupParameters: -CoreRootDirectory $(Build.SourcesDirectory)\artifacts\tests\coreclr\${{ parameters.osGroup }}.${{ parameters.archType }}.Release\Tests\Core_Root -Architecture ${{ parameters.archType }}
- ${{ if and(ne(parameters.osGroup, 'windows'), not(in(parameters.runtimeType, 'AndroidMono', 'iOSMono', 'iOSMobileNet6'))) }}:
+ ${{ if and(ne(parameters.osGroup, 'windows'), not(in(parameters.runtimeType, 'AndroidMono', 'iOSMono'))) }}:
${{ if and(eq(parameters.runtimeType, 'mono'), ne(parameters.codeGenType, 'AOT')) }}:
extraSetupParameters: --architecture ${{ parameters.archType }} --monodotnet $(Build.SourcesDirectory)/.dotnet-mono
${{ if and(eq(parameters.runtimeType, 'wasm'), ne(parameters.codeGenType, 'AOT')) }}:
extraSetupParameters: --corerootdirectory $(Build.SourcesDirectory)/artifacts/tests/coreclr/${{ parameters.osGroup }}.${{ parameters.archType }}.Release/Tests/Core_Root --architecture ${{ parameters.archType }} --alpine
${{ if in(parameters.runtimeType, 'AndroidMono') }}:
extraSetupParameters: -Architecture ${{ parameters.archType }} -AndroidMono
- ${{ if in(parameters.runtimeType, 'iosMono', 'iOSMobileNet6') }}:
+ ${{ if in(parameters.runtimeType, 'iosMono') }}:
extraSetupParameters: --architecture ${{ parameters.archType }} --iosmono --iosllvmbuild ${{ parameters.iOSLlvmBuild }}
variables:
displayName: 'live-built libraries'
# Download coreclr
- - ${{ if not(in(parameters.runtimeType, 'AndroidMono', 'iOSMono', 'iOSMobileNet6', 'wasm')) }}:
+ - ${{ if not(in(parameters.runtimeType, 'AndroidMono', 'iOSMono', 'wasm')) }}:
- template: /eng/pipelines/common/download-artifact-step.yml
parameters:
unpackFolder: $(buildProductRootFolderPath)
artifactName: 'AndroidMonoarm64'
displayName: 'Mono Android HelloWorld'
- # Download iOSMono tests and MauiiOS/MacCatalyst
+ # Download iOSMono tests
- ${{ if eq(parameters.runtimeType, 'iOSMono') }}:
- template: /eng/pipelines/common/download-artifact-step.yml
parameters:
downloadPath: '$(Build.SourcesDirectory)/iosHelloWorldZip/llvmzip'
artifactName: 'iOSSampleAppLLVM'
checkDownloadedFiles: true
- - template: /eng/pipelines/common/download-artifact-step.yml
- parameters:
- unpackFolder: $(Build.SourcesDirectory)/MauiiOSDefaultIPA
- cleanUnpackFolder: false
- artifactFileName: 'MauiiOSDefaultIPA.tar.gz'
- artifactName: 'MauiiOSDefaultIPA'
- displayName: 'Maui iOS IPA'
- - template: /eng/pipelines/common/download-artifact-step.yml
- parameters:
- unpackFolder: $(Build.SourcesDirectory)/MauiMacCatalystDefault
- cleanUnpackFolder: false
- artifactFileName: 'MauiMacCatalystDefault.tar.gz'
- artifactName: 'MauiMacCatalystDefault'
- displayName: 'Maui MacCatalyst App'
- - template: /eng/pipelines/common/download-artifact-step.yml
- parameters:
- unpackFolder: $(Build.SourcesDirectory)/MauiiOSPodcastIPA
- cleanUnpackFolder: false
- 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'
-
-
- # Download Maui iOS net6 stuff
- - ${{ if eq(parameters.runtimeType, 'iOSMobileNet6') }}:
- - template: /eng/pipelines/common/download-artifact-step.yml
- parameters:
- unpackFolder: $(Build.SourcesDirectory)/MauiiOSDefaultIPA
- cleanUnpackFolder: false
- artifactFileName: 'MauiiOSDefaultIPANet6.tar.gz'
- artifactName: 'MauiiOSDefaultIPANet6'
- displayName: 'Maui iOS IPA Net6'
- - template: /eng/pipelines/common/download-artifact-step.yml
- parameters:
- unpackFolder: $(Build.SourcesDirectory)/MauiMacCatalystDefault
- cleanUnpackFolder: false
- artifactFileName: 'MauiMacCatalystDefaultNet6.tar.gz'
- artifactName: 'MauiMacCatalystDefaultNet6'
- displayName: 'Maui MacCatalyst App Net6'
- - template: /eng/pipelines/common/download-artifact-step.yml
- parameters:
- unpackFolder: $(Build.SourcesDirectory)/MauiiOSPodcastIPA
- cleanUnpackFolder: false
- artifactFileName: 'MauiiOSPodcastIPANet6.tar.gz'
- artifactName: 'MauiiOSPodcastIPANet6'
- displayName: 'Maui iOS Podcast IPA Net6'
- - template: /eng/pipelines/common/download-artifact-step.yml
- parameters:
- unpackFolder: $(Build.SourcesDirectory)/MauiBlazoriOSDefaultIPA
- cleanUnpackFolder: false
- artifactFileName: 'MauiBlazoriOSDefaultIPANet6.tar.gz'
- artifactName: 'MauiBlazoriOSDefaultIPANet6'
- displayName: 'Maui Blazor iOS IPA Net6'
- - template: /eng/pipelines/common/download-artifact-step.yml
- parameters:
- unpackFolder: $(Build.SourcesDirectory)/MauiBlazorMacCatalystDefault
- cleanUnpackFolder: false
- artifactFileName: 'MauiBlazorMacCatalystDefaultNet6.tar.gz'
- artifactName: 'MauiBlazorMacCatalystDefaultNet6'
- displayName: 'Maui Blazor MacCatalyst App Net6'
# Create Core_Root
- script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) $(buildConfig) $(archType) generatelayoutonly $(librariesOverrideArg)
]]>
</CustomCommands>
</XHarnessAppBundleToTest>
- <HelixWorkItem Include="SOD - Maui MacCatalyst .app Size" Condition="'$(iOSLlvmBuild)' == 'False'">
- <PayloadDirectory>$(WorkItemDirectory)</PayloadDirectory>
- <PreCommands>cd $(ScenarioDirectory)mauiios;cp -rf $HELIX_CORRELATION_PAYLOAD/MauiMacCatalystDefault ./app;$(Python) pre.py --name app</PreCommands>
- <Command>$(Python) test.py sod --scenario-name "%(Identity)"</Command>
- <PostCommands>$(Python) post.py</PostCommands>
- </HelixWorkItem>
- <HelixWorkItem Include="SOD - Maui iOS IPA Size" Condition="'$(iOSLlvmBuild)' == 'False'">
- <PayloadDirectory>$(WorkItemDirectory)</PayloadDirectory>
- <PreCommands>cd $(ScenarioDirectory)mauiios;cp $HELIX_CORRELATION_PAYLOAD/MauiiOSDefault.ipa .;$(Python) pre.py --name MauiiOSDefault.ipa</PreCommands>
- <Command>$(Python) test.py sod --scenario-name "%(Identity)"</Command>
- <PostCommands>$(Python) post.py</PostCommands>
- </HelixWorkItem>
- <HelixWorkItem Include="SOD - Maui iOS IPA Size Unzipped" Condition="'$(iOSLlvmBuild)' == 'False'">
- <PayloadDirectory>$(WorkItemDirectory)</PayloadDirectory>
- <PreCommands>cd $(ScenarioDirectory)mauiios;cp $HELIX_CORRELATION_PAYLOAD/MauiiOSDefault.ipa .;$(Python) pre.py --unzip --name MauiiOSDefault.ipa</PreCommands>
- <Command>$(Python) test.py sod --scenario-name "%(Identity)"</Command>
- <PostCommands>$(Python) post.py</PostCommands>
- </HelixWorkItem>
- <HelixWorkItem Include="SOD - Maui Blazor iOS IPA Size" Condition="'$(iOSLlvmBuild)' == 'False'">
- <PayloadDirectory>$(WorkItemDirectory)</PayloadDirectory>
- <PreCommands>cd $(ScenarioDirectory)mauiblazorios;cp $HELIX_CORRELATION_PAYLOAD/MauiBlazoriOSDefault.ipa .;$(Python) pre.py --name MauiBlazoriOSDefault.ipa</PreCommands>
- <Command>$(Python) test.py sod --scenario-name "%(Identity)"</Command>
- <PostCommands>$(Python) post.py</PostCommands>
- </HelixWorkItem>
- <HelixWorkItem Include="SOD - Maui Blazor iOS IPA Size Unzipped" Condition="'$(iOSLlvmBuild)' == 'False'">
- <PayloadDirectory>$(WorkItemDirectory)</PayloadDirectory>
- <PreCommands>cd $(ScenarioDirectory)mauiblazorios;cp $HELIX_CORRELATION_PAYLOAD/MauiBlazoriOSDefault.ipa .;$(Python) pre.py --unzip --name MauiBlazoriOSDefault.ipa</PreCommands>
- <Command>$(Python) test.py sod --scenario-name "%(Identity)"</Command>
- <PostCommands>$(Python) post.py</PostCommands>
- </HelixWorkItem>
- <HelixWorkItem Include="SOD - Maui Blazor MacCatalyst .app Size" Condition="'$(iOSLlvmBuild)' == 'False'">
- <PayloadDirectory>$(WorkItemDirectory)</PayloadDirectory>
- <PreCommands>cd $(ScenarioDirectory)mauiblazorios;cp -rf $HELIX_CORRELATION_PAYLOAD/MauiBlazorMacCatalystDefault ./app;$(Python) pre.py --name app</PreCommands>
- <Command>$(Python) test.py sod --scenario-name "%(Identity)"</Command>
- <PostCommands>$(Python) post.py</PostCommands>
- </HelixWorkItem>
- <HelixWorkItem Include="SOD - Maui iOS Podcast IPA Size" Condition="'$(iOSLlvmBuild)' == 'False'">
- <PayloadDirectory>$(WorkItemDirectory)</PayloadDirectory>
- <PreCommands>cd $(ScenarioDirectory)mauiios;cp $HELIX_CORRELATION_PAYLOAD/MauiiOSPodcast.ipa .;$(Python) pre.py --name MauiiOSPodcast.ipa</PreCommands>
- <Command>$(Python) test.py sod --scenario-name "%(Identity)"</Command>
- <PostCommands>$(Python) post.py</PostCommands>
- </HelixWorkItem>
- <HelixWorkItem Include="SOD - Maui iOS Podcast IPA Size Unzipped" Condition="'$(iOSLlvmBuild)' == 'False'">
- <PayloadDirectory>$(WorkItemDirectory)</PayloadDirectory>
- <PreCommands>cd $(ScenarioDirectory)mauiios;cp $HELIX_CORRELATION_PAYLOAD/MauiiOSPodcast.ipa .;$(Python) pre.py --unzip --name MauiiOSPodcast.ipa</PreCommands>
- <Command>$(Python) test.py sod --scenario-name "%(Identity)"</Command>
- <PostCommands>$(Python) post.py</PostCommands>
- </HelixWorkItem>
- <XHarnessAppBundleToTest Include="Device Startup - iOS Maui Default" Condition="'$(iOSLlvmBuild)' == 'False'">
- <AppBundlePath>$(WorkItemDirectory).zip</AppBundlePath>
- <WorkItemTimeout>00:15:00</WorkItemTimeout>
- <TestTarget>ios-device</TestTarget>
- <CustomCommands>
- <![CDATA[
- # PreCommands
- export XHARNESSPATH=$XHARNESS_CLI_PATH
-
- cp -r $HELIX_CORRELATION_PAYLOAD/MauiTesting.app $(ScenarioDirectory)mauiios/MauiTesting.app
- cp -f embedded.mobileprovision $(ScenarioDirectory)mauiios/MauiTesting.app
- cd $(ScenarioDirectory)mauiios
- sign MauiTesting.app
-
- $(Python) pre.py --name MauiTesting.app
-
- # Testing commands
- $(Python) test.py devicestartup --device-type ios --package-path MauiTesting.app --package-name net.dot.mauitesting --scenario-name "%(Identity)"
- ((result=$?))
-
- # Post commands
- $(Python) post.py
- exit $result
- ]]>
- </CustomCommands>
- </XHarnessAppBundleToTest>
- <XHarnessAppBundleToTest Include="Device Startup - iOS Maui Blazor Default" Condition="'$(iOSLlvmBuild)' == 'False'">
- <AppBundlePath>$(WorkItemDirectory).zip</AppBundlePath>
- <WorkItemTimeout>00:15:00</WorkItemTimeout>
- <TestTarget>ios-device</TestTarget>
- <CustomCommands>
- <![CDATA[
- # PreCommands
- export XHARNESSPATH=$XHARNESS_CLI_PATH
-
- cp -r $HELIX_CORRELATION_PAYLOAD/MauiBlazorTesting.app $(ScenarioDirectory)mauiblazorios/MauiBlazorTesting.app
- cp -f embedded.mobileprovision $(ScenarioDirectory)mauiblazorios/MauiBlazorTesting.app
- cd $(ScenarioDirectory)mauiblazorios
- sign MauiBlazorTesting.app
-
- $(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__ --startup-iterations 5
- ((result=$?))
-
- # Post commands
- $(Python) post.py
- exit $result
- ]]>
- </CustomCommands>
- </XHarnessAppBundleToTest>
- <XHarnessAppBundleToTest Include="Device Startup - iOS Maui Podcast" Condition="'$(iOSLlvmBuild)' == 'False'">
- <AppBundlePath>$(WorkItemDirectory).zip</AppBundlePath>
- <WorkItemTimeout>00:15:00</WorkItemTimeout>
- <TestTarget>ios-device</TestTarget>
- <CustomCommands>
- <![CDATA[
- # PreCommands
- export XHARNESSPATH=$XHARNESS_CLI_PATH
-
- cp -r $HELIX_CORRELATION_PAYLOAD/Microsoft.NetConf2021.Maui.app $(ScenarioDirectory)mauiios/Microsoft.NetConf2021.Maui.app
- cp -f embedded.mobileprovision $(ScenarioDirectory)mauiios/Microsoft.NetConf2021.Maui.app
- cd $(ScenarioDirectory)mauiios
- sign Microsoft.NetConf2021.Maui.app
-
- $(Python) pre.py --name Microsoft.NetConf2021.Maui.app
-
- # Testing commands
- $(Python) test.py devicestartup --device-type ios --package-path Microsoft.NetConf2021.Maui.app --package-name net.dot.netconf2021.maui --scenario-name "%(Identity)"
- ((result=$?))
-
- # Post commands
- $(Python) post.py
- exit $result
- ]]>
- </CustomCommands>
- </XHarnessAppBundleToTest>
</ItemGroup>
- <!--
- This target is to work around the XHarness command that depend on scripts in ORIGPYPATH
- being run before we get to run our normal Post commands. AddXHarnessCLI is the XHarness
- Target so we just make sure we add this after that.
- -->
- <Target Name="ResetPYTHONPATHBeforeXHarnessCommand" AfterTargets="AddXHarnessCLI">
- <PropertyGroup>
- <HelixPostCommands>export PYTHONPATH=$ORIGPYPATH;$(HelixPostCommands)</HelixPostCommands>
- </PropertyGroup>
- </Target>
</Project>
+++ /dev/null
-<Project Sdk="Microsoft.DotNet.Helix.Sdk" DefaultTargets="Test">
- <PropertyGroup>
- <IncludeXHarnessCli>true</IncludeXHarnessCli>
- </PropertyGroup>
- <PropertyGroup Condition="'$(AGENT_OS)' != 'Windows_NT'">
- <Python>python3</Python>
- <HelixPreCommands>$(HelixPreCommands);chmod +x $HELIX_WORKITEM_PAYLOAD/SOD/SizeOnDisk</HelixPreCommands>
- <HelixPreCommands>$(HelixPreCommands);chmod +x $HELIX_WORKITEM_PAYLOAD/startup/Startup</HelixPreCommands>
- </PropertyGroup>
-
- <ItemGroup>
- <HelixCorrelationPayload Include="$(CorrelationPayloadDirectory)">
- <PayloadDirectory>%(Identity)</PayloadDirectory>
- </HelixCorrelationPayload>
- </ItemGroup>
-
- <PropertyGroup>
- <LlvmPath>nollvm</LlvmPath>
- <LlvmPath Condition="'$(iOSLlvmBuild)' == 'True'">llvm</LlvmPath>
- </PropertyGroup>
-
- <PropertyGroup Condition="'$(AGENT_OS)' == 'Windows_NT'">
- <ScenarioDirectory>%HELIX_CORRELATION_PAYLOAD%\performance\src\scenarios\</ScenarioDirectory>
-
- </PropertyGroup>
- <PropertyGroup Condition="'$(AGENT_OS)' != 'Windows_NT'">
- <ScenarioDirectory>$HELIX_CORRELATION_PAYLOAD/performance/src/scenarios/</ScenarioDirectory>
- </PropertyGroup>
-
- <ItemGroup>
- <HelixWorkItem Include="SOD - Maui MacCatalyst .app Size" Condition="'$(iOSLlvmBuild)' == 'False'">
- <PayloadDirectory>$(WorkItemDirectory)</PayloadDirectory>
- <PreCommands>cd $(ScenarioDirectory)mauiios;cp -rf $HELIX_CORRELATION_PAYLOAD/MauiMacCatalystDefault ./app;$(Python) pre.py --name app</PreCommands>
- <Command>$(Python) test.py sod --scenario-name "%(Identity)"</Command>
- <PostCommands>$(Python) post.py</PostCommands>
- </HelixWorkItem>
- <HelixWorkItem Include="SOD - Maui iOS IPA Size" Condition="'$(iOSLlvmBuild)' == 'False'">
- <PayloadDirectory>$(WorkItemDirectory)</PayloadDirectory>
- <PreCommands>cd $(ScenarioDirectory)mauiios;cp $HELIX_CORRELATION_PAYLOAD/MauiiOSDefault.ipa .;$(Python) pre.py --name MauiiOSDefault.ipa</PreCommands>
- <Command>$(Python) test.py sod --scenario-name "%(Identity)"</Command>
- <PostCommands>$(Python) post.py</PostCommands>
- </HelixWorkItem>
- <HelixWorkItem Include="SOD - Maui iOS IPA Size Unzipped" Condition="'$(iOSLlvmBuild)' == 'False'">
- <PayloadDirectory>$(WorkItemDirectory)</PayloadDirectory>
- <PreCommands>cd $(ScenarioDirectory)mauiios;cp $HELIX_CORRELATION_PAYLOAD/MauiiOSDefault.ipa .;$(Python) pre.py --unzip --name MauiiOSDefault.ipa</PreCommands>
- <Command>$(Python) test.py sod --scenario-name "%(Identity)"</Command>
- <PostCommands>$(Python) post.py</PostCommands>
- </HelixWorkItem>
- <HelixWorkItem Include="SOD - Maui Blazor iOS IPA Size" Condition="'$(iOSLlvmBuild)' == 'False'">
- <PayloadDirectory>$(WorkItemDirectory)</PayloadDirectory>
- <PreCommands>cd $(ScenarioDirectory)mauiblazorios;cp $HELIX_CORRELATION_PAYLOAD/MauiBlazoriOSDefault.ipa .;$(Python) pre.py --name MauiBlazoriOSDefault.ipa</PreCommands>
- <Command>$(Python) test.py sod --scenario-name "%(Identity)"</Command>
- <PostCommands>$(Python) post.py</PostCommands>
- </HelixWorkItem>
- <HelixWorkItem Include="SOD - Maui Blazor iOS IPA Size Unzipped" Condition="'$(iOSLlvmBuild)' == 'False'">
- <PayloadDirectory>$(WorkItemDirectory)</PayloadDirectory>
- <PreCommands>cd $(ScenarioDirectory)mauiblazorios;cp $HELIX_CORRELATION_PAYLOAD/MauiBlazoriOSDefault.ipa .;$(Python) pre.py --unzip --name MauiBlazoriOSDefault.ipa</PreCommands>
- <Command>$(Python) test.py sod --scenario-name "%(Identity)"</Command>
- <PostCommands>$(Python) post.py</PostCommands>
- </HelixWorkItem>
- <HelixWorkItem Include="SOD - Maui Blazor MacCatalyst .app Size" Condition="'$(iOSLlvmBuild)' == 'False'">
- <PayloadDirectory>$(WorkItemDirectory)</PayloadDirectory>
- <PreCommands>cd $(ScenarioDirectory)mauiblazorios;cp -rf $HELIX_CORRELATION_PAYLOAD/MauiBlazorMacCatalystDefault ./app;$(Python) pre.py --name app</PreCommands>
- <Command>$(Python) test.py sod --scenario-name "%(Identity)"</Command>
- <PostCommands>$(Python) post.py</PostCommands>
- </HelixWorkItem>
- <HelixWorkItem Include="SOD - Maui iOS Podcast IPA Size" Condition="'$(iOSLlvmBuild)' == 'False'">
- <PayloadDirectory>$(WorkItemDirectory)</PayloadDirectory>
- <PreCommands>cd $(ScenarioDirectory)mauiios;cp $HELIX_CORRELATION_PAYLOAD/MauiiOSPodcast.ipa .;$(Python) pre.py --name MauiiOSPodcast.ipa</PreCommands>
- <Command>$(Python) test.py sod --scenario-name "%(Identity)"</Command>
- <PostCommands>$(Python) post.py</PostCommands>
- </HelixWorkItem>
- <HelixWorkItem Include="SOD - Maui iOS Podcast IPA Size Unzipped" Condition="'$(iOSLlvmBuild)' == 'False'">
- <PayloadDirectory>$(WorkItemDirectory)</PayloadDirectory>
- <PreCommands>cd $(ScenarioDirectory)mauiios;cp $HELIX_CORRELATION_PAYLOAD/MauiiOSPodcast.ipa .;$(Python) pre.py --unzip --name MauiiOSPodcast.ipa</PreCommands>
- <Command>$(Python) test.py sod --scenario-name "%(Identity)"</Command>
- <PostCommands>$(Python) post.py</PostCommands>
- </HelixWorkItem>
- <XHarnessAppBundleToTest Include="Device Startup - iOS Maui Default" Condition="'$(iOSLlvmBuild)' == 'False'">
- <AppBundlePath>$(WorkItemDirectory).zip</AppBundlePath>
- <WorkItemTimeout>00:15:00</WorkItemTimeout>
- <TestTarget>ios-device</TestTarget>
- <CustomCommands>
- <![CDATA[
- # PreCommands
- export XHARNESSPATH=$XHARNESS_CLI_PATH
-
- cp -r $HELIX_CORRELATION_PAYLOAD/MauiTesting.app $(ScenarioDirectory)mauiios/MauiTesting.app
- cp -f embedded.mobileprovision $(ScenarioDirectory)mauiios/MauiTesting.app
- cd $(ScenarioDirectory)mauiios
- sign MauiTesting.app
-
- $(Python) pre.py --name MauiTesting.app
-
- # Testing commands
- $(Python) test.py devicestartup --device-type ios --package-path MauiTesting.app --package-name net.dot.mauitesting --scenario-name "%(Identity)"
- ((result=$?))
-
- # Post commands
- $(Python) post.py
- exit $result
- ]]>
- </CustomCommands>
- </XHarnessAppBundleToTest>
- <XHarnessAppBundleToTest Include="Device Startup - iOS Maui Blazor Default" Condition="'$(iOSLlvmBuild)' == 'False'">
- <AppBundlePath>$(WorkItemDirectory).zip</AppBundlePath>
- <WorkItemTimeout>00:15:00</WorkItemTimeout>
- <TestTarget>ios-device</TestTarget>
- <CustomCommands>
- <![CDATA[
- # PreCommands
- export XHARNESSPATH=$XHARNESS_CLI_PATH
-
- cp -r $HELIX_CORRELATION_PAYLOAD/MauiBlazorTesting.app $(ScenarioDirectory)mauiblazorios/MauiBlazorTesting.app
- cp -f embedded.mobileprovision $(ScenarioDirectory)mauiblazorios/MauiBlazorTesting.app
- cd $(ScenarioDirectory)mauiblazorios
- sign MauiBlazorTesting.app
-
- $(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__ --startup-iterations 5
- ((result=$?))
-
- # Post commands
- $(Python) post.py
- exit $result
- ]]>
- </CustomCommands>
- </XHarnessAppBundleToTest>
- <XHarnessAppBundleToTest Include="Device Startup - iOS Maui Podcast" Condition="'$(iOSLlvmBuild)' == 'False'">
- <AppBundlePath>$(WorkItemDirectory).zip</AppBundlePath>
- <WorkItemTimeout>00:15:00</WorkItemTimeout>
- <TestTarget>ios-device</TestTarget>
- <CustomCommands>
- <![CDATA[
- # PreCommands
- export XHARNESSPATH=$XHARNESS_CLI_PATH
-
- cp -r $HELIX_CORRELATION_PAYLOAD/Microsoft.NetConf2021.Maui.app $(ScenarioDirectory)mauiios/Microsoft.NetConf2021.Maui.app
- cp -f embedded.mobileprovision $(ScenarioDirectory)mauiios/Microsoft.NetConf2021.Maui.app
- cd $(ScenarioDirectory)mauiios
- sign Microsoft.NetConf2021.Maui.app
-
- $(Python) pre.py --name Microsoft.NetConf2021.Maui.app
-
- # Testing commands
- $(Python) test.py devicestartup --device-type ios --package-path Microsoft.NetConf2021.Maui.app --package-name net.dot.netconf2021.maui --scenario-name "%(Identity)"
- ((result=$?))
-
- # Post commands
- $(Python) post.py
- exit $result
- ]]>
- </CustomCommands>
- </XHarnessAppBundleToTest>
- </ItemGroup>
- <!--
- This target is to work around the XHarness command that depend on scripts in ORIGPYPATH
- being run before we get to run our normal Post commands. AddXHarnessCLI is the XHarness
- Target so we just make sure we add this after that.
- -->
- <Target Name="ResetPYTHONPATHBeforeXHarnessCommand" AfterTargets="AddXHarnessCLI">
- <PropertyGroup>
- <HelixPostCommands>export PYTHONPATH=$ORIGPYPATH;$(HelixPostCommands)</HelixPostCommands>
- </PropertyGroup>
- </Target>
-</Project>
if [[ "$iosmono" == "true" ]]; then
if [[ "$iosllvmbuild" == "True" ]]; then
- if [[ "$kind" != "ios_scenarios_net6" ]]; then
- # LLVM Mono .app
- mkdir -p $payload_directory/iosHelloWorld && cp -rv $source_directory/iosHelloWorld/llvm $payload_directory/iosHelloWorld
- mkdir -p $payload_directory/iosHelloWorldZip/llvmzip && cp -rv $source_directory/iosHelloWorldZip/llvmzip $payload_directory/iosHelloWorldZip
- fi
+ # LLVM Mono .app
+ mkdir -p $payload_directory/iosHelloWorld && cp -rv $source_directory/iosHelloWorld/llvm $payload_directory/iosHelloWorld
+ mkdir -p $payload_directory/iosHelloWorldZip/llvmzip && cp -rv $source_directory/iosHelloWorldZip/llvmzip $payload_directory/iosHelloWorldZip
else
- # NoLLVM Mono .app, Maui iOS IPA, Maui Maccatalyst, Maui iOS Podcast IPA
- if [[ "$kind" != "ios_scenarios_net6" ]]; then
- mkdir -p $payload_directory/iosHelloWorld && cp -rv $source_directory/iosHelloWorld/nollvm $payload_directory/iosHelloWorld
- mkdir -p $payload_directory/iosHelloWorldZip/nollvmzip && cp -rv $source_directory/iosHelloWorldZip/nollvmzip $payload_directory/iosHelloWorldZip
- fi
- 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
- mv $source_directory/MauiiOSPodcastIPA/Payload/Microsoft.NetConf2021.Maui.app $payload_directory/
+ # NoLLVM Mono .app
+ mkdir -p $payload_directory/iosHelloWorld && cp -rv $source_directory/iosHelloWorld/nollvm $payload_directory/iosHelloWorld
+ mkdir -p $payload_directory/iosHelloWorldZip/nollvmzip && cp -rv $source_directory/iosHelloWorldZip/nollvmzip $payload_directory/iosHelloWorldZip
fi
fi