diff --git a/eng/pipelines/coreclr/perf-non-wasm-jobs.yml b/eng/pipelines/coreclr/perf-non-wasm-jobs.yml
index e926a63f532da3..89f2bda0dd7c72 100644
--- a/eng/pipelines/coreclr/perf-non-wasm-jobs.yml
+++ b/eng/pipelines/coreclr/perf-non-wasm-jobs.yml
@@ -228,7 +228,7 @@ jobs:
jobParameters:
testGroup: perf
runtimeType: iOSNativeAOT
- projectFile: ios_nativeaot_scenarios.proj
+ projectFile: ios_scenarios.proj
runKind: ios_scenarios
runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml
logicalmachine: 'perfiphone12mini'
@@ -244,7 +244,7 @@ jobs:
jobParameters:
testGroup: perf
runtimeType: iOSNativeAOT
- projectFile: ios_nativeaot_scenarios.proj
+ projectFile: ios_scenarios.proj
runKind: ios_scenarios
runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml
logicalmachine: 'perfiphone12mini'
diff --git a/eng/pipelines/coreclr/templates/perf-job.yml b/eng/pipelines/coreclr/templates/perf-job.yml
index e6590143cf5ed0..cf5cd73eecb2c1 100644
--- a/eng/pipelines/coreclr/templates/perf-job.yml
+++ b/eng/pipelines/coreclr/templates/perf-job.yml
@@ -228,113 +228,51 @@ jobs:
artifactName: 'AndroidBDNApk'
displayName: 'Mono Android BDN Apk'
- # Download iOSMono tests
- - ${{ if eq(parameters.runtimeType, 'iOSMono') }}:
- - ${{ if and(eq(parameters.iOSLlvmBuild, 'False'), eq(parameters.iOSStripSymbols, 'False')) }}:
- - template: /eng/pipelines/common/download-artifact-step.yml
- parameters:
- unpackFolder: $(Build.SourcesDirectory)/iosHelloWorld/nollvmsymbols
- cleanUnpackFolder: false
- artifactFileName: 'iOSSampleAppNoLLVMSymbols.zip'
- artifactName: 'iOSSampleAppNoLLVMSymbols'
- displayName: 'iOS Sample App NoLLVM Symbols'
- # same artifact as above but don't extract .zip
- - task: DownloadBuildArtifacts@0
- displayName: 'Download iOS Sample App NoLLVM Symbols'
- inputs:
- buildType: current
- downloadType: single
- downloadPath: '$(Build.SourcesDirectory)/iosHelloWorldZip/nollvmsymbolszip'
+ # Download iOSMono and Native AOT tests
+ - ${{ if or(eq(parameters.runtimeType, 'iOSMono'), eq(parameters.runtimeType, 'iOSNativeAOT')) }}:
+ - template: /eng/pipelines/common/download-artifact-step.yml
+ parameters:
+ unpackFolder: $(Build.SourcesDirectory)/iosHelloWorld
+ cleanUnpackFolder: false
+ ${{ if and(eq(parameters.runtimeType, 'iOSMono'), eq(parameters.iOSLlvmBuild, 'False'), eq(parameters.iOSStripSymbols, 'False')) }}:
artifactName: 'iOSSampleAppNoLLVMSymbols'
- checkDownloadedFiles: true
- - ${{ if and(eq(parameters.iOSLlvmBuild, 'True'), eq(parameters.iOSStripSymbols, 'False')) }}:
- - template: /eng/pipelines/common/download-artifact-step.yml
- parameters:
- unpackFolder: $(Build.SourcesDirectory)/iosHelloWorld/llvmsymbols
- cleanUnpackFolder: false
- artifactFileName: 'iOSSampleAppLLVMSymbols.zip'
- artifactName: 'iOSSampleAppLLVMSymbols'
- displayName: 'iOS Sample App LLVM Symbols'
- # same artifact as above but don't extract .zip
- - task: DownloadBuildArtifacts@0
- displayName: 'Download iOS Sample App LLVM Symbols'
- inputs:
- buildType: current
- downloadType: single
- downloadPath: '$(Build.SourcesDirectory)/iosHelloWorldZip/llvmsymbolszip'
- artifactName: 'iOSSampleAppLLVMSymbols'
- checkDownloadedFiles: true
- - ${{ if and(eq(parameters.iOSLlvmBuild, 'False'), eq(parameters.iOSStripSymbols, 'True')) }}:
- - template: /eng/pipelines/common/download-artifact-step.yml
- parameters:
- unpackFolder: $(Build.SourcesDirectory)/iosHelloWorld/nollvmnosymbols
- cleanUnpackFolder: false
- artifactFileName: 'iOSSampleAppNoLLVMNoSymbols.zip'
- artifactName: 'iOSSampleAppNoLLVMNoSymbols'
- displayName: 'iOS Sample App NoLLVM NoSymbols'
- # same artifact as above but don't extract .zip
- - task: DownloadBuildArtifacts@0
- displayName: 'Download iOS Sample App NoLLVM NoSymbols'
- inputs:
- buildType: current
- downloadType: single
- downloadPath: '$(Build.SourcesDirectory)/iosHelloWorldZip/nollvmnosymbolszip'
+ artifactFileName: 'iOSSampleAppNoLLVMSymbols.zip'
+ ${{ if and(eq(parameters.runtimeType, 'iOSMono'), eq(parameters.iOSLlvmBuild, 'False'), eq(parameters.iOSStripSymbols, 'True')) }}:
artifactName: 'iOSSampleAppNoLLVMNoSymbols'
- checkDownloadedFiles: true
- - ${{ if and(eq(parameters.iOSLlvmBuild, 'True'), eq(parameters.iOSStripSymbols, 'True')) }}:
- - template: /eng/pipelines/common/download-artifact-step.yml
- parameters:
- unpackFolder: $(Build.SourcesDirectory)/iosHelloWorld/llvmnosymbols
- cleanUnpackFolder: false
- artifactFileName: 'iOSSampleAppLLVMNoSymbols.zip'
- artifactName: 'iOSSampleAppLLVMNoSymbols'
- displayName: 'iOS Sample App LLVM NoSymbols'
- # same artifact as above but don't extract .zip
- - task: DownloadBuildArtifacts@0
- displayName: 'Download iOS Sample App LLVM NoSymbols'
- inputs:
- buildType: current
- downloadType: single
- downloadPath: '$(Build.SourcesDirectory)/iosHelloWorldZip/llvmnosymbolszip'
+ artifactFileName: 'iOSSampleAppNoLLVMNoSymbols.zip'
+ ${{ if and(eq(parameters.runtimeType, 'iOSMono'), eq(parameters.iOSLlvmBuild, 'True'), eq(parameters.iOSStripSymbols, 'False')) }}:
+ artifactName: 'iOSSampleAppLLVMSymbols'
+ artifactFileName: 'iOSSampleAppLLVMSymbols.zip'
+ ${{ if and(eq(parameters.runtimeType, 'iOSMono'), eq(parameters.iOSLlvmBuild, 'True'), eq(parameters.iOSStripSymbols, 'True')) }}:
artifactName: 'iOSSampleAppLLVMNoSymbols'
- checkDownloadedFiles: true
-
- # Download iOSNativeAOT tests
- - ${{ if eq(parameters.runtimeType, 'iOSNativeAOT') }}:
- - ${{ if eq(parameters.iOSStripSymbols, 'False') }}:
- - template: /eng/pipelines/common/download-artifact-step.yml
- parameters:
- unpackFolder: $(Build.SourcesDirectory)/iosHelloWorld/symbols
- cleanUnpackFolder: false
- artifactFileName: 'iOSSampleAppSymbols.zip'
+ artifactFileName: 'iOSSampleAppLLVMNoSymbols.zip'
+ ${{ if and(eq(parameters.runtimeType, 'iOSNativeAOT'), eq(parameters.iOSStripSymbols, 'False')) }}:
artifactName: 'iOSSampleAppSymbols'
- displayName: 'iOS Sample App Symbols'
+ artifactFileName: 'iOSSampleAppSymbols.zip'
+ ${{ if and(eq(parameters.runtimeType, 'iOSNativeAOT'), eq(parameters.iOSStripSymbols, 'True')) }}:
+ artifactName: 'iOSSampleAppNoSymbols'
+ artifactFileName: 'iOSSampleAppNoSymbols.zip'
+ displayName: 'iOS Sample App'
# same artifact as above but don't extract .zip
- task: DownloadBuildArtifacts@0
- displayName: 'Download iOS Sample App Symbols'
+ displayName: 'Download iOS Sample App'
inputs:
buildType: current
downloadType: single
- downloadPath: '$(Build.SourcesDirectory)/iosHelloWorldZip/symbols'
- artifactName: 'iOSSampleAppSymbols'
- checkDownloadedFiles: true
- - ${{ if eq(parameters.iOSStripSymbols, 'True') }}:
- - template: /eng/pipelines/common/download-artifact-step.yml
- parameters:
- unpackFolder: $(Build.SourcesDirectory)/iosHelloWorld/nosymbols
- cleanUnpackFolder: false
- artifactFileName: 'iOSSampleAppNoSymbols.zip'
- artifactName: 'iOSSampleAppNoSymbols'
- displayName: 'iOS Sample App NoSymbols'
- # same artifact as above but don't extract .zip
- - task: DownloadBuildArtifacts@0
- displayName: 'Download iOS Sample App NoSymbols'
- inputs:
- buildType: current
- downloadType: single
- downloadPath: '$(Build.SourcesDirectory)/iosHelloWorldZip/nosymbols'
+ downloadPath: '$(Build.SourcesDirectory)/iosHelloWorldZip'
+ ${{ if and(eq(parameters.runtimeType, 'iOSMono'), eq(parameters.iOSLlvmBuild, 'False'), eq(parameters.iOSStripSymbols, 'False')) }}:
+ artifactName: 'iOSSampleAppNoLLVMSymbols'
+ ${{ if and(eq(parameters.runtimeType, 'iOSMono'), eq(parameters.iOSLlvmBuild, 'False'), eq(parameters.iOSStripSymbols, 'True')) }}:
+ artifactName: 'iOSSampleAppNoLLVMNoSymbols'
+ ${{ if and(eq(parameters.runtimeType, 'iOSMono'), eq(parameters.iOSLlvmBuild, 'True'), eq(parameters.iOSStripSymbols, 'False')) }}:
+ artifactName: 'iOSSampleAppLLVMSymbols'
+ ${{ if and(eq(parameters.runtimeType, 'iOSMono'), eq(parameters.iOSLlvmBuild, 'True'), eq(parameters.iOSStripSymbols, 'True')) }}:
+ artifactName: 'iOSSampleAppLLVMNoSymbols'
+ ${{ if and(eq(parameters.runtimeType, 'iOSNativeAOT'), eq(parameters.iOSStripSymbols, 'False')) }}:
+ artifactName: 'iOSSampleAppSymbols'
+ ${{ if and(eq(parameters.runtimeType, 'iOSNativeAOT'), eq(parameters.iOSStripSymbols, 'True')) }}:
artifactName: 'iOSSampleAppNoSymbols'
- checkDownloadedFiles: true
+ checkDownloadedFiles: true
# Create Core_Root
- script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) $(buildConfig) $(archType) generatelayoutonly $(librariesOverrideArg) $(_crossBuildPropertyArg)
diff --git a/eng/testing/performance/ios_nativeaot_scenarios.proj b/eng/testing/performance/ios_nativeaot_scenarios.proj
deleted file mode 100644
index a63547110a999f..00000000000000
--- a/eng/testing/performance/ios_nativeaot_scenarios.proj
+++ /dev/null
@@ -1,70 +0,0 @@
-
-
- true
-
-
- python3
- $(HelixPreCommands);chmod +x $HELIX_WORKITEM_PAYLOAD/SOD/SizeOnDisk
- $(HelixPreCommands);chmod +x $HELIX_WORKITEM_PAYLOAD/startup/Startup
-
-
-
-
- %(Identity)
-
-
-
-
- symbols
- nosymbols
-
-
-
- %HELIX_CORRELATION_PAYLOAD%\performance\src\scenarios\
-
-
-
- $HELIX_CORRELATION_PAYLOAD/performance/src/scenarios/
-
-
-
-
- $(WorkItemDirectory)
- cd $(ScenarioDirectory)helloios;cp -rf $HELIX_CORRELATION_PAYLOAD/iosHelloWorld/$(SymbolsPath) ./app;$(Python) pre.py --name app
- $(Python) test.py sod --scenario-name "%(Identity)"
- $(Python) post.py
-
-
- $(WorkItemDirectory)
- cd $(ScenarioDirectory)helloios;cp -v $HELIX_CORRELATION_PAYLOAD/iosHelloWorldZip/$(SymbolsPath)zip/iOSSampleApp$(SymbolsPath)/iOSSampleApp$(SymbolsPath).zip .;$(Python) pre.py --name iOSSampleApp$(SymbolsPath).zip
- $(Python) test.py sod --scenario-name "%(Identity)"
- $(Python) post.py
-
-
- $(WorkItemDirectory).zip
- 00:15:00
- ios-device
-
-
-
-
-
-
diff --git a/eng/testing/performance/ios_scenarios.proj b/eng/testing/performance/ios_scenarios.proj
index a7af7348bc1930..3801fd935d96f8 100644
--- a/eng/testing/performance/ios_scenarios.proj
+++ b/eng/testing/performance/ios_scenarios.proj
@@ -30,19 +30,19 @@
-
+
$(WorkItemDirectory)
- cd $(ScenarioDirectory)helloios;cp -rf $HELIX_CORRELATION_PAYLOAD/iosHelloWorld/$(LlvmPath)$(SymbolsPath) ./app;$(Python) pre.py --name app
+ cd $(ScenarioDirectory)helloios;cp -rf $HELIX_CORRELATION_PAYLOAD/iosHelloWorld ./app;$(Python) pre.py --name app
$(Python) test.py sod --scenario-name "%(Identity)"
$(Python) post.py
-
+
$(WorkItemDirectory)
- cd $(ScenarioDirectory)helloios;cp -v $HELIX_CORRELATION_PAYLOAD/iosHelloWorldZip/$(LlvmPath)$(SymbolsPath)zip/iOSSampleApp$(LlvmPath)$(SymbolsPath)/iOSSampleApp$(LlvmPath)$(SymbolsPath).zip .;$(Python) pre.py --name iOSSampleApp$(LlvmPath)$(SymbolsPath).zip
+ cd $(ScenarioDirectory)helloios;cp -v $HELIX_CORRELATION_PAYLOAD/iosHelloWorldZip/iOSSampleApp.zip .;$(Python) pre.py --name iOSSampleApp.zip
$(Python) test.py sod --scenario-name "%(Identity)"
$(Python) post.py
-
+
$(WorkItemDirectory).zip
00:15:00
ios-device
@@ -51,7 +51,7 @@
# PreCommands
export XHARNESSPATH=$XHARNESS_CLI_PATH
- cp -r $HELIX_CORRELATION_PAYLOAD/iosHelloWorld/$(LlvmPath)$(SymbolsPath)/HelloiOS.app $(ScenarioDirectory)helloios/HelloiOS.app
+ cp -r $HELIX_CORRELATION_PAYLOAD/iosHelloWorld/iosHelloWorld/HelloiOS.app $(ScenarioDirectory)helloios/HelloiOS.app
cp -f embedded.mobileprovision $(ScenarioDirectory)helloios/HelloiOS.app
cd $(ScenarioDirectory)helloios
sign HelloiOS.app
diff --git a/eng/testing/performance/performance-setup.sh b/eng/testing/performance/performance-setup.sh
index 3c64e65aa7a3a5..a07577129e875b 100755
--- a/eng/testing/performance/performance-setup.sh
+++ b/eng/testing/performance/performance-setup.sh
@@ -36,9 +36,10 @@ use_latest_dotnet=false
logical_machine=
javascript_engine="v8"
iosmono=false
+iosnativeaot=false
+runtimetype=""
iosllvmbuild=""
iosstripsymbols=""
-iosnativeaot=false
maui_version=""
use_local_commit_time=false
only_sanity=false
@@ -341,12 +342,14 @@ if [[ "$monoaot" == "true" ]]; then
fi
if [[ "$iosmono" == "true" ]]; then
- configurations="$configurations iOSLlvmBuild=$iosllvmbuild iOSStripSymbols=$iosstripsymbols"
+ runtimetype="Mono"
+ configurations="$configurations iOSLlvmBuild=$iosllvmbuild iOSStripSymbols=$iosstripsymbols RuntimeType=$runtimetype"
extra_benchmark_dotnet_arguments="$extra_benchmark_dotnet_arguments"
fi
if [[ "$iosnativeaot" == "true" ]]; then
- configurations="$configurations iOSStripSymbols=$iosstripsymbols"
+ runtimetype="NativeAOT"
+ configurations="$configurations iOSStripSymbols=$iosstripsymbols RuntimeType=$runtimetype"
extra_benchmark_dotnet_arguments="$extra_benchmark_dotnet_arguments"
fi
@@ -453,40 +456,11 @@ if [[ "$use_baseline_core_run" == true ]]; then
mv $baseline_core_root_directory $new_baseline_core_root
fi
-if [[ "$iosmono" == "true" ]]; then
- if [[ "$iosllvmbuild" == "True" ]]; then
- if [[ "$iosstripsymbols" == "True" ]]; then
- # LLVM NoSymbols Mono .app
- mkdir -p $payload_directory/iosHelloWorld && cp -rv $source_directory/iosHelloWorld/llvmnosymbols $payload_directory/iosHelloWorld
- mkdir -p $payload_directory/iosHelloWorldZip/llvmnosymbolszip && cp -rv $source_directory/iosHelloWorldZip/llvmnosymbolszip $payload_directory/iosHelloWorldZip
- else
- # LLVM Symbols Mono .app
- mkdir -p $payload_directory/iosHelloWorld && cp -rv $source_directory/iosHelloWorld/llvmsymbols $payload_directory/iosHelloWorld
- mkdir -p $payload_directory/iosHelloWorldZip/llvmsymbolszip && cp -rv $source_directory/iosHelloWorldZip/llvmsymbolszip $payload_directory/iosHelloWorldZip
- fi
- else
- if [[ "$iosstripsymbols" == "True" ]]; then
- # NoLLVM NoSymbols Mono .app
- mkdir -p $payload_directory/iosHelloWorld && cp -rv $source_directory/iosHelloWorld/nollvmnosymbols $payload_directory/iosHelloWorld
- mkdir -p $payload_directory/iosHelloWorldZip/nollvmnosymbolszip && cp -rv $source_directory/iosHelloWorldZip/nollvmnosymbolszip $payload_directory/iosHelloWorldZip
- else
- # NoLLVM Symbols Mono .app
- mkdir -p $payload_directory/iosHelloWorld && cp -rv $source_directory/iosHelloWorld/nollvmsymbols $payload_directory/iosHelloWorld
- mkdir -p $payload_directory/iosHelloWorldZip/nollvmsymbolszip && cp -rv $source_directory/iosHelloWorldZip/nollvmsymbolszip $payload_directory/iosHelloWorldZip
- fi
- fi
-fi
+if [[ "$iosmono" == "true" || "$iosnativeaot" == "true" ]]; then
+ mkdir -p $payload_directory/iosHelloWorld && cp -rv $source_directory/iosHelloWorld $payload_directory/iosHelloWorld
+ mkdir -p $payload_directory/iosHelloWorldZip && cp -rv $source_directory/iosHelloWorldZip $payload_directory/iosHelloWorldZip
-if [[ "$iosnativeaot" == "true" ]]; then
- if [[ "$iosstripsymbols" == "True" ]]; then
- # NoSymbols Mono .app
- mkdir -p $payload_directory/iosHelloWorld && cp -rv $source_directory/iosHelloWorld/nosymbols $payload_directory/iosHelloWorld
- mkdir -p $payload_directory/iosHelloWorldZip/nosymbolszip && cp -rv $source_directory/iosHelloWorldZip/nosymbolszip $payload_directory/iosHelloWorldZip
- else
- # NoSymbols Mono .app
- mkdir -p $payload_directory/iosHelloWorld && cp -rv $source_directory/iosHelloWorld/symbols $payload_directory/iosHelloWorld
- mkdir -p $payload_directory/iosHelloWorldZip/symbolszip && cp -rv $source_directory/iosHelloWorldZip/symbolszip $payload_directory/iosHelloWorldZip
- fi
+ find "$payload_directory/iosHelloWorldZip/" -type f -name "*.zip" -execdir mv {} "$payload_directory/iosHelloWorldZip/iOSSampleApp.zip" \;
fi
ci=true
@@ -521,6 +495,7 @@ Write-PipelineSetVariable -name "MonoDotnet" -value "$using_mono" -is_multi_job_
Write-PipelineSetVariable -name "WasmDotnet" -value "$using_wasm" -is_multi_job_variable false
Write-PipelineSetVariable -Name 'iOSLlvmBuild' -Value "$iosllvmbuild" -is_multi_job_variable false
Write-PipelineSetVariable -Name 'iOSStripSymbols' -Value "$iosstripsymbols" -is_multi_job_variable false
+Write-PipelineSetVariable -Name 'RuntimeType' -Value "$runtimetype" -is_multi_job_variable false
Write-PipelineSetVariable -name "OnlySanityCheck" -value "$only_sanity" -is_multi_job_variable false
# Put it back to what was set on top of this script