From e53fdd25bc92bf3abbd37ec680d643063982b9bb Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Fri, 2 Jun 2023 11:25:52 +0200 Subject: [PATCH 01/15] Update bundle zip path for NativeAOT sample app --- eng/pipelines/coreclr/templates/perf-job.yml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/eng/pipelines/coreclr/templates/perf-job.yml b/eng/pipelines/coreclr/templates/perf-job.yml index e6590143cf5ed0..409c70db97ee80 100644 --- a/eng/pipelines/coreclr/templates/perf-job.yml +++ b/eng/pipelines/coreclr/templates/perf-job.yml @@ -309,15 +309,15 @@ jobs: artifactFileName: 'iOSSampleAppSymbols.zip' artifactName: 'iOSSampleAppSymbols' displayName: 'iOS Sample App Symbols' - # same artifact as above but don't extract .zip - - task: DownloadBuildArtifacts@0 - displayName: 'Download iOS Sample App Symbols' - inputs: - buildType: current - downloadType: single - downloadPath: '$(Build.SourcesDirectory)/iosHelloWorldZip/symbols' - artifactName: 'iOSSampleAppSymbols' - checkDownloadedFiles: true + # same artifact as above but don't extract .zip + - task: DownloadBuildArtifacts@0 + displayName: 'Download iOS Sample App Symbols' + inputs: + buildType: current + downloadType: single + downloadPath: '$(Build.SourcesDirectory)/iosHelloWorldZip/symbolszip' + artifactName: 'iOSSampleAppSymbols' + checkDownloadedFiles: true - ${{ if eq(parameters.iOSStripSymbols, 'True') }}: - template: /eng/pipelines/common/download-artifact-step.yml parameters: @@ -332,7 +332,7 @@ jobs: inputs: buildType: current downloadType: single - downloadPath: '$(Build.SourcesDirectory)/iosHelloWorldZip/nosymbols' + downloadPath: '$(Build.SourcesDirectory)/iosHelloWorldZip/nosymbolszip' artifactName: 'iOSSampleAppNoSymbols' checkDownloadedFiles: true From 599971d7c0a41773841e4daed4f046078edcf918 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Fri, 2 Jun 2023 11:37:59 +0200 Subject: [PATCH 02/15] Test perf pipeline --- eng/pipelines/coreclr/perf-non-wasm-jobs.yml | 768 +++++++++---------- eng/pipelines/coreclr/perf.yml | 14 +- 2 files changed, 391 insertions(+), 391 deletions(-) diff --git a/eng/pipelines/coreclr/perf-non-wasm-jobs.yml b/eng/pipelines/coreclr/perf-non-wasm-jobs.yml index e926a63f532da3..933522a9e584a5 100644 --- a/eng/pipelines/coreclr/perf-non-wasm-jobs.yml +++ b/eng/pipelines/coreclr/perf-non-wasm-jobs.yml @@ -1,106 +1,106 @@ jobs: -- ${{ if and(ne(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'Schedule')) }}: +# - ${{ if and(ne(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'Schedule')) }}: - # build mono - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/mono/templates/build-job.yml - runtimeFlavor: mono - buildConfig: release - platforms: - - linux_x64 +# # build mono +# - template: /eng/pipelines/common/platform-matrix.yml +# parameters: +# jobTemplate: /eng/pipelines/mono/templates/build-job.yml +# runtimeFlavor: mono +# buildConfig: release +# platforms: +# - linux_x64 - # 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 - 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 +# jobParameters: +# testGroup: perf -- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'Schedule')) }}: +# - ${{ 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 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 - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: release - runtimeFlavor: mono - platforms: - - android_arm64 - jobParameters: - buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - nameSuffix: AndroidMono - isOfficialBuild: false - extraStepsTemplate: /eng/pipelines/coreclr/templates/build-perf-sample-apps.yml - extraStepsParameters: - rootFolder: '$(Build.SourcesDirectory)/artifacts/' - includeRootFolder: true - displayName: Android Mono Artifacts - artifactName: AndroidMonoarm64 - archiveExtension: '.tar.gz' - archiveType: tar - tarCompression: gz + # # build mono Android scenarios + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # buildConfig: release + # runtimeFlavor: mono + # platforms: + # - android_arm64 + # jobParameters: + # buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + # nameSuffix: AndroidMono + # isOfficialBuild: false + # extraStepsTemplate: /eng/pipelines/coreclr/templates/build-perf-sample-apps.yml + # extraStepsParameters: + # rootFolder: '$(Build.SourcesDirectory)/artifacts/' + # includeRootFolder: true + # displayName: Android Mono Artifacts + # artifactName: AndroidMonoarm64 + # archiveExtension: '.tar.gz' + # archiveType: tar + # tarCompression: gz - # build mono iOS scenarios - - 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+libs+host+packs -c $(_BuildConfig) - nameSuffix: iOSMono - isOfficialBuild: false - extraStepsTemplate: /eng/pipelines/coreclr/templates/build-perf-sample-apps.yml - extraStepsParameters: - rootFolder: '$(Build.SourcesDirectory)/artifacts/' - includeRootFolder: true - displayName: iOS Mono Artifacts - artifactName: iOSMonoarm64 - archiveExtension: '.tar.gz' - archiveType: tar - tarCompression: gz + # # build mono iOS scenarios + # - 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+libs+host+packs -c $(_BuildConfig) + # nameSuffix: iOSMono + # isOfficialBuild: false + # extraStepsTemplate: /eng/pipelines/coreclr/templates/build-perf-sample-apps.yml + # extraStepsParameters: + # rootFolder: '$(Build.SourcesDirectory)/artifacts/' + # includeRootFolder: true + # displayName: iOS Mono Artifacts + # artifactName: iOSMonoarm64 + # archiveExtension: '.tar.gz' + # archiveType: tar + # tarCompression: gz # build NativeAOT iOS scenarios - template: /eng/pipelines/common/platform-matrix.yml @@ -123,99 +123,99 @@ jobs: archiveType: tar tarCompression: gz - # build mono - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/mono/templates/build-job.yml - runtimeFlavor: mono - buildConfig: release - platforms: - - linux_x64 + # # build mono + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/mono/templates/build-job.yml + # runtimeFlavor: mono + # buildConfig: release + # platforms: + # - linux_x64 - # run android scenarios - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - buildConfig: release - runtimeFlavor: mono - platforms: - - windows_x64 - jobParameters: - testGroup: perf - runtimeType: AndroidMono - projectFile: android_scenarios.proj - runKind: android_scenarios - runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml - logicalmachine: 'perfpixel4a' + # # run android scenarios + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + # buildConfig: release + # runtimeFlavor: mono + # platforms: + # - windows_x64 + # jobParameters: + # testGroup: perf + # runtimeType: AndroidMono + # projectFile: android_scenarios.proj + # runKind: android_scenarios + # runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml + # logicalmachine: 'perfpixel4a' - # run mono iOS scenarios scenarios - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - buildConfig: release - runtimeFlavor: mono - platforms: - - osx_x64 - jobParameters: - testGroup: perf - runtimeType: iOSMono - projectFile: ios_scenarios.proj - runKind: ios_scenarios - runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml - logicalmachine: 'perfiphone12mini' - iOSLlvmBuild: False - iOSStripSymbols: False + # # run mono iOS scenarios scenarios + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + # buildConfig: release + # runtimeFlavor: mono + # platforms: + # - osx_x64 + # jobParameters: + # testGroup: perf + # runtimeType: iOSMono + # projectFile: ios_scenarios.proj + # runKind: ios_scenarios + # runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml + # logicalmachine: 'perfiphone12mini' + # iOSLlvmBuild: False + # iOSStripSymbols: False - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - buildConfig: release - runtimeFlavor: mono - platforms: - - osx_x64 - jobParameters: - testGroup: perf - runtimeType: iOSMono - projectFile: ios_scenarios.proj - runKind: ios_scenarios - runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml - logicalmachine: 'perfiphone12mini' - iOSLlvmBuild: False - iOSStripSymbols: True + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + # buildConfig: release + # runtimeFlavor: mono + # platforms: + # - osx_x64 + # jobParameters: + # testGroup: perf + # runtimeType: iOSMono + # projectFile: ios_scenarios.proj + # runKind: ios_scenarios + # runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml + # logicalmachine: 'perfiphone12mini' + # iOSLlvmBuild: False + # iOSStripSymbols: True - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - buildConfig: release - runtimeFlavor: mono - platforms: - - osx_x64 - jobParameters: - testGroup: perf - runtimeType: iOSMono - projectFile: ios_scenarios.proj - runKind: ios_scenarios - runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml - logicalmachine: 'perfiphone12mini' - iOSLlvmBuild: True - iOSStripSymbols: False + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + # buildConfig: release + # runtimeFlavor: mono + # platforms: + # - osx_x64 + # jobParameters: + # testGroup: perf + # runtimeType: iOSMono + # projectFile: ios_scenarios.proj + # runKind: ios_scenarios + # runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml + # logicalmachine: 'perfiphone12mini' + # iOSLlvmBuild: True + # iOSStripSymbols: False - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - buildConfig: release - runtimeFlavor: mono - platforms: - - osx_x64 - jobParameters: - testGroup: perf - runtimeType: iOSMono - projectFile: ios_scenarios.proj - runKind: ios_scenarios - runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml - logicalmachine: 'perfiphone12mini' - iOSLlvmBuild: True - iOSStripSymbols: True + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + # buildConfig: release + # runtimeFlavor: mono + # platforms: + # - osx_x64 + # jobParameters: + # testGroup: perf + # runtimeType: iOSMono + # projectFile: ios_scenarios.proj + # runKind: ios_scenarios + # runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml + # logicalmachine: 'perfiphone12mini' + # iOSLlvmBuild: True + # iOSStripSymbols: True # run NativeAOT iOS scenarios - template: /eng/pipelines/common/platform-matrix.yml @@ -250,216 +250,216 @@ jobs: logicalmachine: 'perfiphone12mini' iOSStripSymbols: 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 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: - - linux_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: + # - linux_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' - # build mono runtime packs - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: release - runtimeFlavor: mono - platforms: - - android_arm64 - jobParameters: - buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - nameSuffix: Mono_Packs - isOfficialBuild: false - extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml - extraStepsParameters: - name: MonoRuntimePacks + # # build mono runtime packs + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # buildConfig: release + # runtimeFlavor: mono + # platforms: + # - android_arm64 + # jobParameters: + # buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + # nameSuffix: Mono_Packs + # isOfficialBuild: false + # extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml + # extraStepsParameters: + # name: MonoRuntimePacks - # build PerfBDN app - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: release - runtimeFlavor: mono - platforms: - - ios_arm64 - jobParameters: - dependsOn: - - Build_android_arm64_release_Mono_Packs - buildArgs: -s mono -c $(_BuildConfig) - nameSuffix: PerfBDNApp - isOfficialBuild: false - pool: - vmImage: 'macos-12' - extraStepsTemplate: /eng/pipelines/coreclr/templates/build-perf-bdn-app.yml - extraStepsParameters: - rootFolder: '$(Build.SourcesDirectory)/artifacts/' - includeRootFolder: true - displayName: Android BDN App Artifacts - artifactName: PerfBDNAppArm - archiveExtension: '.tar.gz' - archiveType: tar - tarCompression: gz + # # build PerfBDN app + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # buildConfig: release + # runtimeFlavor: mono + # platforms: + # - ios_arm64 + # jobParameters: + # dependsOn: + # - Build_android_arm64_release_Mono_Packs + # buildArgs: -s mono -c $(_BuildConfig) + # nameSuffix: PerfBDNApp + # isOfficialBuild: false + # pool: + # vmImage: 'macos-12' + # extraStepsTemplate: /eng/pipelines/coreclr/templates/build-perf-bdn-app.yml + # extraStepsParameters: + # rootFolder: '$(Build.SourcesDirectory)/artifacts/' + # includeRootFolder: true + # displayName: Android BDN App Artifacts + # artifactName: PerfBDNAppArm + # archiveExtension: '.tar.gz' + # archiveType: tar + # tarCompression: gz diff --git a/eng/pipelines/coreclr/perf.yml b/eng/pipelines/coreclr/perf.yml index ae734cbfdaa76d..04e90898d76f75 100644 --- a/eng/pipelines/coreclr/perf.yml +++ b/eng/pipelines/coreclr/perf.yml @@ -42,12 +42,12 @@ extends: - stage: Build jobs: - - template: /eng/pipelines/coreclr/perf-wasm-jobs.yml - parameters: - collectHelixLogsScript: ${{ variables._wasmCollectHelixLogsScript }} - ${{ and(ne(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'Schedule')) }}: - runProfile: 'non-v8' - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'Schedule')) }}: - runProfile: 'v8' + # - template: /eng/pipelines/coreclr/perf-wasm-jobs.yml + # parameters: + # collectHelixLogsScript: ${{ variables._wasmCollectHelixLogsScript }} + # ${{ and(ne(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'Schedule')) }}: + # runProfile: 'non-v8' + # ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'Schedule')) }}: + # runProfile: 'v8' - template: /eng/pipelines/coreclr/perf-non-wasm-jobs.yml From 904b59236a270b604d5645d6d66fe0b691d113a3 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Fri, 2 Jun 2023 12:19:00 +0200 Subject: [PATCH 03/15] Add shared path for Mono and Native AOT --- eng/pipelines/coreclr/perf-non-wasm-jobs.yml | 176 +++++++++---------- eng/pipelines/coreclr/templates/perf-job.yml | 136 ++++---------- eng/testing/performance/ios_scenarios.proj | 14 +- eng/testing/performance/performance-setup.sh | 37 +--- 4 files changed, 133 insertions(+), 230 deletions(-) diff --git a/eng/pipelines/coreclr/perf-non-wasm-jobs.yml b/eng/pipelines/coreclr/perf-non-wasm-jobs.yml index 933522a9e584a5..cacb1e6b056798 100644 --- a/eng/pipelines/coreclr/perf-non-wasm-jobs.yml +++ b/eng/pipelines/coreclr/perf-non-wasm-jobs.yml @@ -80,27 +80,27 @@ jobs: # archiveType: tar # tarCompression: gz - # # build mono iOS scenarios - # - 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+libs+host+packs -c $(_BuildConfig) - # nameSuffix: iOSMono - # isOfficialBuild: false - # extraStepsTemplate: /eng/pipelines/coreclr/templates/build-perf-sample-apps.yml - # extraStepsParameters: - # rootFolder: '$(Build.SourcesDirectory)/artifacts/' - # includeRootFolder: true - # displayName: iOS Mono Artifacts - # artifactName: iOSMonoarm64 - # archiveExtension: '.tar.gz' - # archiveType: tar - # tarCompression: gz + # build mono iOS scenarios + - 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+libs+host+packs -c $(_BuildConfig) + nameSuffix: iOSMono + isOfficialBuild: false + extraStepsTemplate: /eng/pipelines/coreclr/templates/build-perf-sample-apps.yml + extraStepsParameters: + rootFolder: '$(Build.SourcesDirectory)/artifacts/' + includeRootFolder: true + displayName: iOS Mono Artifacts + artifactName: iOSMonoarm64 + archiveExtension: '.tar.gz' + archiveType: tar + tarCompression: gz # build NativeAOT iOS scenarios - template: /eng/pipelines/common/platform-matrix.yml @@ -148,74 +148,74 @@ jobs: # runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml # logicalmachine: 'perfpixel4a' - # # run mono iOS scenarios scenarios - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - # buildConfig: release - # runtimeFlavor: mono - # platforms: - # - osx_x64 - # jobParameters: - # testGroup: perf - # runtimeType: iOSMono - # projectFile: ios_scenarios.proj - # runKind: ios_scenarios - # runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml - # logicalmachine: 'perfiphone12mini' - # iOSLlvmBuild: False - # iOSStripSymbols: False + # run mono iOS scenarios scenarios + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + buildConfig: release + runtimeFlavor: mono + platforms: + - osx_x64 + jobParameters: + testGroup: perf + runtimeType: iOSMono + projectFile: ios_scenarios.proj + runKind: ios_scenarios + runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml + logicalmachine: 'perfiphone12mini' + iOSLlvmBuild: False + iOSStripSymbols: False - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - # buildConfig: release - # runtimeFlavor: mono - # platforms: - # - osx_x64 - # jobParameters: - # testGroup: perf - # runtimeType: iOSMono - # projectFile: ios_scenarios.proj - # runKind: ios_scenarios - # runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml - # logicalmachine: 'perfiphone12mini' - # iOSLlvmBuild: False - # iOSStripSymbols: True + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + buildConfig: release + runtimeFlavor: mono + platforms: + - osx_x64 + jobParameters: + testGroup: perf + runtimeType: iOSMono + projectFile: ios_scenarios.proj + runKind: ios_scenarios + runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml + logicalmachine: 'perfiphone12mini' + iOSLlvmBuild: False + iOSStripSymbols: True - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - # buildConfig: release - # runtimeFlavor: mono - # platforms: - # - osx_x64 - # jobParameters: - # testGroup: perf - # runtimeType: iOSMono - # projectFile: ios_scenarios.proj - # runKind: ios_scenarios - # runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml - # logicalmachine: 'perfiphone12mini' - # iOSLlvmBuild: True - # iOSStripSymbols: False + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + buildConfig: release + runtimeFlavor: mono + platforms: + - osx_x64 + jobParameters: + testGroup: perf + runtimeType: iOSMono + projectFile: ios_scenarios.proj + runKind: ios_scenarios + runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml + logicalmachine: 'perfiphone12mini' + iOSLlvmBuild: True + iOSStripSymbols: False - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - # buildConfig: release - # runtimeFlavor: mono - # platforms: - # - osx_x64 - # jobParameters: - # testGroup: perf - # runtimeType: iOSMono - # projectFile: ios_scenarios.proj - # runKind: ios_scenarios - # runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml - # logicalmachine: 'perfiphone12mini' - # iOSLlvmBuild: True - # iOSStripSymbols: True + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + buildConfig: release + runtimeFlavor: mono + platforms: + - osx_x64 + jobParameters: + testGroup: perf + runtimeType: iOSMono + projectFile: ios_scenarios.proj + runKind: ios_scenarios + runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml + logicalmachine: 'perfiphone12mini' + iOSLlvmBuild: True + iOSStripSymbols: True # run NativeAOT iOS scenarios - template: /eng/pipelines/common/platform-matrix.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 409c70db97ee80..8c4e74142d4017 100644 --- a/eng/pipelines/coreclr/templates/perf-job.yml +++ b/eng/pipelines/coreclr/templates/perf-job.yml @@ -228,113 +228,45 @@ 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 + # Download iOSMono and Native AOT tests + - template: /eng/pipelines/common/download-artifact-step.yml + parameters: + unpackFolder: $(Build.SourcesDirectory)/iosHelloWorld + cleanUnpackFolder: false + artifactFileName: 'iOSSampleApp.zip' + artifactName: 'iOSSampleApp' + - ${{ if and(eq(parameters.runtimeType, 'iOSMono'), eq(parameters.iOSLlvmBuild, 'False'), eq(parameters.iOSStripSymbols, 'False')) }}: + displayName: 'iOS Sample App NoLLVM Symbols' + - ${{ if and(eq(parameters.runtimeType, 'iOSMono'), eq(parameters.iOSLlvmBuild, 'False'), eq(parameters.iOSStripSymbols, 'True')) }}: + displayName: 'iOS Sample App NoLLVM NoSymbols' + - ${{ if and(eq(parameters.runtimeType, 'iOSMono'), eq(parameters.iOSLlvmBuild, 'True'), eq(parameters.iOSStripSymbols, 'False')) }}: + displayName: 'iOS Sample App LLVM Symbols' + - ${{ if and(eq(parameters.runtimeType, 'iOSMono'), eq(parameters.iOSLlvmBuild, 'True'), eq(parameters.iOSStripSymbols, 'True')) }}: + displayName: 'iOS Sample App LLVM NoSymbols' + - ${{ if and(eq(parameters.runtimeType, 'iOSNativeAOT'), eq(parameters.iOSStripSymbols, 'False')) }}: + displayName: 'iOS Sample App Symbols' + - ${{ if and(eq(parameters.runtimeType, 'iOSNativeAOT'), eq(parameters.iOSStripSymbols, 'True')) }}: + displayName: 'iOS Sample App NoSymbols' + # same artifact as above but don't extract .zip + - task: DownloadBuildArtifacts@0 + - ${{ if and(eq(parameters.runtimeType, 'iOSMono'), eq(parameters.iOSLlvmBuild, 'False'), eq(parameters.iOSStripSymbols, 'False')) }}: displayName: 'Download iOS Sample App NoLLVM Symbols' - inputs: - buildType: current - downloadType: single - downloadPath: '$(Build.SourcesDirectory)/iosHelloWorldZip/nollvmsymbolszip' - 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 + - ${{ if and(eq(parameters.runtimeType, 'iOSMono'), eq(parameters.iOSLlvmBuild, 'False'), eq(parameters.iOSStripSymbols, 'True')) }}: displayName: 'Download iOS Sample App NoLLVM NoSymbols' - inputs: - buildType: current - downloadType: single - downloadPath: '$(Build.SourcesDirectory)/iosHelloWorldZip/nollvmnosymbolszip' - 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 + - ${{ if and(eq(parameters.runtimeType, 'iOSMono'), eq(parameters.iOSLlvmBuild, 'True'), eq(parameters.iOSStripSymbols, 'False')) }}: + displayName: 'Download iOS Sample App LLVM Symbols' + - ${{ if and(eq(parameters.runtimeType, 'iOSMono'), eq(parameters.iOSLlvmBuild, 'True'), eq(parameters.iOSStripSymbols, 'True')) }}: displayName: 'Download iOS Sample App LLVM NoSymbols' - inputs: - buildType: current - downloadType: single - downloadPath: '$(Build.SourcesDirectory)/iosHelloWorldZip/llvmnosymbolszip' - 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' - artifactName: 'iOSSampleAppSymbols' - displayName: 'iOS Sample App Symbols' - # same artifact as above but don't extract .zip - - task: DownloadBuildArtifacts@0 + - ${{ if and(eq(parameters.runtimeType, 'iOSNativeAOT'), eq(parameters.iOSStripSymbols, 'False')) }}: displayName: 'Download iOS Sample App Symbols' - inputs: - buildType: current - downloadType: single - downloadPath: '$(Build.SourcesDirectory)/iosHelloWorldZip/symbolszip' - 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 + - ${{ if and(eq(parameters.runtimeType, 'iOSNativeAOT'), eq(parameters.iOSStripSymbols, 'True')) }}: displayName: 'Download iOS Sample App NoSymbols' - inputs: - buildType: current - downloadType: single - downloadPath: '$(Build.SourcesDirectory)/iosHelloWorldZip/nosymbolszip' - artifactName: 'iOSSampleAppNoSymbols' - checkDownloadedFiles: true + inputs: + buildType: current + downloadType: single + downloadPath: '$(Build.SourcesDirectory)/iosHelloWorldZip' + artifactName: 'iOSSampleApp' + checkDownloadedFiles: true # Create Core_Root - script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) $(buildConfig) $(archType) generatelayoutonly $(librariesOverrideArg) $(_crossBuildPropertyArg) diff --git a/eng/testing/performance/ios_scenarios.proj b/eng/testing/performance/ios_scenarios.proj index a7af7348bc1930..5318858cc45d09 100644 --- a/eng/testing/performance/ios_scenarios.proj +++ b/eng/testing/performance/ios_scenarios.proj @@ -19,6 +19,8 @@ llvm symbols nosymbols + Mono + Native AOT @@ -30,19 +32,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/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 +53,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/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..49e5a1c9b28fdb 100755 --- a/eng/testing/performance/performance-setup.sh +++ b/eng/testing/performance/performance-setup.sh @@ -453,40 +453,9 @@ 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 [[ "$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 +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 fi ci=true From 402e656327f8319b5d28b7d46cc30f2385c8da9f Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Fri, 2 Jun 2023 12:22:14 +0200 Subject: [PATCH 04/15] Use common display name --- eng/pipelines/coreclr/templates/perf-job.yml | 53 ++++++-------------- 1 file changed, 16 insertions(+), 37 deletions(-) diff --git a/eng/pipelines/coreclr/templates/perf-job.yml b/eng/pipelines/coreclr/templates/perf-job.yml index 8c4e74142d4017..4c06e6b10b00f6 100644 --- a/eng/pipelines/coreclr/templates/perf-job.yml +++ b/eng/pipelines/coreclr/templates/perf-job.yml @@ -229,44 +229,23 @@ jobs: displayName: 'Mono Android BDN Apk' # Download iOSMono and Native AOT tests - - template: /eng/pipelines/common/download-artifact-step.yml - parameters: - unpackFolder: $(Build.SourcesDirectory)/iosHelloWorld - cleanUnpackFolder: false - artifactFileName: 'iOSSampleApp.zip' - artifactName: 'iOSSampleApp' - - ${{ if and(eq(parameters.runtimeType, 'iOSMono'), eq(parameters.iOSLlvmBuild, 'False'), eq(parameters.iOSStripSymbols, 'False')) }}: - displayName: 'iOS Sample App NoLLVM Symbols' - - ${{ if and(eq(parameters.runtimeType, 'iOSMono'), eq(parameters.iOSLlvmBuild, 'False'), eq(parameters.iOSStripSymbols, 'True')) }}: - displayName: 'iOS Sample App NoLLVM NoSymbols' - - ${{ if and(eq(parameters.runtimeType, 'iOSMono'), eq(parameters.iOSLlvmBuild, 'True'), eq(parameters.iOSStripSymbols, 'False')) }}: - displayName: 'iOS Sample App LLVM Symbols' - - ${{ if and(eq(parameters.runtimeType, 'iOSMono'), eq(parameters.iOSLlvmBuild, 'True'), eq(parameters.iOSStripSymbols, 'True')) }}: - displayName: 'iOS Sample App LLVM NoSymbols' - - ${{ if and(eq(parameters.runtimeType, 'iOSNativeAOT'), eq(parameters.iOSStripSymbols, 'False')) }}: - displayName: 'iOS Sample App Symbols' - - ${{ if and(eq(parameters.runtimeType, 'iOSNativeAOT'), eq(parameters.iOSStripSymbols, 'True')) }}: - displayName: 'iOS Sample App NoSymbols' - # same artifact as above but don't extract .zip - - task: DownloadBuildArtifacts@0 - - ${{ if and(eq(parameters.runtimeType, 'iOSMono'), eq(parameters.iOSLlvmBuild, 'False'), eq(parameters.iOSStripSymbols, 'False')) }}: - displayName: 'Download iOS Sample App NoLLVM Symbols' - - ${{ if and(eq(parameters.runtimeType, 'iOSMono'), eq(parameters.iOSLlvmBuild, 'False'), eq(parameters.iOSStripSymbols, 'True')) }}: - displayName: 'Download iOS Sample App NoLLVM NoSymbols' - - ${{ if and(eq(parameters.runtimeType, 'iOSMono'), eq(parameters.iOSLlvmBuild, 'True'), eq(parameters.iOSStripSymbols, 'False')) }}: - displayName: 'Download iOS Sample App LLVM Symbols' - - ${{ if and(eq(parameters.runtimeType, 'iOSMono'), eq(parameters.iOSLlvmBuild, 'True'), eq(parameters.iOSStripSymbols, 'True')) }}: - displayName: 'Download iOS Sample App LLVM NoSymbols' - - ${{ if and(eq(parameters.runtimeType, 'iOSNativeAOT'), eq(parameters.iOSStripSymbols, 'False')) }}: - displayName: 'Download iOS Sample App Symbols' - - ${{ if and(eq(parameters.runtimeType, 'iOSNativeAOT'), eq(parameters.iOSStripSymbols, 'True')) }}: - displayName: 'Download iOS Sample App NoSymbols' - inputs: - buildType: current - downloadType: single - downloadPath: '$(Build.SourcesDirectory)/iosHelloWorldZip' + - ${{ 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 + artifactFileName: 'iOSSampleApp.zip' artifactName: 'iOSSampleApp' - checkDownloadedFiles: true + displayName: 'iOS Sample App' + # same artifact as above but don't extract .zip + - task: DownloadBuildArtifacts@0 + displayName: 'Download iOS Sample App' + inputs: + buildType: current + downloadType: single + downloadPath: '$(Build.SourcesDirectory)/iosHelloWorldZip' + artifactName: 'iOSSampleApp' + checkDownloadedFiles: true # Create Core_Root - script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) $(buildConfig) $(archType) generatelayoutonly $(librariesOverrideArg) $(_crossBuildPropertyArg) From c0c2a887901e96af596c5a016900ced00dae672f Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Fri, 2 Jun 2023 12:24:02 +0200 Subject: [PATCH 05/15] Use common display name --- eng/pipelines/coreclr/templates/perf-job.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/coreclr/templates/perf-job.yml b/eng/pipelines/coreclr/templates/perf-job.yml index 4c06e6b10b00f6..1a989b11d1ab20 100644 --- a/eng/pipelines/coreclr/templates/perf-job.yml +++ b/eng/pipelines/coreclr/templates/perf-job.yml @@ -229,7 +229,7 @@ jobs: displayName: 'Mono Android BDN Apk' # Download iOSMono and Native AOT tests - - ${{ if or(eq(parameters.runtimeType, 'iOSMono'), eq(parameters.runtimeType, 'iOSNativeAOT') }}: + - ${{ if or(eq(parameters.runtimeType, 'iOSMono'), eq(parameters.runtimeType, 'iOSNativeAOT')) }}: - template: /eng/pipelines/common/download-artifact-step.yml parameters: unpackFolder: $(Build.SourcesDirectory)/iosHelloWorld From a24ba9225db9abd1ab84ba623c521acef6a239a2 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Fri, 2 Jun 2023 12:24:50 +0200 Subject: [PATCH 06/15] Use common display name --- eng/pipelines/coreclr/templates/perf-job.yml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/eng/pipelines/coreclr/templates/perf-job.yml b/eng/pipelines/coreclr/templates/perf-job.yml index 1a989b11d1ab20..e1ee8ba4f4ac6d 100644 --- a/eng/pipelines/coreclr/templates/perf-job.yml +++ b/eng/pipelines/coreclr/templates/perf-job.yml @@ -237,15 +237,15 @@ jobs: artifactFileName: 'iOSSampleApp.zip' artifactName: 'iOSSampleApp' displayName: 'iOS Sample App' - # same artifact as above but don't extract .zip - - task: DownloadBuildArtifacts@0 - displayName: 'Download iOS Sample App' - inputs: - buildType: current - downloadType: single - downloadPath: '$(Build.SourcesDirectory)/iosHelloWorldZip' - artifactName: 'iOSSampleApp' - checkDownloadedFiles: true + # same artifact as above but don't extract .zip + - task: DownloadBuildArtifacts@0 + displayName: 'Download iOS Sample App' + inputs: + buildType: current + downloadType: single + downloadPath: '$(Build.SourcesDirectory)/iosHelloWorldZip' + artifactName: 'iOSSampleApp' + checkDownloadedFiles: true # Create Core_Root - script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) $(buildConfig) $(archType) generatelayoutonly $(librariesOverrideArg) $(_crossBuildPropertyArg) From c6466522891fd182a5ef7a2ef3b0122a5268653b Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Fri, 2 Jun 2023 13:36:15 +0200 Subject: [PATCH 07/15] Parametrize bundle download step --- eng/pipelines/coreclr/templates/perf-job.yml | 26 ++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/eng/pipelines/coreclr/templates/perf-job.yml b/eng/pipelines/coreclr/templates/perf-job.yml index e1ee8ba4f4ac6d..fc755461992824 100644 --- a/eng/pipelines/coreclr/templates/perf-job.yml +++ b/eng/pipelines/coreclr/templates/perf-job.yml @@ -235,7 +235,18 @@ jobs: unpackFolder: $(Build.SourcesDirectory)/iosHelloWorld cleanUnpackFolder: false artifactFileName: 'iOSSampleApp.zip' - artifactName: 'iOSSampleApp' + - ${{ 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' displayName: 'iOS Sample App' # same artifact as above but don't extract .zip - task: DownloadBuildArtifacts@0 @@ -244,7 +255,18 @@ jobs: buildType: current downloadType: single downloadPath: '$(Build.SourcesDirectory)/iosHelloWorldZip' - artifactName: 'iOSSampleApp' + - ${{ 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 # Create Core_Root From d0763db6b5d45b8be843ff48bd455ad52ef059f6 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Fri, 2 Jun 2023 13:39:49 +0200 Subject: [PATCH 08/15] Parametrize bundle download step --- eng/pipelines/coreclr/templates/perf-job.yml | 22 ++++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/eng/pipelines/coreclr/templates/perf-job.yml b/eng/pipelines/coreclr/templates/perf-job.yml index fc755461992824..c27c1201fee16d 100644 --- a/eng/pipelines/coreclr/templates/perf-job.yml +++ b/eng/pipelines/coreclr/templates/perf-job.yml @@ -236,17 +236,17 @@ jobs: cleanUnpackFolder: false artifactFileName: 'iOSSampleApp.zip' - ${{ if and(eq(parameters.runtimeType, 'iOSMono'), eq(parameters.iOSLlvmBuild, 'False'), eq(parameters.iOSStripSymbols, 'False')) }}: - artifactName: 'iOSSampleAppNoLLVMSymbols' + artifactName: 'iOSSampleAppNoLLVMSymbols' - ${{ if and(eq(parameters.runtimeType, 'iOSMono'), eq(parameters.iOSLlvmBuild, 'False'), eq(parameters.iOSStripSymbols, 'True')) }}: - artifactName: 'iOSSampleAppNoLLVMNoSymbols' + artifactName: 'iOSSampleAppNoLLVMNoSymbols' - ${{ if and(eq(parameters.runtimeType, 'iOSMono'), eq(parameters.iOSLlvmBuild, 'True'), eq(parameters.iOSStripSymbols, 'False')) }}: - artifactName: 'iOSSampleAppLLVMSymbols' + artifactName: 'iOSSampleAppLLVMSymbols' - ${{ if and(eq(parameters.runtimeType, 'iOSMono'), eq(parameters.iOSLlvmBuild, 'True'), eq(parameters.iOSStripSymbols, 'True')) }}: - artifactName: 'iOSSampleAppLLVMNoSymbols' + artifactName: 'iOSSampleAppLLVMNoSymbols' - ${{ if and(eq(parameters.runtimeType, 'iOSNativeAOT'), eq(parameters.iOSStripSymbols, 'False')) }}: - artifactName: 'iOSSampleAppSymbols' + artifactName: 'iOSSampleAppSymbols' - ${{ if and(eq(parameters.runtimeType, 'iOSNativeAOT'), eq(parameters.iOSStripSymbols, 'True')) }}: - artifactName: 'iOSSampleAppNoSymbols' + artifactName: 'iOSSampleAppNoSymbols' displayName: 'iOS Sample App' # same artifact as above but don't extract .zip - task: DownloadBuildArtifacts@0 @@ -256,17 +256,17 @@ jobs: downloadType: single downloadPath: '$(Build.SourcesDirectory)/iosHelloWorldZip' - ${{ if and(eq(parameters.runtimeType, 'iOSMono'), eq(parameters.iOSLlvmBuild, 'False'), eq(parameters.iOSStripSymbols, 'False')) }}: - artifactName: 'iOSSampleAppNoLLVMSymbols' + artifactName: 'iOSSampleAppNoLLVMSymbols' - ${{ if and(eq(parameters.runtimeType, 'iOSMono'), eq(parameters.iOSLlvmBuild, 'False'), eq(parameters.iOSStripSymbols, 'True')) }}: - artifactName: 'iOSSampleAppNoLLVMNoSymbols' + artifactName: 'iOSSampleAppNoLLVMNoSymbols' - ${{ if and(eq(parameters.runtimeType, 'iOSMono'), eq(parameters.iOSLlvmBuild, 'True'), eq(parameters.iOSStripSymbols, 'False')) }}: - artifactName: 'iOSSampleAppLLVMSymbols' + 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' + artifactName: 'iOSSampleAppSymbols' - ${{ if and(eq(parameters.runtimeType, 'iOSNativeAOT'), eq(parameters.iOSStripSymbols, 'True')) }}: - artifactName: 'iOSSampleAppNoSymbols' + artifactName: 'iOSSampleAppNoSymbols' checkDownloadedFiles: true # Create Core_Root From 779a8aa11c7f174bdf2365a155ac08cd80e779f6 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Fri, 2 Jun 2023 13:41:26 +0200 Subject: [PATCH 09/15] Parametrize bundle download step --- eng/pipelines/coreclr/templates/perf-job.yml | 46 ++++++++++---------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/eng/pipelines/coreclr/templates/perf-job.yml b/eng/pipelines/coreclr/templates/perf-job.yml index c27c1201fee16d..ec533a4e0c4491 100644 --- a/eng/pipelines/coreclr/templates/perf-job.yml +++ b/eng/pipelines/coreclr/templates/perf-job.yml @@ -235,18 +235,18 @@ jobs: unpackFolder: $(Build.SourcesDirectory)/iosHelloWorld cleanUnpackFolder: false artifactFileName: 'iOSSampleApp.zip' - - ${{ 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' + ${{ 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' displayName: 'iOS Sample App' # same artifact as above but don't extract .zip - task: DownloadBuildArtifacts@0 @@ -255,18 +255,18 @@ jobs: buildType: current downloadType: single 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')) }}: + ${{ 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' + ${{ 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 # Create Core_Root From d596c725d032829c0f9dcc4f4f5621075af7fd20 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Fri, 2 Jun 2023 16:17:43 +0200 Subject: [PATCH 10/15] Parametrize bundle download step --- eng/pipelines/coreclr/templates/perf-job.yml | 7 ++++++- eng/testing/performance/ios_scenarios.proj | 2 +- eng/testing/performance/performance-setup.sh | 2 ++ 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/eng/pipelines/coreclr/templates/perf-job.yml b/eng/pipelines/coreclr/templates/perf-job.yml index ec533a4e0c4491..cf5cd73eecb2c1 100644 --- a/eng/pipelines/coreclr/templates/perf-job.yml +++ b/eng/pipelines/coreclr/templates/perf-job.yml @@ -234,19 +234,24 @@ jobs: parameters: unpackFolder: $(Build.SourcesDirectory)/iosHelloWorld cleanUnpackFolder: false - artifactFileName: 'iOSSampleApp.zip' ${{ if and(eq(parameters.runtimeType, 'iOSMono'), eq(parameters.iOSLlvmBuild, 'False'), eq(parameters.iOSStripSymbols, 'False')) }}: artifactName: 'iOSSampleAppNoLLVMSymbols' + artifactFileName: 'iOSSampleAppNoLLVMSymbols.zip' ${{ if and(eq(parameters.runtimeType, 'iOSMono'), eq(parameters.iOSLlvmBuild, 'False'), eq(parameters.iOSStripSymbols, 'True')) }}: artifactName: 'iOSSampleAppNoLLVMNoSymbols' + 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' + artifactFileName: 'iOSSampleAppLLVMNoSymbols.zip' ${{ if and(eq(parameters.runtimeType, 'iOSNativeAOT'), eq(parameters.iOSStripSymbols, 'False')) }}: artifactName: 'iOSSampleAppSymbols' + 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 diff --git a/eng/testing/performance/ios_scenarios.proj b/eng/testing/performance/ios_scenarios.proj index 5318858cc45d09..0468065750af4b 100644 --- a/eng/testing/performance/ios_scenarios.proj +++ b/eng/testing/performance/ios_scenarios.proj @@ -40,7 +40,7 @@ $(WorkItemDirectory) - cd $(ScenarioDirectory)helloios;cp -v $HELIX_CORRELATION_PAYLOAD/iosHelloWorldZip/iOSSampleApp/iOSSampleApp.zip .;$(Python) pre.py --name iOSSampleApp.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 diff --git a/eng/testing/performance/performance-setup.sh b/eng/testing/performance/performance-setup.sh index 49e5a1c9b28fdb..921f7cffa067a6 100755 --- a/eng/testing/performance/performance-setup.sh +++ b/eng/testing/performance/performance-setup.sh @@ -456,6 +456,8 @@ 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 + + find "$payload_directory/iosHelloWorldZip/" -type f -name "*.zip" -execdir mv {} "$payload_directory/iosHelloWorldZip/iOSSampleApp.zip" fi ci=true From 851dbd8b46678d5e50554f190cd72b57a0ced7f1 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Fri, 2 Jun 2023 17:30:03 +0200 Subject: [PATCH 11/15] Update Helix item name and fix find command --- eng/testing/performance/ios_scenarios.proj | 8 +++----- eng/testing/performance/performance-setup.sh | 2 +- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/eng/testing/performance/ios_scenarios.proj b/eng/testing/performance/ios_scenarios.proj index 0468065750af4b..e8fddc067290bc 100644 --- a/eng/testing/performance/ios_scenarios.proj +++ b/eng/testing/performance/ios_scenarios.proj @@ -19,8 +19,6 @@ llvm symbols nosymbols - Mono - Native AOT @@ -32,19 +30,19 @@ - + $(WorkItemDirectory) 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/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 diff --git a/eng/testing/performance/performance-setup.sh b/eng/testing/performance/performance-setup.sh index 921f7cffa067a6..8f43f516e02445 100755 --- a/eng/testing/performance/performance-setup.sh +++ b/eng/testing/performance/performance-setup.sh @@ -457,7 +457,7 @@ 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 - find "$payload_directory/iosHelloWorldZip/" -type f -name "*.zip" -execdir mv {} "$payload_directory/iosHelloWorldZip/iOSSampleApp.zip" + find "$payload_directory/iosHelloWorldZip/" -type f -name "*.zip" -execdir mv {} "$payload_directory/iosHelloWorldZip/iOSSampleApp.zip" \; fi ci=true From 4bc3259215957ea494c4823fae950e98999718d4 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Fri, 2 Jun 2023 18:43:07 +0200 Subject: [PATCH 12/15] Update Helix item name and fix bundle path --- eng/testing/performance/ios_scenarios.proj | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/eng/testing/performance/ios_scenarios.proj b/eng/testing/performance/ios_scenarios.proj index e8fddc067290bc..2f239c601946af 100644 --- a/eng/testing/performance/ios_scenarios.proj +++ b/eng/testing/performance/ios_scenarios.proj @@ -19,6 +19,9 @@ llvm symbols nosymbols + nollvm + Mono AOT + Native AOT @@ -30,19 +33,19 @@ - + $(WorkItemDirectory) 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/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 +54,7 @@ # PreCommands export XHARNESSPATH=$XHARNESS_CLI_PATH - cp -r $HELIX_CORRELATION_PAYLOAD/iosHelloWorld/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 From 29d3935aab8c3416978104bd2a1131d3e6602c37 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Fri, 2 Jun 2023 20:51:19 +0200 Subject: [PATCH 13/15] Add runtime type parameter --- .../performance/ios_nativeaot_scenarios.proj | 70 ------------------- eng/testing/performance/ios_scenarios.proj | 2 - eng/testing/performance/performance-setup.sh | 10 ++- 3 files changed, 7 insertions(+), 75 deletions(-) delete mode 100644 eng/testing/performance/ios_nativeaot_scenarios.proj 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 2f239c601946af..939e44acacf7c9 100644 --- a/eng/testing/performance/ios_scenarios.proj +++ b/eng/testing/performance/ios_scenarios.proj @@ -20,8 +20,6 @@ symbols nosymbols nollvm - Mono AOT - Native AOT diff --git a/eng/testing/performance/performance-setup.sh b/eng/testing/performance/performance-setup.sh index 8f43f516e02445..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 @@ -492,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 From b16484e05f7bfa230d909651d944e4c6e5102008 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Fri, 2 Jun 2023 23:57:09 +0200 Subject: [PATCH 14/15] Enable other jobs --- eng/pipelines/coreclr/perf-non-wasm-jobs.yml | 596 +++++++++---------- eng/pipelines/coreclr/perf.yml | 14 +- 2 files changed, 305 insertions(+), 305 deletions(-) diff --git a/eng/pipelines/coreclr/perf-non-wasm-jobs.yml b/eng/pipelines/coreclr/perf-non-wasm-jobs.yml index cacb1e6b056798..89f2bda0dd7c72 100644 --- a/eng/pipelines/coreclr/perf-non-wasm-jobs.yml +++ b/eng/pipelines/coreclr/perf-non-wasm-jobs.yml @@ -1,84 +1,84 @@ jobs: -# - ${{ if and(ne(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'Schedule')) }}: +- ${{ if and(ne(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'Schedule')) }}: -# # build mono -# - template: /eng/pipelines/common/platform-matrix.yml -# parameters: -# jobTemplate: /eng/pipelines/mono/templates/build-job.yml -# runtimeFlavor: mono -# buildConfig: release -# platforms: -# - linux_x64 + # build mono + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/mono/templates/build-job.yml + runtimeFlavor: mono + buildConfig: release + platforms: + - linux_x64 -# # 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 -# 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 + jobParameters: + testGroup: perf -# - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'Schedule')) }}: +- ${{ 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 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 - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # buildConfig: release - # runtimeFlavor: mono - # platforms: - # - android_arm64 - # jobParameters: - # buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - # nameSuffix: AndroidMono - # isOfficialBuild: false - # extraStepsTemplate: /eng/pipelines/coreclr/templates/build-perf-sample-apps.yml - # extraStepsParameters: - # rootFolder: '$(Build.SourcesDirectory)/artifacts/' - # includeRootFolder: true - # displayName: Android Mono Artifacts - # artifactName: AndroidMonoarm64 - # archiveExtension: '.tar.gz' - # archiveType: tar - # tarCompression: gz + # build mono Android scenarios + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: release + runtimeFlavor: mono + platforms: + - android_arm64 + jobParameters: + buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + nameSuffix: AndroidMono + isOfficialBuild: false + extraStepsTemplate: /eng/pipelines/coreclr/templates/build-perf-sample-apps.yml + extraStepsParameters: + rootFolder: '$(Build.SourcesDirectory)/artifacts/' + includeRootFolder: true + displayName: Android Mono Artifacts + artifactName: AndroidMonoarm64 + archiveExtension: '.tar.gz' + archiveType: tar + tarCompression: gz # build mono iOS scenarios - template: /eng/pipelines/common/platform-matrix.yml @@ -123,30 +123,30 @@ jobs: archiveType: tar tarCompression: gz - # # build mono - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/mono/templates/build-job.yml - # runtimeFlavor: mono - # buildConfig: release - # platforms: - # - linux_x64 + # build mono + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/mono/templates/build-job.yml + runtimeFlavor: mono + buildConfig: release + platforms: + - linux_x64 - # # run android scenarios - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - # buildConfig: release - # runtimeFlavor: mono - # platforms: - # - windows_x64 - # jobParameters: - # testGroup: perf - # runtimeType: AndroidMono - # projectFile: android_scenarios.proj - # runKind: android_scenarios - # runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml - # logicalmachine: 'perfpixel4a' + # run android scenarios + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + buildConfig: release + runtimeFlavor: mono + platforms: + - windows_x64 + jobParameters: + testGroup: perf + runtimeType: AndroidMono + projectFile: android_scenarios.proj + runKind: android_scenarios + runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml + logicalmachine: 'perfpixel4a' # run mono iOS scenarios scenarios - template: /eng/pipelines/common/platform-matrix.yml @@ -250,216 +250,216 @@ jobs: logicalmachine: 'perfiphone12mini' iOSStripSymbols: 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 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: - # - linux_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: + - linux_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' - # # build mono runtime packs - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # buildConfig: release - # runtimeFlavor: mono - # platforms: - # - android_arm64 - # jobParameters: - # buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - # nameSuffix: Mono_Packs - # isOfficialBuild: false - # extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml - # extraStepsParameters: - # name: MonoRuntimePacks + # build mono runtime packs + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: release + runtimeFlavor: mono + platforms: + - android_arm64 + jobParameters: + buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + nameSuffix: Mono_Packs + isOfficialBuild: false + extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml + extraStepsParameters: + name: MonoRuntimePacks - # # build PerfBDN app - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # buildConfig: release - # runtimeFlavor: mono - # platforms: - # - ios_arm64 - # jobParameters: - # dependsOn: - # - Build_android_arm64_release_Mono_Packs - # buildArgs: -s mono -c $(_BuildConfig) - # nameSuffix: PerfBDNApp - # isOfficialBuild: false - # pool: - # vmImage: 'macos-12' - # extraStepsTemplate: /eng/pipelines/coreclr/templates/build-perf-bdn-app.yml - # extraStepsParameters: - # rootFolder: '$(Build.SourcesDirectory)/artifacts/' - # includeRootFolder: true - # displayName: Android BDN App Artifacts - # artifactName: PerfBDNAppArm - # archiveExtension: '.tar.gz' - # archiveType: tar - # tarCompression: gz + # build PerfBDN app + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: release + runtimeFlavor: mono + platforms: + - ios_arm64 + jobParameters: + dependsOn: + - Build_android_arm64_release_Mono_Packs + buildArgs: -s mono -c $(_BuildConfig) + nameSuffix: PerfBDNApp + isOfficialBuild: false + pool: + vmImage: 'macos-12' + extraStepsTemplate: /eng/pipelines/coreclr/templates/build-perf-bdn-app.yml + extraStepsParameters: + rootFolder: '$(Build.SourcesDirectory)/artifacts/' + includeRootFolder: true + displayName: Android BDN App Artifacts + artifactName: PerfBDNAppArm + archiveExtension: '.tar.gz' + archiveType: tar + tarCompression: gz diff --git a/eng/pipelines/coreclr/perf.yml b/eng/pipelines/coreclr/perf.yml index 04e90898d76f75..ae734cbfdaa76d 100644 --- a/eng/pipelines/coreclr/perf.yml +++ b/eng/pipelines/coreclr/perf.yml @@ -42,12 +42,12 @@ extends: - stage: Build jobs: - # - template: /eng/pipelines/coreclr/perf-wasm-jobs.yml - # parameters: - # collectHelixLogsScript: ${{ variables._wasmCollectHelixLogsScript }} - # ${{ and(ne(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'Schedule')) }}: - # runProfile: 'non-v8' - # ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'Schedule')) }}: - # runProfile: 'v8' + - template: /eng/pipelines/coreclr/perf-wasm-jobs.yml + parameters: + collectHelixLogsScript: ${{ variables._wasmCollectHelixLogsScript }} + ${{ and(ne(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'Schedule')) }}: + runProfile: 'non-v8' + ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'Schedule')) }}: + runProfile: 'v8' - template: /eng/pipelines/coreclr/perf-non-wasm-jobs.yml From 51f4ac05560ab3e88a1ab0f31c0fb85965d3cde5 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Fri, 2 Jun 2023 23:58:41 +0200 Subject: [PATCH 15/15] Remove duplicate property --- eng/testing/performance/ios_scenarios.proj | 1 - 1 file changed, 1 deletion(-) diff --git a/eng/testing/performance/ios_scenarios.proj b/eng/testing/performance/ios_scenarios.proj index 939e44acacf7c9..3801fd935d96f8 100644 --- a/eng/testing/performance/ios_scenarios.proj +++ b/eng/testing/performance/ios_scenarios.proj @@ -19,7 +19,6 @@ llvm symbols nosymbols - nollvm