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