From 0966751c24a0a01ad0c499d3c7da7dc4aae907b4 Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Fri, 17 Sep 2021 11:43:39 -0700 Subject: [PATCH 01/86] Removed runs that we don't want during testing. --- eng/pipelines/coreclr/perf.yml | 846 ++++++++++++++++----------------- 1 file changed, 423 insertions(+), 423 deletions(-) diff --git a/eng/pipelines/coreclr/perf.yml b/eng/pipelines/coreclr/perf.yml index 5726e5ac7c0de..4074c32c19db6 100644 --- a/eng/pipelines/coreclr/perf.yml +++ b/eng/pipelines/coreclr/perf.yml @@ -34,453 +34,453 @@ jobs: - ${{ 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 - # build mono on wasm - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: release - runtimeFlavor: mono - platforms: - - Browser_wasm - jobParameters: - buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - nameSuffix: wasm - isOfficialBuild: false - extraStepsTemplate: /eng/pipelines/common/upload-artifact-step.yml - extraStepsParameters: - rootFolder: '$(Build.SourcesDirectory)/artifacts/' - includeRootFolder: true - displayName: Browser Wasm Artifacts - artifactName: BrowserWasm - archiveType: zip - archiveExtension: .zip +# # build mono on wasm +# - template: /eng/pipelines/common/platform-matrix.yml +# parameters: +# jobTemplate: /eng/pipelines/common/global-build-job.yml +# buildConfig: release +# runtimeFlavor: mono +# platforms: +# - Browser_wasm +# jobParameters: +# buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) +# nameSuffix: wasm +# isOfficialBuild: false +# extraStepsTemplate: /eng/pipelines/common/upload-artifact-step.yml +# extraStepsParameters: +# rootFolder: '$(Build.SourcesDirectory)/artifacts/' +# includeRootFolder: true +# displayName: Browser Wasm Artifacts +# artifactName: BrowserWasm +# archiveType: zip +# archiveExtension: .zip - #run mono wasm 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: wasm - platforms: - - Linux_x64 - jobParameters: - testGroup: perf - liveLibrariesBuildConfig: Release - runtimeType: wasm - codeGenType: 'wasm' - projectFile: microbenchmarks.proj - runKind: micro - runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml - logicalmachine: 'perftiger' - javascriptEngine: 'javascriptcore' +# #run mono wasm 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: wasm +# platforms: +# - Linux_x64 +# jobParameters: +# testGroup: perf +# liveLibrariesBuildConfig: Release +# runtimeType: wasm +# codeGenType: 'wasm' +# projectFile: microbenchmarks.proj +# runKind: micro +# runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml +# logicalmachine: 'perftiger' +# javascriptEngine: 'javascriptcore' - #run mono wasm 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: wasm - platforms: - - linux_x64 - jobparameters: - testgroup: perf - livelibrariesbuildconfig: Release - runtimetype: wasm - codegentype: 'aot' - projectfile: microbenchmarks.proj - runkind: micro - runjobtemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml - logicalmachine: 'perftiger' - javascriptengine: 'javascriptcore' +# #run mono wasm 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: wasm +# platforms: +# - linux_x64 +# jobparameters: +# testgroup: perf +# livelibrariesbuildconfig: Release +# runtimetype: wasm +# codegentype: 'aot' +# projectfile: microbenchmarks.proj +# runkind: micro +# runjobtemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml +# logicalmachine: 'perftiger' +# javascriptengine: 'javascriptcore' -- ${{ 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 on wasm - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: release - runtimeFlavor: mono - platforms: - - Browser_wasm - jobParameters: - buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - nameSuffix: wasm - isOfficialBuild: false - extraStepsTemplate: /eng/pipelines/common/upload-artifact-step.yml - extraStepsParameters: - rootFolder: '$(Build.SourcesDirectory)/artifacts/' - includeRootFolder: true - displayName: Browser Wasm Artifacts - artifactName: BrowserWasm - archiveType: zip - archiveExtension: .zip +# # build mono on wasm +# - template: /eng/pipelines/common/platform-matrix.yml +# parameters: +# jobTemplate: /eng/pipelines/common/global-build-job.yml +# buildConfig: release +# runtimeFlavor: mono +# platforms: +# - Browser_wasm +# jobParameters: +# buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) +# nameSuffix: wasm +# isOfficialBuild: false +# extraStepsTemplate: /eng/pipelines/common/upload-artifact-step.yml +# extraStepsParameters: +# rootFolder: '$(Build.SourcesDirectory)/artifacts/' +# includeRootFolder: true +# displayName: Browser Wasm Artifacts +# artifactName: BrowserWasm +# archiveType: zip +# archiveExtension: .zip - # 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 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 mono 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 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 - - 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: iOSMono - projectFile: ios_scenarios.proj - runKind: ios_scenarios - runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml - logicalmachine: 'perfpixel4a' - iosLlvmBuild: False +# # run mono iOS 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: iOSMono +# projectFile: ios_scenarios.proj +# runKind: ios_scenarios +# runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml +# logicalmachine: 'perfpixel4a' +# iosLlvmBuild: False - - 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: iOSMono - projectFile: ios_scenarios.proj - runKind: ios_scenarios - runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml - logicalmachine: 'perfpixel4a' - iosLlvmBuild: True +# - 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: iOSMono +# projectFile: ios_scenarios.proj +# runKind: ios_scenarios +# runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml +# logicalmachine: 'perfpixel4a' +# iosLlvmBuild: 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 wasm interpreter (default) 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: wasm - platforms: - - Linux_x64 - jobParameters: - testGroup: perf - liveLibrariesBuildConfig: Release - runtimeType: wasm - codeGenType: 'wasm' - projectFile: microbenchmarks.proj - runKind: micro - runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml - logicalmachine: 'perftiger' - javascriptEngine: 'v8' +# # run mono wasm interpreter (default) 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: wasm +# platforms: +# - Linux_x64 +# jobParameters: +# testGroup: perf +# liveLibrariesBuildConfig: Release +# runtimeType: wasm +# codeGenType: 'wasm' +# projectFile: microbenchmarks.proj +# runKind: micro +# runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml +# logicalmachine: 'perftiger' +# javascriptEngine: 'v8' - #run mono wasm 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: wasm - platforms: - - linux_x64 - jobparameters: - testgroup: perf - livelibrariesbuildconfig: Release - runtimetype: wasm - codegentype: 'aot' - projectfile: microbenchmarks.proj - runkind: micro - runjobtemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml - logicalmachine: 'perftiger' - javascriptEngine: 'v8' +# #run mono wasm 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: wasm +# platforms: +# - linux_x64 +# jobparameters: +# testgroup: perf +# livelibrariesbuildconfig: Release +# runtimetype: wasm +# codegentype: 'aot' +# projectfile: microbenchmarks.proj +# runkind: micro +# runjobtemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml +# logicalmachine: 'perftiger' +# javascriptEngine: 'v8' - # 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: - - 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' - # run mono wasm blazor perf job - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - buildConfig: release - runtimeFlavor: wasm - platforms: - - Linux_x64 - jobParameters: - testGroup: perf - liveLibrariesBuildConfig: Release - runtimeType: wasm - projectFile: blazor_perf.proj - runKind: blazor_scenarios - runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml - additionalSetupParameters: '--latestdotnet' - logicalmachine: 'perftiger' +# # run mono wasm blazor perf job +# - template: /eng/pipelines/common/platform-matrix.yml +# parameters: +# jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml +# buildConfig: release +# runtimeFlavor: wasm +# platforms: +# - Linux_x64 +# jobParameters: +# testGroup: perf +# liveLibrariesBuildConfig: Release +# runtimeType: wasm +# projectFile: blazor_perf.proj +# runKind: blazor_scenarios +# runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml +# additionalSetupParameters: '--latestdotnet' +# logicalmachine: 'perftiger' From a16e9d5e2abb7a8d78f58dfd31200a7b67703c78 Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Tue, 28 Sep 2021 10:12:50 -0700 Subject: [PATCH 02/86] First attempt maui build on Mac --- eng/pipelines/coreclr/perf.yml | 22 ++++ .../coreclr/templates/build-perf-maui-app.yml | 106 ++++++++++++++++++ 2 files changed, 128 insertions(+) create mode 100644 eng/pipelines/coreclr/templates/build-perf-maui-app.yml diff --git a/eng/pipelines/coreclr/perf.yml b/eng/pipelines/coreclr/perf.yml index 4074c32c19db6..db81a47d6dafb 100644 --- a/eng/pipelines/coreclr/perf.yml +++ b/eng/pipelines/coreclr/perf.yml @@ -31,6 +31,28 @@ schedules: always: true jobs: +- ${{ if ne(variables['System.TeamProject'], 'public')}}: + # 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: iOSAndroidMaui + isOfficialBuild: false + extraStepsTemplate: /eng/pipelines/coreclr/templates/build-perf-maui-apps.yml + extraStepsParameters: + rootFolder: '$(Build.SourcesDirectory)/artifacts/' + includeRootFolder: true + displayName: iOS and Android Maui Artifacts + artifactName: iOSAndroidMauiArm + archiveExtension: '.tar.gz' + archiveType: tar + tarCompression: gz - ${{ if and(ne(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'Schedule')) }}: diff --git a/eng/pipelines/coreclr/templates/build-perf-maui-app.yml b/eng/pipelines/coreclr/templates/build-perf-maui-app.yml new file mode 100644 index 0000000000000..288adfc3cf46d --- /dev/null +++ b/eng/pipelines/coreclr/templates/build-perf-maui-app.yml @@ -0,0 +1,106 @@ +parameters: + osGroup: '' + osSubgroup: '' + archType: '' + buildConfig: '' + runtimeFlavor: '' + helixQueues: '' + targetRid: '' + nameSuffix: '' + platform: '' + shouldContinueOnError: '' + rootFolder: '' + includeRootFolder: '' + displayName: '' + artifactName: '' + archiveExtension: '' + archiveType: '' + tarCompression: '' + +steps: +# Download latest MAUI +# Update the manifests based on the gated source +# Install the MAUI workload install maui (with proper feeds in the nuget.config) +# Create MAUI Sample app (Do we want this here or lower?) + - script: | + ./dotnet.sh workload update --source https://aka.ms/dotnet/maui/main/index.json + ./dotnet.sh workload install maui --skip-manifest-update + ./dotnet.sh new maui -n MauiTesting + cd MauiTesting + ../dotnet.sh build + + workingDirectory: $(Build.SourcesDirectory) + displayName: Install MAUI + + +# # Build MAUI Android sample app +# - ${{ if eq(parameters.osGroup, 'Android') }}: +# - script: make run MONO_ARCH=arm64 DEPLOY_AND_RUN=false # +# workingDirectory: $(Build.SourcesDirectory) # +# displayName: Build MAUI Android sample app +# # Build the iOS sample app # +# - ${{ if eq(parameters.osGroup, 'iOS') }}: +# - script: make build-appbundle TARGET=iOS MONO_ARCH=arm64 MONO_CONFIG=Release AOT=True USE_LLVM=False DEPLOY_AND_RUN=false # +# env: +# DevTeamProvisioning: '-' # +# workingDirectory: $(Build.SourcesDirectory)/src/mono/sample/iOS # +# displayName: Build HelloiOS AOT sample app LLVM=False # +# - task: PublishBuildArtifacts@1 # +# condition: succeededOrFailed() # +# displayName: 'Publish binlog' # +# inputs: +# pathtoPublish: $(Build.SourcesDirectory)/src/mono/sample/iOS/msbuild.binlog # +# artifactName: ${{ parameters.artifactName }} # +# - template: /eng/pipelines/common/upload-artifact-step.yml +# parameters: +# rootFolder: $(Build.SourcesDirectory)/src/mono/sample/iOS/bin/ios-arm64/publish/app/HelloiOS/Release-iphoneos/HelloiOS.app # +# includeRootFolder: true # +# displayName: iOS Sample App NoLLVM # +# artifactName: iOSSampleAppNoLLVM # +# archiveExtension: '.tar.gz' # +# archiveType: tar # +# tarCompression: gz # +# - script: rm -r -f $(Build.SourcesDirectory)/src/mono/sample/iOS/bin # +# workingDirectory: $(Build.SourcesDirectory)/src/mono/sample/iOS # +# displayName: Clean bindir # +# - script: make build-appbundle TARGET=iOS MONO_ARCH=arm64 MONO_CONFIG=Release AOT=True USE_LLVM=True DEPLOY_AND_RUN=false # +# env: +# DevTeamProvisioning: '-' +# workingDirectory: $(Build.SourcesDirectory)/src/mono/sample/iOS # +# displayName: Build HelloiOS AOT sample app LLVM=True # +# - task: PublishBuildArtifacts@1 # +# condition: succeededOrFailed() # +# displayName: 'Publish binlog' # +# inputs: +# pathtoPublish: $(Build.SourcesDirectory)/src/mono/sample/iOS/msbuild.binlog # +# artifactName: ${{ parameters.artifactName }} # +# - template: /eng/pipelines/common/upload-artifact-step.yml +# parameters: +# rootFolder: $(Build.SourcesDirectory)/src/mono/sample/iOS/bin/ios-arm64/publish/app/HelloiOS/Release-iphoneos/HelloiOS.app # +# includeRootFolder: true # +# displayName: iOS Sample App LLVM # +# artifactName: iOSSampleAppLLVM # +# archiveExtension: '.tar.gz' # +# archiveType: tar # +# tarCompression: gz # + +# - template: /eng/pipelines/common/upload-artifact-step.yml +# parameters: +# osGroup: ${{ parameters.osGroup }} +# osSubgroup: ${{ parameters.osSubgroup }} +# archType: ${{ parameters.archType }} +# buildConfig: ${{ parameters.buildConfig }} +# runtimeFlavor: ${{ parameters.runtimeFlavor }} +# helixQueues: ${{ parameters.helixQueues }} +# targetRid: ${{ parameters.targetRid }} +# nameSuffix: ${{ parameters.nameSuffix }} +# platform: ${{ parameters.platform }} +# shouldContinueOnError: ${{ parameters.shouldContinueOnError }} +# rootFolder: ${{ parameters.rootFolder }} +# includeRootFolder: ${{ parameters.includeRootFolder }} +# displayName: ${{ parameters.displayName }} +# artifactName: ${{ parameters.artifactName }} +# archiveExtension: ${{ parameters.archiveExtension }} +# archiveType: ${{ parameters.archiveType }} +# tarCompression: ${{ parameters.tarCompression }} + \ No newline at end of file From ad45d966dc0fe1ba9b733a036dd097d0a2278ad2 Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Tue, 28 Sep 2021 10:16:14 -0700 Subject: [PATCH 03/86] Added in rollback file retrieval. --- eng/pipelines/coreclr/templates/build-perf-maui-app.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/eng/pipelines/coreclr/templates/build-perf-maui-app.yml b/eng/pipelines/coreclr/templates/build-perf-maui-app.yml index 288adfc3cf46d..53d396d89a281 100644 --- a/eng/pipelines/coreclr/templates/build-perf-maui-app.yml +++ b/eng/pipelines/coreclr/templates/build-perf-maui-app.yml @@ -23,7 +23,8 @@ steps: # Install the MAUI workload install maui (with proper feeds in the nuget.config) # Create MAUI Sample app (Do we want this here or lower?) - script: | - ./dotnet.sh workload update --source https://aka.ms/dotnet/maui/main/index.json + curl -o ./rollback.json 'maui.blob.core.windows.net/metadata/rollbacks/main.json' + ./dotnet.sh workload update --from-rollback-file ./rollback.json ./dotnet.sh workload install maui --skip-manifest-update ./dotnet.sh new maui -n MauiTesting cd MauiTesting From 11229f5df41a33bb3de0659ab53b0298e6e73558 Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Tue, 28 Sep 2021 10:31:40 -0700 Subject: [PATCH 04/86] Fix apps file name. --- .../{build-perf-maui-app.yml => build-perf-maui-apps.yml} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename eng/pipelines/coreclr/templates/{build-perf-maui-app.yml => build-perf-maui-apps.yml} (100%) diff --git a/eng/pipelines/coreclr/templates/build-perf-maui-app.yml b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml similarity index 100% rename from eng/pipelines/coreclr/templates/build-perf-maui-app.yml rename to eng/pipelines/coreclr/templates/build-perf-maui-apps.yml From 5a8f2f06e25621ef1530fe42aa3bee622429ca10 Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Tue, 28 Sep 2021 10:33:00 -0700 Subject: [PATCH 05/86] Fix yaml error about expecting at least on kv pair --- eng/pipelines/coreclr/perf.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/coreclr/perf.yml b/eng/pipelines/coreclr/perf.yml index db81a47d6dafb..b10f9d9c3fc5c 100644 --- a/eng/pipelines/coreclr/perf.yml +++ b/eng/pipelines/coreclr/perf.yml @@ -54,7 +54,7 @@ jobs: archiveType: tar tarCompression: gz -- ${{ 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 From 89dc235b0a03d3c53b5b93eadea8bf5b189c6b6b Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Tue, 28 Sep 2021 12:44:16 -0700 Subject: [PATCH 06/86] Skip building the runtime for now. --- eng/pipelines/coreclr/perf.yml | 44 ++++++++++++++++++++++++---------- 1 file changed, 31 insertions(+), 13 deletions(-) diff --git a/eng/pipelines/coreclr/perf.yml b/eng/pipelines/coreclr/perf.yml index b10f9d9c3fc5c..e96f50f859bcb 100644 --- a/eng/pipelines/coreclr/perf.yml +++ b/eng/pipelines/coreclr/perf.yml @@ -35,24 +35,42 @@ jobs: # build mono iOS scenarios - template: /eng/pipelines/common/platform-matrix.yml parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml + jobTemplate: /eng/pipelines/coreclr/templates/build-perf-maui-apps.yml buildConfig: release runtimeFlavor: mono platforms: - iOS_arm64 jobParameters: - buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - nameSuffix: iOSAndroidMaui - isOfficialBuild: false - extraStepsTemplate: /eng/pipelines/coreclr/templates/build-perf-maui-apps.yml - extraStepsParameters: - rootFolder: '$(Build.SourcesDirectory)/artifacts/' - includeRootFolder: true - displayName: iOS and Android Maui Artifacts - artifactName: iOSAndroidMauiArm - archiveExtension: '.tar.gz' - archiveType: tar - tarCompression: gz + nameSuffix: isOSAndroidMaui + rootFolder: '$(Build.SourcesDirectory)/artifacts/' + includeRootFolder: true + displayName: iOS and Android Maui Artifacts + artifactName: iOSAndroidMauiArm + archiveExtension: '.tar.gz' + archiveType: tar + tarCompression: gz + + + # - 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: iOSAndroidMaui + # isOfficialBuild: false + # extraStepsTemplate: /eng/pipelines/coreclr/templates/build-perf-maui-apps.yml + # extraStepsParameters: + # rootFolder: '$(Build.SourcesDirectory)/artifacts/' + # includeRootFolder: true + # displayName: iOS and Android Maui Artifacts + # artifactName: iOSAndroidMauiArm + # archiveExtension: '.tar.gz' + # archiveType: tar + # tarCompression: gz #- ${{ if and(ne(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'Schedule')) }}: From be935f2e2fb45bf58bd051c7124f2ed0a0379472 Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Tue, 28 Sep 2021 13:21:52 -0700 Subject: [PATCH 07/86] Added gather of more debug information. --- .../templates/build-perf-maui-apps.yml | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml index 53d396d89a281..3226756468560 100644 --- a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml +++ b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml @@ -28,11 +28,31 @@ steps: ./dotnet.sh workload install maui --skip-manifest-update ./dotnet.sh new maui -n MauiTesting cd MauiTesting - ../dotnet.sh build + ../dotnet.sh build -bl:MauiTestingBin.binlog -v d workingDirectory: $(Build.SourcesDirectory) displayName: Install MAUI + - script: ls -Ra # + workingDirectory: $(Build.SourcesDirectory) # + displayName: List All Files + + - task: PublishBuildArtifacts@1 # + condition: succeededOrFailed() # + displayName: 'Publish binlog' # + inputs: + pathtoPublish: $(Build.SourcesDirectory)/MauiTesting/MauiTestingBin.binlog # + artifactName: ${{ parameters.artifactName }} # + - template: /eng/pipelines/common/upload-artifact-step.yml + parameters: + rootFolder: $(Build.SourcesDirectory)/MauiTesting # + includeRootFolder: true # + displayName: Maui Build # + artifactName: MauiBuildBinLog # + archiveExtension: '.tar.gz' # + archiveType: tar # + tarCompression: gz # + # # Build MAUI Android sample app # - ${{ if eq(parameters.osGroup, 'Android') }}: From 8b801752a40d57c479528d9fc4fa56fb5bfd16fb Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Tue, 28 Sep 2021 13:27:35 -0700 Subject: [PATCH 08/86] Fix steps error. --- .../templates/build-perf-maui-apps.yml | 58 ++++++++++--------- 1 file changed, 30 insertions(+), 28 deletions(-) diff --git a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml index 3226756468560..07e632e80f911 100644 --- a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml +++ b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml @@ -17,41 +17,43 @@ parameters: archiveType: '' tarCompression: '' + steps: # Download latest MAUI # Update the manifests based on the gated source # Install the MAUI workload install maui (with proper feeds in the nuget.config) # Create MAUI Sample app (Do we want this here or lower?) - - script: | - curl -o ./rollback.json 'maui.blob.core.windows.net/metadata/rollbacks/main.json' - ./dotnet.sh workload update --from-rollback-file ./rollback.json - ./dotnet.sh workload install maui --skip-manifest-update - ./dotnet.sh new maui -n MauiTesting - cd MauiTesting - ../dotnet.sh build -bl:MauiTestingBin.binlog -v d - - workingDirectory: $(Build.SourcesDirectory) - displayName: Install MAUI + - ${{ if eq(parameters.osGroup, 'iOS') }}: + - script: | + curl -o ./rollback.json 'maui.blob.core.windows.net/metadata/rollbacks/main.json' + ./dotnet.sh workload update --from-rollback-file ./rollback.json + ./dotnet.sh workload install maui --skip-manifest-update + ./dotnet.sh new maui -n MauiTesting + cd MauiTesting + ../dotnet.sh build -bl:MauiTestingBin.binlog -v d + + workingDirectory: $(Build.SourcesDirectory) + displayName: Install MAUI - - script: ls -Ra # - workingDirectory: $(Build.SourcesDirectory) # - displayName: List All Files + - script: ls -Ra # + workingDirectory: $(Build.SourcesDirectory) # + displayName: List All Files - - task: PublishBuildArtifacts@1 # - condition: succeededOrFailed() # - displayName: 'Publish binlog' # - inputs: - pathtoPublish: $(Build.SourcesDirectory)/MauiTesting/MauiTestingBin.binlog # - artifactName: ${{ parameters.artifactName }} # - - template: /eng/pipelines/common/upload-artifact-step.yml - parameters: - rootFolder: $(Build.SourcesDirectory)/MauiTesting # - includeRootFolder: true # - displayName: Maui Build # - artifactName: MauiBuildBinLog # - archiveExtension: '.tar.gz' # - archiveType: tar # - tarCompression: gz # + - task: PublishBuildArtifacts@1 # + condition: succeededOrFailed() # + displayName: 'Publish binlog' # + inputs: + pathtoPublish: $(Build.SourcesDirectory)/MauiTesting/MauiTestingBin.binlog # + artifactName: ${{ parameters.artifactName }} # + - template: /eng/pipelines/common/upload-artifact-step.yml + parameters: + rootFolder: $(Build.SourcesDirectory)/MauiTesting # + includeRootFolder: true # + displayName: Maui Build # + artifactName: MauiBuildBinLog # + archiveExtension: '.tar.gz' # + archiveType: tar # + tarCompression: gz # # # Build MAUI Android sample app From ace49440119e9c17d4da1e7413ccd8625e61f861 Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Tue, 28 Sep 2021 13:32:03 -0700 Subject: [PATCH 09/86] Try jobs instead. --- .../templates/build-perf-maui-apps.yml | 60 +++++++++---------- 1 file changed, 29 insertions(+), 31 deletions(-) diff --git a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml index 07e632e80f911..3cab300143ca0 100644 --- a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml +++ b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml @@ -17,43 +17,41 @@ parameters: archiveType: '' tarCompression: '' - -steps: +jobs: # Download latest MAUI # Update the manifests based on the gated source # Install the MAUI workload install maui (with proper feeds in the nuget.config) # Create MAUI Sample app (Do we want this here or lower?) - - ${{ if eq(parameters.osGroup, 'iOS') }}: - - script: | - curl -o ./rollback.json 'maui.blob.core.windows.net/metadata/rollbacks/main.json' - ./dotnet.sh workload update --from-rollback-file ./rollback.json - ./dotnet.sh workload install maui --skip-manifest-update - ./dotnet.sh new maui -n MauiTesting - cd MauiTesting - ../dotnet.sh build -bl:MauiTestingBin.binlog -v d - - workingDirectory: $(Build.SourcesDirectory) - displayName: Install MAUI + - script: | + curl -o ./rollback.json 'maui.blob.core.windows.net/metadata/rollbacks/main.json' + ./dotnet.sh workload update --from-rollback-file ./rollback.json + ./dotnet.sh workload install maui --skip-manifest-update + ./dotnet.sh new maui -n MauiTesting + cd MauiTesting + ../dotnet.sh build -bl:MauiTestingBin.binlog -v d + + workingDirectory: $(Build.SourcesDirectory) + displayName: Install MAUI - - script: ls -Ra # - workingDirectory: $(Build.SourcesDirectory) # - displayName: List All Files + - script: ls -Ra # + workingDirectory: $(Build.SourcesDirectory) # + displayName: List All Files - - task: PublishBuildArtifacts@1 # - condition: succeededOrFailed() # - displayName: 'Publish binlog' # - inputs: - pathtoPublish: $(Build.SourcesDirectory)/MauiTesting/MauiTestingBin.binlog # - artifactName: ${{ parameters.artifactName }} # - - template: /eng/pipelines/common/upload-artifact-step.yml - parameters: - rootFolder: $(Build.SourcesDirectory)/MauiTesting # - includeRootFolder: true # - displayName: Maui Build # - artifactName: MauiBuildBinLog # - archiveExtension: '.tar.gz' # - archiveType: tar # - tarCompression: gz # + - task: PublishBuildArtifacts@1 # + condition: succeededOrFailed() # + displayName: 'Publish binlog' # + inputs: + pathtoPublish: $(Build.SourcesDirectory)/MauiTesting/MauiTestingBin.binlog # + artifactName: ${{ parameters.artifactName }} # + - template: /eng/pipelines/common/upload-artifact-step.yml + parameters: + rootFolder: $(Build.SourcesDirectory)/MauiTesting # + includeRootFolder: true # + displayName: Maui Build # + artifactName: MauiBuildBinLog # + archiveExtension: '.tar.gz' # + archiveType: tar # + tarCompression: gz # # # Build MAUI Android sample app From 3ec88edd67d324681d1d1326ef38340bf8bfd694 Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Tue, 28 Sep 2021 13:34:21 -0700 Subject: [PATCH 10/86] Try again. --- .../templates/build-perf-maui-apps.yml | 56 +++++++++---------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml index 3cab300143ca0..ef16078b8b801 100644 --- a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml +++ b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml @@ -22,36 +22,36 @@ jobs: # Update the manifests based on the gated source # Install the MAUI workload install maui (with proper feeds in the nuget.config) # Create MAUI Sample app (Do we want this here or lower?) - - script: | - curl -o ./rollback.json 'maui.blob.core.windows.net/metadata/rollbacks/main.json' - ./dotnet.sh workload update --from-rollback-file ./rollback.json - ./dotnet.sh workload install maui --skip-manifest-update - ./dotnet.sh new maui -n MauiTesting - cd MauiTesting - ../dotnet.sh build -bl:MauiTestingBin.binlog -v d - - workingDirectory: $(Build.SourcesDirectory) - displayName: Install MAUI +- script: | + curl -o ./rollback.json 'maui.blob.core.windows.net/metadata/rollbacks/main.json' + ./dotnet.sh workload update --from-rollback-file ./rollback.json + ./dotnet.sh workload install maui --skip-manifest-update + ./dotnet.sh new maui -n MauiTesting + cd MauiTesting + ../dotnet.sh build -bl:MauiTestingBin.binlog -v d - - script: ls -Ra # - workingDirectory: $(Build.SourcesDirectory) # - displayName: List All Files + workingDirectory: $(Build.SourcesDirectory) + displayName: Install MAUI - - task: PublishBuildArtifacts@1 # - condition: succeededOrFailed() # - displayName: 'Publish binlog' # - inputs: - pathtoPublish: $(Build.SourcesDirectory)/MauiTesting/MauiTestingBin.binlog # - artifactName: ${{ parameters.artifactName }} # - - template: /eng/pipelines/common/upload-artifact-step.yml - parameters: - rootFolder: $(Build.SourcesDirectory)/MauiTesting # - includeRootFolder: true # - displayName: Maui Build # - artifactName: MauiBuildBinLog # - archiveExtension: '.tar.gz' # - archiveType: tar # - tarCompression: gz # +- script: ls -Ra # + workingDirectory: $(Build.SourcesDirectory) # + displayName: List All Files + +- task: PublishBuildArtifacts@1 # + condition: succeededOrFailed() # + displayName: 'Publish binlog' # + inputs: + pathtoPublish: $(Build.SourcesDirectory)/MauiTesting/MauiTestingBin.binlog # + artifactName: ${{ parameters.artifactName }} # +- template: /eng/pipelines/common/upload-artifact-step.yml + parameters: + rootFolder: $(Build.SourcesDirectory)/MauiTesting # + includeRootFolder: true # + displayName: Maui Build # + artifactName: MauiBuildBinLog # + archiveExtension: '.tar.gz' # + archiveType: tar # + tarCompression: gz # # # Build MAUI Android sample app From e5be8a6c2297115d2e6bb81ef0956c0ce5167ea4 Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Tue, 28 Sep 2021 13:37:56 -0700 Subject: [PATCH 11/86] Third times charm. --- .../coreclr/templates/build-perf-maui-apps.yml | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml index ef16078b8b801..019e86abf7931 100644 --- a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml +++ b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml @@ -22,7 +22,8 @@ jobs: # Update the manifests based on the gated source # Install the MAUI workload install maui (with proper feeds in the nuget.config) # Create MAUI Sample app (Do we want this here or lower?) -- script: | +- job: + script: | curl -o ./rollback.json 'maui.blob.core.windows.net/metadata/rollbacks/main.json' ./dotnet.sh workload update --from-rollback-file ./rollback.json ./dotnet.sh workload install maui --skip-manifest-update @@ -33,17 +34,19 @@ jobs: workingDirectory: $(Build.SourcesDirectory) displayName: Install MAUI -- script: ls -Ra # +- job: + script: ls -Ra # workingDirectory: $(Build.SourcesDirectory) # displayName: List All Files -- task: PublishBuildArtifacts@1 # +- job: + task: PublishBuildArtifacts@1 # condition: succeededOrFailed() # displayName: 'Publish binlog' # inputs: pathtoPublish: $(Build.SourcesDirectory)/MauiTesting/MauiTestingBin.binlog # artifactName: ${{ parameters.artifactName }} # -- template: /eng/pipelines/common/upload-artifact-step.yml + template: /eng/pipelines/common/upload-artifact-step.yml parameters: rootFolder: $(Build.SourcesDirectory)/MauiTesting # includeRootFolder: true # From 83054bbe6f5d99c22127e2da0f672f6d5e78a519 Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Tue, 28 Sep 2021 13:46:09 -0700 Subject: [PATCH 12/86] Or not. --- .../templates/build-perf-maui-apps.yml | 62 +++++++++---------- 1 file changed, 30 insertions(+), 32 deletions(-) diff --git a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml index 019e86abf7931..51f05824c9871 100644 --- a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml +++ b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml @@ -17,44 +17,42 @@ parameters: archiveType: '' tarCompression: '' -jobs: + +steps: # Download latest MAUI # Update the manifests based on the gated source # Install the MAUI workload install maui (with proper feeds in the nuget.config) # Create MAUI Sample app (Do we want this here or lower?) -- job: - script: | - curl -o ./rollback.json 'maui.blob.core.windows.net/metadata/rollbacks/main.json' - ./dotnet.sh workload update --from-rollback-file ./rollback.json - ./dotnet.sh workload install maui --skip-manifest-update - ./dotnet.sh new maui -n MauiTesting - cd MauiTesting - ../dotnet.sh build -bl:MauiTestingBin.binlog -v d - - workingDirectory: $(Build.SourcesDirectory) - displayName: Install MAUI + - script: | + curl -o ./rollback.json 'maui.blob.core.windows.net/metadata/rollbacks/main.json' + ./dotnet.sh workload update --from-rollback-file ./rollback.json + ./dotnet.sh workload install maui --skip-manifest-update + ./dotnet.sh new maui -n MauiTesting + cd MauiTesting + ../dotnet.sh build -bl:MauiTestingBin.binlog -v d + + workingDirectory: $(Build.SourcesDirectory) + displayName: Install MAUI -- job: - script: ls -Ra # - workingDirectory: $(Build.SourcesDirectory) # - displayName: List All Files + - script: ls -Ra # + workingDirectory: $(Build.SourcesDirectory) # + displayName: List All Files -- job: - task: PublishBuildArtifacts@1 # - condition: succeededOrFailed() # - displayName: 'Publish binlog' # - inputs: - pathtoPublish: $(Build.SourcesDirectory)/MauiTesting/MauiTestingBin.binlog # - artifactName: ${{ parameters.artifactName }} # - template: /eng/pipelines/common/upload-artifact-step.yml - parameters: - rootFolder: $(Build.SourcesDirectory)/MauiTesting # - includeRootFolder: true # - displayName: Maui Build # - artifactName: MauiBuildBinLog # - archiveExtension: '.tar.gz' # - archiveType: tar # - tarCompression: gz # + - task: PublishBuildArtifacts@1 # + condition: succeededOrFailed() # + displayName: 'Publish binlog' # + inputs: + pathtoPublish: $(Build.SourcesDirectory)/MauiTesting/MauiTestingBin.binlog # + artifactName: ${{ parameters.artifactName }} # + - template: /eng/pipelines/common/upload-artifact-step.yml + parameters: + rootFolder: $(Build.SourcesDirectory)/MauiTesting # + includeRootFolder: true # + displayName: Maui Build # + artifactName: MauiBuildBinLog # + archiveExtension: '.tar.gz' # + archiveType: tar # + tarCompression: gz # # # Build MAUI Android sample app From 1ad683ddc18fa59c5922fce4a8d34c9ad002fb3f Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Tue, 28 Sep 2021 13:49:03 -0700 Subject: [PATCH 13/86] Pipelines are hard. --- eng/pipelines/coreclr/templates/build-perf-maui-apps.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml index 51f05824c9871..6d6233e2246ae 100644 --- a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml +++ b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml @@ -30,9 +30,8 @@ steps: ./dotnet.sh new maui -n MauiTesting cd MauiTesting ../dotnet.sh build -bl:MauiTestingBin.binlog -v d - - workingDirectory: $(Build.SourcesDirectory) displayName: Install MAUI + workingDirectory: $(Build.SourcesDirectory) - script: ls -Ra # workingDirectory: $(Build.SourcesDirectory) # From d2c2aa49b35d05085cc452ac18e2c2e12a2872fc Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Tue, 28 Sep 2021 13:50:04 -0700 Subject: [PATCH 14/86] Removed a space. --- eng/pipelines/coreclr/templates/build-perf-maui-apps.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml index 6d6233e2246ae..2eb97662d2398 100644 --- a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml +++ b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml @@ -17,7 +17,6 @@ parameters: archiveType: '' tarCompression: '' - steps: # Download latest MAUI # Update the manifests based on the gated source From cd74562130a9c65d6c92ca6b4b620b44912a65bc Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Tue, 28 Sep 2021 14:00:55 -0700 Subject: [PATCH 15/86] Readded jobs arch. --- eng/pipelines/coreclr/perf.yml | 2 - .../templates/build-perf-maui-apps.yml | 66 ++++++++++--------- 2 files changed, 34 insertions(+), 34 deletions(-) diff --git a/eng/pipelines/coreclr/perf.yml b/eng/pipelines/coreclr/perf.yml index e96f50f859bcb..377c056bd6253 100644 --- a/eng/pipelines/coreclr/perf.yml +++ b/eng/pipelines/coreclr/perf.yml @@ -36,8 +36,6 @@ jobs: - template: /eng/pipelines/common/platform-matrix.yml parameters: jobTemplate: /eng/pipelines/coreclr/templates/build-perf-maui-apps.yml - buildConfig: release - runtimeFlavor: mono platforms: - iOS_arm64 jobParameters: diff --git a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml index 2eb97662d2398..1f9268f4fc57d 100644 --- a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml +++ b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml @@ -17,40 +17,42 @@ parameters: archiveType: '' tarCompression: '' -steps: -# Download latest MAUI -# Update the manifests based on the gated source -# Install the MAUI workload install maui (with proper feeds in the nuget.config) -# Create MAUI Sample app (Do we want this here or lower?) - - script: | - curl -o ./rollback.json 'maui.blob.core.windows.net/metadata/rollbacks/main.json' - ./dotnet.sh workload update --from-rollback-file ./rollback.json - ./dotnet.sh workload install maui --skip-manifest-update - ./dotnet.sh new maui -n MauiTesting - cd MauiTesting - ../dotnet.sh build -bl:MauiTestingBin.binlog -v d - displayName: Install MAUI - workingDirectory: $(Build.SourcesDirectory) +jobs: + - job: BuildMaiu + steps: + # Download latest MAUI + # Update the manifests based on the gated source + # Install the MAUI workload install maui (with proper feeds in the nuget.config) + # Create MAUI Sample app (Do we want this here or lower?) + - script: | + curl -o ./rollback.json 'maui.blob.core.windows.net/metadata/rollbacks/main.json' + ./dotnet.sh workload update --from-rollback-file ./rollback.json + ./dotnet.sh workload install maui --skip-manifest-update + ./dotnet.sh new maui -n MauiTesting + cd MauiTesting + ../dotnet.sh build -bl:MauiTestingBin.binlog -v d + displayName: Install MAUI + workingDirectory: $(Build.SourcesDirectory) - - script: ls -Ra # - workingDirectory: $(Build.SourcesDirectory) # - displayName: List All Files + - script: ls -Ra # + workingDirectory: $(Build.SourcesDirectory) # + displayName: List All Files - - task: PublishBuildArtifacts@1 # - condition: succeededOrFailed() # - displayName: 'Publish binlog' # - inputs: - pathtoPublish: $(Build.SourcesDirectory)/MauiTesting/MauiTestingBin.binlog # - artifactName: ${{ parameters.artifactName }} # - - template: /eng/pipelines/common/upload-artifact-step.yml - parameters: - rootFolder: $(Build.SourcesDirectory)/MauiTesting # - includeRootFolder: true # - displayName: Maui Build # - artifactName: MauiBuildBinLog # - archiveExtension: '.tar.gz' # - archiveType: tar # - tarCompression: gz # + - task: PublishBuildArtifacts@1 # + condition: succeededOrFailed() # + displayName: 'Publish binlog' # + inputs: + pathtoPublish: $(Build.SourcesDirectory)/MauiTesting/MauiTestingBin.binlog # + artifactName: ${{ parameters.artifactName }} # + - template: /eng/pipelines/common/upload-artifact-step.yml + parameters: + rootFolder: $(Build.SourcesDirectory)/MauiTesting # + includeRootFolder: true # + displayName: Maui Build # + artifactName: MauiBuildBinLog # + archiveExtension: '.tar.gz' # + archiveType: tar # + tarCompression: gz # # # Build MAUI Android sample app From d278a8f0063b7b517a559f34bab82ffdf5c9f68d Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Tue, 28 Sep 2021 14:15:19 -0700 Subject: [PATCH 16/86] Hopefully fix VM environment. --- eng/pipelines/coreclr/perf.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/eng/pipelines/coreclr/perf.yml b/eng/pipelines/coreclr/perf.yml index 377c056bd6253..e96f50f859bcb 100644 --- a/eng/pipelines/coreclr/perf.yml +++ b/eng/pipelines/coreclr/perf.yml @@ -36,6 +36,8 @@ jobs: - template: /eng/pipelines/common/platform-matrix.yml parameters: jobTemplate: /eng/pipelines/coreclr/templates/build-perf-maui-apps.yml + buildConfig: release + runtimeFlavor: mono platforms: - iOS_arm64 jobParameters: From d1c8e18857115dcd4b253b9051a30afc22cac4b3 Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Tue, 28 Sep 2021 14:18:20 -0700 Subject: [PATCH 17/86] Revert back to defaultish perf.yml config. --- eng/pipelines/coreclr/perf.yml | 41 +++++++++++++++++++++++++--------- 1 file changed, 31 insertions(+), 10 deletions(-) diff --git a/eng/pipelines/coreclr/perf.yml b/eng/pipelines/coreclr/perf.yml index e96f50f859bcb..f40ee522d4078 100644 --- a/eng/pipelines/coreclr/perf.yml +++ b/eng/pipelines/coreclr/perf.yml @@ -32,23 +32,44 @@ schedules: jobs: - ${{ if ne(variables['System.TeamProject'], 'public')}}: - # build mono iOS scenarios - template: /eng/pipelines/common/platform-matrix.yml parameters: - jobTemplate: /eng/pipelines/coreclr/templates/build-perf-maui-apps.yml + jobTemplate: /eng/pipelines/common/global-build-job.yml buildConfig: release runtimeFlavor: mono platforms: - iOS_arm64 jobParameters: - nameSuffix: isOSAndroidMaui - rootFolder: '$(Build.SourcesDirectory)/artifacts/' - includeRootFolder: true - displayName: iOS and Android Maui Artifacts - artifactName: iOSAndroidMauiArm - archiveExtension: '.tar.gz' - archiveType: tar - tarCompression: gz + buildArgs: -s mono -c $(_BuildConfig) + nameSuffix: iOSAndroidMaui + isOfficialBuild: false + extraStepsTemplate: /eng/pipelines/coreclr/templates/build-perf-maui-apps.yml + extraStepsParameters: + rootFolder: '$(Build.SourcesDirectory)/artifacts/' + includeRootFolder: true + displayName: iOS and Android Maui Artifacts + artifactName: iOSAndroidMauiArm + archiveExtension: '.tar.gz' + archiveType: tar + tarCompression: gz + + # build mono iOS scenarios + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/build-perf-maui-apps.yml + # buildConfig: release + # runtimeFlavor: mono + # platforms: + # - iOS_arm64 + # jobParameters: + # nameSuffix: isOSAndroidMaui + # rootFolder: '$(Build.SourcesDirectory)/artifacts/' + # includeRootFolder: true + # displayName: iOS and Android Maui Artifacts + # artifactName: iOSAndroidMauiArm + # archiveExtension: '.tar.gz' + # archiveType: tar + # tarCompression: gz # - template: /eng/pipelines/common/platform-matrix.yml From 851b7452676aef128bb214416e4a9c4a297124f6 Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Tue, 28 Sep 2021 14:19:44 -0700 Subject: [PATCH 18/86] Get rid of jobs in the apps.yml. --- .../templates/build-perf-maui-apps.yml | 67 +++++++++---------- 1 file changed, 33 insertions(+), 34 deletions(-) diff --git a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml index 1f9268f4fc57d..e7094b188a793 100644 --- a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml +++ b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml @@ -17,42 +17,41 @@ parameters: archiveType: '' tarCompression: '' -jobs: - - job: BuildMaiu - steps: - # Download latest MAUI - # Update the manifests based on the gated source - # Install the MAUI workload install maui (with proper feeds in the nuget.config) - # Create MAUI Sample app (Do we want this here or lower?) - - script: | - curl -o ./rollback.json 'maui.blob.core.windows.net/metadata/rollbacks/main.json' - ./dotnet.sh workload update --from-rollback-file ./rollback.json - ./dotnet.sh workload install maui --skip-manifest-update - ./dotnet.sh new maui -n MauiTesting - cd MauiTesting - ../dotnet.sh build -bl:MauiTestingBin.binlog -v d - displayName: Install MAUI - workingDirectory: $(Build.SourcesDirectory) - - script: ls -Ra # - workingDirectory: $(Build.SourcesDirectory) # - displayName: List All Files +steps: + # Download latest MAUI + # Update the manifests based on the gated source + # Install the MAUI workload install maui (with proper feeds in the nuget.config) + # Create MAUI Sample app (Do we want this here or lower?) + - script: | + curl -o ./rollback.json 'maui.blob.core.windows.net/metadata/rollbacks/main.json' + ./dotnet.sh workload update --from-rollback-file ./rollback.json + ./dotnet.sh workload install maui --skip-manifest-update + ./dotnet.sh new maui -n MauiTesting + cd MauiTesting + ../dotnet.sh build -bl:MauiTestingBin.binlog -v d + displayName: Install MAUI + workingDirectory: $(Build.SourcesDirectory) - - task: PublishBuildArtifacts@1 # - condition: succeededOrFailed() # - displayName: 'Publish binlog' # - inputs: - pathtoPublish: $(Build.SourcesDirectory)/MauiTesting/MauiTestingBin.binlog # - artifactName: ${{ parameters.artifactName }} # - - template: /eng/pipelines/common/upload-artifact-step.yml - parameters: - rootFolder: $(Build.SourcesDirectory)/MauiTesting # - includeRootFolder: true # - displayName: Maui Build # - artifactName: MauiBuildBinLog # - archiveExtension: '.tar.gz' # - archiveType: tar # - tarCompression: gz # + - script: ls -Ra # + workingDirectory: $(Build.SourcesDirectory) # + displayName: List All Files + + - task: PublishBuildArtifacts@1 # + condition: succeededOrFailed() # + displayName: 'Publish binlog' # + inputs: + pathtoPublish: $(Build.SourcesDirectory)/MauiTesting/MauiTestingBin.binlog # + artifactName: ${{ parameters.artifactName }} # + - template: /eng/pipelines/common/upload-artifact-step.yml + parameters: + rootFolder: $(Build.SourcesDirectory)/MauiTesting # + includeRootFolder: true # + displayName: Maui Build # + artifactName: MauiBuildBinLog # + archiveExtension: '.tar.gz' # + archiveType: tar # + tarCompression: gz # # # Build MAUI Android sample app From a0d00b247b19037011650283b27ec8e566803a9f Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Tue, 28 Sep 2021 14:38:14 -0700 Subject: [PATCH 19/86] Add condition to printing files. --- eng/pipelines/coreclr/templates/build-perf-maui-apps.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml index e7094b188a793..3ad01a39abd8a 100644 --- a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml +++ b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml @@ -34,6 +34,7 @@ steps: workingDirectory: $(Build.SourcesDirectory) - script: ls -Ra # + condition: succeededOrFailed() # workingDirectory: $(Build.SourcesDirectory) # displayName: List All Files From d05da848a9591f503350887ea993cab00e81fa14 Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Tue, 28 Sep 2021 15:04:29 -0700 Subject: [PATCH 20/86] Only get files from .dotnet. --- eng/pipelines/coreclr/templates/build-perf-maui-apps.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml index 3ad01a39abd8a..d2a8dd24f49ea 100644 --- a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml +++ b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml @@ -35,7 +35,7 @@ steps: - script: ls -Ra # condition: succeededOrFailed() # - workingDirectory: $(Build.SourcesDirectory) # + workingDirectory: $(Build.SourcesDirectory)/.dotnet # displayName: List All Files - task: PublishBuildArtifacts@1 # From ae96166f4a100549d1004160c30de9f59fce6005 Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Tue, 28 Sep 2021 15:05:27 -0700 Subject: [PATCH 21/86] filter out . and .. files. --- eng/pipelines/coreclr/templates/build-perf-maui-apps.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml index d2a8dd24f49ea..e3681e145fe90 100644 --- a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml +++ b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml @@ -33,7 +33,7 @@ steps: displayName: Install MAUI workingDirectory: $(Build.SourcesDirectory) - - script: ls -Ra # + - script: ls -RA # condition: succeededOrFailed() # workingDirectory: $(Build.SourcesDirectory)/.dotnet # displayName: List All Files From 7f2339d18022478e0849c366d8eae84e3455c513 Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Tue, 28 Sep 2021 16:18:28 -0700 Subject: [PATCH 22/86] Try using a fresh dotnet install instead of the one provided, maybe the dotnet.sh is causing an issue somewhere. --- .../coreclr/templates/build-perf-maui-apps.yml | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml index e3681e145fe90..f84b2c5670d49 100644 --- a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml +++ b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml @@ -19,17 +19,20 @@ parameters: steps: + # Download and CI install dotnet # Download latest MAUI # Update the manifests based on the gated source # Install the MAUI workload install maui (with proper feeds in the nuget.config) # Create MAUI Sample app (Do we want this here or lower?) - script: | + curl -o ./dotnet-install.sh 'https://dot.net/v1/dotnet-install.sh' + ./dotnet-install.sh -Channel 6.0.1xx -Quality daily curl -o ./rollback.json 'maui.blob.core.windows.net/metadata/rollbacks/main.json' - ./dotnet.sh workload update --from-rollback-file ./rollback.json - ./dotnet.sh workload install maui --skip-manifest-update - ./dotnet.sh new maui -n MauiTesting + dotnet workload update --from-rollback-file ./rollback.json + dotnet workload install maui --skip-manifest-update + dotnet new maui -n MauiTesting cd MauiTesting - ../dotnet.sh build -bl:MauiTestingBin.binlog -v d + dotnet build -bl:MauiTestingBin.binlog -v d displayName: Install MAUI workingDirectory: $(Build.SourcesDirectory) From a86daa4bd37849771034c8595d84edfed5211f6d Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Wed, 29 Sep 2021 11:22:57 -0700 Subject: [PATCH 23/86] Removed dotnet install as we don't have perms, added msbuild restore flag to set it to false since it may be part of why we are getting these weird errors. --- eng/pipelines/coreclr/templates/build-perf-maui-apps.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml index f84b2c5670d49..1d96c2fdafc20 100644 --- a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml +++ b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml @@ -25,14 +25,12 @@ steps: # Install the MAUI workload install maui (with proper feeds in the nuget.config) # Create MAUI Sample app (Do we want this here or lower?) - script: | - curl -o ./dotnet-install.sh 'https://dot.net/v1/dotnet-install.sh' - ./dotnet-install.sh -Channel 6.0.1xx -Quality daily curl -o ./rollback.json 'maui.blob.core.windows.net/metadata/rollbacks/main.json' dotnet workload update --from-rollback-file ./rollback.json dotnet workload install maui --skip-manifest-update dotnet new maui -n MauiTesting cd MauiTesting - dotnet build -bl:MauiTestingBin.binlog -v d + dotnet build -bl:MauiTestingBin.binlog /p:RestoreUseStaticGraphEvaluation=false -v d displayName: Install MAUI workingDirectory: $(Build.SourcesDirectory) From f2d097f3e7b9038d18983c675ac36527afcb01fd Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Wed, 29 Sep 2021 13:33:39 -0700 Subject: [PATCH 24/86] Try using the build in dotnet cli to build. --- .../coreclr/templates/build-perf-maui-apps.yml | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml index 1d96c2fdafc20..1f8009fe904e1 100644 --- a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml +++ b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml @@ -24,16 +24,27 @@ steps: # Update the manifests based on the gated source # Install the MAUI workload install maui (with proper feeds in the nuget.config) # Create MAUI Sample app (Do we want this here or lower?) + - script: | curl -o ./rollback.json 'maui.blob.core.windows.net/metadata/rollbacks/main.json' dotnet workload update --from-rollback-file ./rollback.json dotnet workload install maui --skip-manifest-update dotnet new maui -n MauiTesting cd MauiTesting - dotnet build -bl:MauiTestingBin.binlog /p:RestoreUseStaticGraphEvaluation=false -v d + # dotnet build -bl:MauiTestingBin.binlog /p:RestoreUseStaticGraphEvaluation=false -v d displayName: Install MAUI workingDirectory: $(Build.SourcesDirectory) + - task: UseDotNet@2 + inputs: + version: '6.0.x' + includePreviewVersions: true # Required for preview versions + + - task: DotNetCoreCLI@2 + inputs: + command: 'build' + arguments: '-bl:MauiTestingBin.binlog /p:RestoreUseStaticGraphEvaluation=false' + - script: ls -RA # condition: succeededOrFailed() # workingDirectory: $(Build.SourcesDirectory)/.dotnet # From 4f822d1b75281d2cc5df2498813a4bad20b99736 Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Wed, 29 Sep 2021 14:32:27 -0700 Subject: [PATCH 25/86] Set more specific dotnet verion to use, and only try to build the maui app. --- eng/pipelines/coreclr/templates/build-perf-maui-apps.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml index 1f8009fe904e1..dd938b14b691d 100644 --- a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml +++ b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml @@ -37,13 +37,14 @@ steps: - task: UseDotNet@2 inputs: - version: '6.0.x' + version: '6.0.0-rc.1.21430.1' includePreviewVersions: true # Required for preview versions - task: DotNetCoreCLI@2 inputs: command: 'build' arguments: '-bl:MauiTestingBin.binlog /p:RestoreUseStaticGraphEvaluation=false' + projects: 'MauiTesting/MauiTesting.sln' - script: ls -RA # condition: succeededOrFailed() # From 78e778928ef22c4330d96c33c6844b7878196738 Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Wed, 29 Sep 2021 14:53:34 -0700 Subject: [PATCH 26/86] Put in correct version. --- eng/pipelines/coreclr/templates/build-perf-maui-apps.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml index dd938b14b691d..ab4012887e50b 100644 --- a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml +++ b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml @@ -37,7 +37,7 @@ steps: - task: UseDotNet@2 inputs: - version: '6.0.0-rc.1.21430.1' + version: '6.0.100-rc.1.21430.12' includePreviewVersions: true # Required for preview versions - task: DotNetCoreCLI@2 From 1e258af857c92c2327449f962078a1617b221acb Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Wed, 29 Sep 2021 15:13:25 -0700 Subject: [PATCH 27/86] SDK version was not being found, reverting to the autocompleted one. --- eng/pipelines/coreclr/templates/build-perf-maui-apps.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml index ab4012887e50b..a19d6c5ceeae0 100644 --- a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml +++ b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml @@ -37,7 +37,7 @@ steps: - task: UseDotNet@2 inputs: - version: '6.0.100-rc.1.21430.12' + version: '6.0.x' includePreviewVersions: true # Required for preview versions - task: DotNetCoreCLI@2 From df041adc690055989a89038a7a17ada59bf2f855 Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Wed, 29 Sep 2021 16:51:18 -0700 Subject: [PATCH 28/86] Reverted dotnet calls as they didn't make a difference, split install and build, added potential xcode work around, added an android specific build. --- .../templates/build-perf-maui-apps.yml | 27 ++++++++----------- 1 file changed, 11 insertions(+), 16 deletions(-) diff --git a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml index a19d6c5ceeae0..72d8c15f9fd56 100644 --- a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml +++ b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml @@ -27,24 +27,19 @@ steps: - script: | curl -o ./rollback.json 'maui.blob.core.windows.net/metadata/rollbacks/main.json' - dotnet workload update --from-rollback-file ./rollback.json - dotnet workload install maui --skip-manifest-update - dotnet new maui -n MauiTesting - cd MauiTesting - # dotnet build -bl:MauiTestingBin.binlog /p:RestoreUseStaticGraphEvaluation=false -v d + ./dotnet workload update --from-rollback-file ./rollback.json + ./dotnet workload install maui --skip-manifest-update displayName: Install MAUI workingDirectory: $(Build.SourcesDirectory) - - - task: UseDotNet@2 - inputs: - version: '6.0.x' - includePreviewVersions: true # Required for preview versions - - - task: DotNetCoreCLI@2 - inputs: - command: 'build' - arguments: '-bl:MauiTestingBin.binlog /p:RestoreUseStaticGraphEvaluation=false' - projects: 'MauiTesting/MauiTesting.sln' + + - script: | + ./dotnet new maui -n MauiTesting + cd MauiTesting + ../dotnet build -f net6.0-android -bl:MauiTestingBin.binlog /p:RestoreUseStaticGraphEvaluation=false + xcode-select --switch /Applications/Xcode.app/Contents/Developer + ../dotnet build -bl:MauiTestingBin.binlog /p:RestoreUseStaticGraphEvaluation=false + displayName: Build MAUI + workingDirectory: $(Build.SourcesDirectory) - script: ls -RA # condition: succeededOrFailed() # From d3fc7a5cffd32466a9c2a438ef4fdd845e8c366e Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Wed, 29 Sep 2021 17:58:59 -0700 Subject: [PATCH 29/86] dotnet needs a .sh after it. --- .../coreclr/templates/build-perf-maui-apps.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml index 72d8c15f9fd56..a7ee70fa7aa61 100644 --- a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml +++ b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml @@ -27,17 +27,17 @@ steps: - script: | curl -o ./rollback.json 'maui.blob.core.windows.net/metadata/rollbacks/main.json' - ./dotnet workload update --from-rollback-file ./rollback.json - ./dotnet workload install maui --skip-manifest-update + ./dotnet.sh workload update --from-rollback-file ./rollback.json + ./dotnet.sh workload install maui --skip-manifest-update displayName: Install MAUI workingDirectory: $(Build.SourcesDirectory) - script: | - ./dotnet new maui -n MauiTesting + ./dotnet.sh new maui -n MauiTesting cd MauiTesting - ../dotnet build -f net6.0-android -bl:MauiTestingBin.binlog /p:RestoreUseStaticGraphEvaluation=false + ../dotnet.sh build -f net6.0-android -bl:MauiTestingBin.binlog /p:RestoreUseStaticGraphEvaluation=false xcode-select --switch /Applications/Xcode.app/Contents/Developer - ../dotnet build -bl:MauiTestingBin.binlog /p:RestoreUseStaticGraphEvaluation=false + ../dotnet.sh build -bl:MauiTestingBin.binlog /p:RestoreUseStaticGraphEvaluation=false displayName: Build MAUI workingDirectory: $(Build.SourcesDirectory) From 48f9860aceaa68685e4a527666bcfe7d53da43a6 Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Wed, 29 Sep 2021 20:07:26 -0700 Subject: [PATCH 30/86] Cannot do xcode-select switch without sudo, could not tell if the android build works, seems like it hadn't. --- eng/pipelines/coreclr/templates/build-perf-maui-apps.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml index a7ee70fa7aa61..fca44c2327b77 100644 --- a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml +++ b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml @@ -36,8 +36,6 @@ steps: ./dotnet.sh new maui -n MauiTesting cd MauiTesting ../dotnet.sh build -f net6.0-android -bl:MauiTestingBin.binlog /p:RestoreUseStaticGraphEvaluation=false - xcode-select --switch /Applications/Xcode.app/Contents/Developer - ../dotnet.sh build -bl:MauiTestingBin.binlog /p:RestoreUseStaticGraphEvaluation=false displayName: Build MAUI workingDirectory: $(Build.SourcesDirectory) From 132b2d183476604ddf83d9337a73e980064ec686 Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Thu, 30 Sep 2021 09:01:08 -0700 Subject: [PATCH 31/86] Attempt ignoring the higher level props files for MauiSince we don't want them. At least at the moment. --- eng/pipelines/coreclr/templates/build-perf-maui-apps.yml | 1 + src/mono/sample/MauiScenario.props | 3 +++ 2 files changed, 4 insertions(+) create mode 100644 src/mono/sample/MauiScenario.props diff --git a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml index fca44c2327b77..704e564152b24 100644 --- a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml +++ b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml @@ -35,6 +35,7 @@ steps: - script: | ./dotnet.sh new maui -n MauiTesting cd MauiTesting + cp $(Build.SourcesDirectory)/src/mono/sample/MauiScenario.props ./Directory.Build.props ../dotnet.sh build -f net6.0-android -bl:MauiTestingBin.binlog /p:RestoreUseStaticGraphEvaluation=false displayName: Build MAUI workingDirectory: $(Build.SourcesDirectory) diff --git a/src/mono/sample/MauiScenario.props b/src/mono/sample/MauiScenario.props new file mode 100644 index 0000000000000..a36bd59d0a2d4 --- /dev/null +++ b/src/mono/sample/MauiScenario.props @@ -0,0 +1,3 @@ + + + \ No newline at end of file From 36cde2935160bfcef1407ab87d6936e8cd689bb1 Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Thu, 30 Sep 2021 09:25:59 -0700 Subject: [PATCH 32/86] Completely isolate the MAUI folder build targets. --- eng/pipelines/coreclr/templates/build-perf-maui-apps.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml index 704e564152b24..ef2a78d8ea95a 100644 --- a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml +++ b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml @@ -36,6 +36,7 @@ steps: ./dotnet.sh new maui -n MauiTesting cd MauiTesting cp $(Build.SourcesDirectory)/src/mono/sample/MauiScenario.props ./Directory.Build.props + cp $(Build.SourcesDirectory)/src/mono/sample/MauiScenario.props ./Directory.Build.targets ../dotnet.sh build -f net6.0-android -bl:MauiTestingBin.binlog /p:RestoreUseStaticGraphEvaluation=false displayName: Build MAUI workingDirectory: $(Build.SourcesDirectory) From eb2d62c8842a1ab3a70ecf376eece2c4c82cf131 Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Thu, 30 Sep 2021 10:36:45 -0700 Subject: [PATCH 33/86] Cleaned up no longer needed and duplicate pipeline tasks. --- .../coreclr/templates/build-perf-maui-apps.yml | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml index ef2a78d8ea95a..4b36722747337 100644 --- a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml +++ b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml @@ -41,23 +41,12 @@ steps: displayName: Build MAUI workingDirectory: $(Build.SourcesDirectory) - - script: ls -RA # - condition: succeededOrFailed() # - workingDirectory: $(Build.SourcesDirectory)/.dotnet # - displayName: List All Files - - - task: PublishBuildArtifacts@1 # - condition: succeededOrFailed() # - displayName: 'Publish binlog' # - inputs: - pathtoPublish: $(Build.SourcesDirectory)/MauiTesting/MauiTestingBin.binlog # - artifactName: ${{ parameters.artifactName }} # - template: /eng/pipelines/common/upload-artifact-step.yml parameters: rootFolder: $(Build.SourcesDirectory)/MauiTesting # includeRootFolder: true # displayName: Maui Build # - artifactName: MauiBuildBinLog # + artifactName: MauiBuild # archiveExtension: '.tar.gz' # archiveType: tar # tarCompression: gz # From b5968075801b4b16d8a576991f8d74bba4cd78fb Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Thu, 30 Sep 2021 10:47:06 -0700 Subject: [PATCH 34/86] Got rid of the android only build portion to test maccatalyst and iOS. Removed the staticgraph option since the new .target file should fix that error. --- eng/pipelines/coreclr/templates/build-perf-maui-apps.yml | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml index 4b36722747337..2b22b2440bc16 100644 --- a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml +++ b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml @@ -37,7 +37,7 @@ steps: cd MauiTesting cp $(Build.SourcesDirectory)/src/mono/sample/MauiScenario.props ./Directory.Build.props cp $(Build.SourcesDirectory)/src/mono/sample/MauiScenario.props ./Directory.Build.targets - ../dotnet.sh build -f net6.0-android -bl:MauiTestingBin.binlog /p:RestoreUseStaticGraphEvaluation=false + ../dotnet.sh build -bl:MauiTestingBin.binlog displayName: Build MAUI workingDirectory: $(Build.SourcesDirectory) @@ -51,12 +51,6 @@ steps: archiveType: tar # tarCompression: gz # - -# # Build MAUI Android sample app -# - ${{ if eq(parameters.osGroup, 'Android') }}: -# - script: make run MONO_ARCH=arm64 DEPLOY_AND_RUN=false # -# workingDirectory: $(Build.SourcesDirectory) # -# displayName: Build MAUI Android sample app # # Build the iOS sample app # # - ${{ if eq(parameters.osGroup, 'iOS') }}: # - script: make build-appbundle TARGET=iOS MONO_ARCH=arm64 MONO_CONFIG=Release AOT=True USE_LLVM=False DEPLOY_AND_RUN=false # From f9724f64e520e4556bdf70f02d29b0de28325857 Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Thu, 30 Sep 2021 11:17:56 -0700 Subject: [PATCH 35/86] Split each build into it's own step with its own binlog and artifact publish. Doing them all at once should work for now, but if any targets are added in the future, this ensures they should not break the pipeline. --- .../templates/build-perf-maui-apps.yml | 152 ++++++++++-------- 1 file changed, 83 insertions(+), 69 deletions(-) diff --git a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml index 2b22b2440bc16..459b032774653 100644 --- a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml +++ b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml @@ -31,89 +31,103 @@ steps: ./dotnet.sh workload install maui --skip-manifest-update displayName: Install MAUI workingDirectory: $(Build.SourcesDirectory) - - script: | ./dotnet.sh new maui -n MauiTesting cd MauiTesting cp $(Build.SourcesDirectory)/src/mono/sample/MauiScenario.props ./Directory.Build.props cp $(Build.SourcesDirectory)/src/mono/sample/MauiScenario.props ./Directory.Build.targets - ../dotnet.sh build -bl:MauiTestingBin.binlog - displayName: Build MAUI + displayName: Setup MAUI Project workingDirectory: $(Build.SourcesDirectory) + + - script: | + ../dotnet.sh build -bl:MauiMacCatalyst.binlog -f net6.0-maccatalyst -o MacCatalystBuildOutput + displayName: Build MAUI MacCatalyst + workingDirectory: $(Build.SourcesDirectory)/MauiTesting + - task: PublishBuildArtifacts@1 # + condition: succeededOrFailed() # + displayName: 'Publish MacCatalyst binlog' # + inputs: + pathtoPublish: $(Build.SourcesDirectory)/MauiTesting/MauiTestingBin.binlog # + artifactName: ${{ parameters.artifactName }} # + - template: /eng/pipelines/common/upload-artifact-step.yml + parameters: + rootFolder: $(Build.SourcesDirectory)/MauiTesting # + includeRootFolder: true # + displayName: Maui MacCatalyst App # + artifactName: MauiMacatalystApp # + archiveExtension: '.tar.gz' # + archiveType: tar # + tarCompression: gz # + - script: rm -r -f ./bin + workingDirectory: $(Build.SourcesDirectory)/MauiTesting + displayName: Clean bindir + + - script: | + ../dotnet.sh build -bl:MauiAndroid.binlog -f net6.0-android -o AndroidBuildOutput + displayName: Build MAUI Android + workingDirectory: $(Build.SourcesDirectory)/MauiTesting + - task: PublishBuildArtifacts@1 # + condition: succeededOrFailed() # + displayName: 'Publish Android binlog' # + inputs: + pathtoPublish: $(Build.SourcesDirectory)/MauiTesting/MauiTestingBin.binlog # + artifactName: ${{ parameters.artifactName }} # + - template: /eng/pipelines/common/upload-artifact-step.yml + parameters: + rootFolder: $(Build.SourcesDirectory)/MauiTesting # + includeRootFolder: true # + displayName: Maui Android App # + artifactName: MauiAndroidApp # + archiveExtension: '.tar.gz' # + archiveType: tar # + tarCompression: gz # + - script: rm -r -f ./bin + workingDirectory: $(Build.SourcesDirectory)/MauiTesting + displayName: Clean bindir + - script: | + ../dotnet.sh build -bl:MauiiOS.binlog -f net6.0-ios -o iOSBuildOutput + displayName: Build MAUI iOS + workingDirectory: $(Build.SourcesDirectory)/MauiTesting + - task: PublishBuildArtifacts@1 # + condition: succeededOrFailed() # + displayName: 'Publish iOS binlog' # + inputs: + pathtoPublish: $(Build.SourcesDirectory)/MauiTesting/MauiTestingBin.binlog # + artifactName: ${{ parameters.artifactName }} # - template: /eng/pipelines/common/upload-artifact-step.yml parameters: rootFolder: $(Build.SourcesDirectory)/MauiTesting # includeRootFolder: true # - displayName: Maui Build # - artifactName: MauiBuild # + displayName: Maui iOS App # + artifactName: MauiiOSApp # archiveExtension: '.tar.gz' # archiveType: tar # tarCompression: gz # + - script: rm -r -f ./bin + workingDirectory: $(Build.SourcesDirectory)/MauiTesting + displayName: Clean bindir + -# # Build the iOS sample app # -# - ${{ if eq(parameters.osGroup, 'iOS') }}: -# - script: make build-appbundle TARGET=iOS MONO_ARCH=arm64 MONO_CONFIG=Release AOT=True USE_LLVM=False DEPLOY_AND_RUN=false # -# env: -# DevTeamProvisioning: '-' # -# workingDirectory: $(Build.SourcesDirectory)/src/mono/sample/iOS # -# displayName: Build HelloiOS AOT sample app LLVM=False # -# - task: PublishBuildArtifacts@1 # -# condition: succeededOrFailed() # -# displayName: 'Publish binlog' # -# inputs: -# pathtoPublish: $(Build.SourcesDirectory)/src/mono/sample/iOS/msbuild.binlog # -# artifactName: ${{ parameters.artifactName }} # -# - template: /eng/pipelines/common/upload-artifact-step.yml -# parameters: -# rootFolder: $(Build.SourcesDirectory)/src/mono/sample/iOS/bin/ios-arm64/publish/app/HelloiOS/Release-iphoneos/HelloiOS.app # -# includeRootFolder: true # -# displayName: iOS Sample App NoLLVM # -# artifactName: iOSSampleAppNoLLVM # -# archiveExtension: '.tar.gz' # -# archiveType: tar # -# tarCompression: gz # -# - script: rm -r -f $(Build.SourcesDirectory)/src/mono/sample/iOS/bin # -# workingDirectory: $(Build.SourcesDirectory)/src/mono/sample/iOS # -# displayName: Clean bindir # -# - script: make build-appbundle TARGET=iOS MONO_ARCH=arm64 MONO_CONFIG=Release AOT=True USE_LLVM=True DEPLOY_AND_RUN=false # -# env: -# DevTeamProvisioning: '-' -# workingDirectory: $(Build.SourcesDirectory)/src/mono/sample/iOS # -# displayName: Build HelloiOS AOT sample app LLVM=True # -# - task: PublishBuildArtifacts@1 # -# condition: succeededOrFailed() # -# displayName: 'Publish binlog' # -# inputs: -# pathtoPublish: $(Build.SourcesDirectory)/src/mono/sample/iOS/msbuild.binlog # -# artifactName: ${{ parameters.artifactName }} # -# - template: /eng/pipelines/common/upload-artifact-step.yml -# parameters: -# rootFolder: $(Build.SourcesDirectory)/src/mono/sample/iOS/bin/ios-arm64/publish/app/HelloiOS/Release-iphoneos/HelloiOS.app # -# includeRootFolder: true # -# displayName: iOS Sample App LLVM # -# artifactName: iOSSampleAppLLVM # -# archiveExtension: '.tar.gz' # -# archiveType: tar # -# tarCompression: gz # -# - template: /eng/pipelines/common/upload-artifact-step.yml -# parameters: -# osGroup: ${{ parameters.osGroup }} -# osSubgroup: ${{ parameters.osSubgroup }} -# archType: ${{ parameters.archType }} -# buildConfig: ${{ parameters.buildConfig }} -# runtimeFlavor: ${{ parameters.runtimeFlavor }} -# helixQueues: ${{ parameters.helixQueues }} -# targetRid: ${{ parameters.targetRid }} -# nameSuffix: ${{ parameters.nameSuffix }} -# platform: ${{ parameters.platform }} -# shouldContinueOnError: ${{ parameters.shouldContinueOnError }} -# rootFolder: ${{ parameters.rootFolder }} -# includeRootFolder: ${{ parameters.includeRootFolder }} -# displayName: ${{ parameters.displayName }} -# artifactName: ${{ parameters.artifactName }} -# archiveExtension: ${{ parameters.archiveExtension }} -# archiveType: ${{ parameters.archiveType }} -# tarCompression: ${{ parameters.tarCompression }} + + - template: /eng/pipelines/common/upload-artifact-step.yml + parameters: + osGroup: ${{ parameters.osGroup }} + osSubgroup: ${{ parameters.osSubgroup }} + archType: ${{ parameters.archType }} + buildConfig: ${{ parameters.buildConfig }} + runtimeFlavor: ${{ parameters.runtimeFlavor }} + helixQueues: ${{ parameters.helixQueues }} + targetRid: ${{ parameters.targetRid }} + nameSuffix: ${{ parameters.nameSuffix }} + platform: ${{ parameters.platform }} + shouldContinueOnError: ${{ parameters.shouldContinueOnError }} + rootFolder: ${{ parameters.rootFolder }} + includeRootFolder: ${{ parameters.includeRootFolder }} + displayName: ${{ parameters.displayName }} + artifactName: ${{ parameters.artifactName }} + archiveExtension: ${{ parameters.archiveExtension }} + archiveType: ${{ parameters.archiveType }} + tarCompression: ${{ parameters.tarCompression }} \ No newline at end of file From 178ebf9d9087a6b39ae59106549878d24ae03a69 Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Thu, 30 Sep 2021 11:27:00 -0700 Subject: [PATCH 36/86] Update the run conditions so each build will run regardless of the last. Look into changing the structure once MVP is complete. --- eng/pipelines/coreclr/templates/build-perf-maui-apps.yml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml index 459b032774653..cea31cafe2de7 100644 --- a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml +++ b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml @@ -61,9 +61,11 @@ steps: - script: rm -r -f ./bin workingDirectory: $(Build.SourcesDirectory)/MauiTesting displayName: Clean bindir + condition: succeededOrFailed() - script: | ../dotnet.sh build -bl:MauiAndroid.binlog -f net6.0-android -o AndroidBuildOutput + condition: succeededOrFailed() displayName: Build MAUI Android workingDirectory: $(Build.SourcesDirectory)/MauiTesting - task: PublishBuildArtifacts@1 # @@ -84,9 +86,11 @@ steps: - script: rm -r -f ./bin workingDirectory: $(Build.SourcesDirectory)/MauiTesting displayName: Clean bindir + condition: succeededOrFailed() - script: | ../dotnet.sh build -bl:MauiiOS.binlog -f net6.0-ios -o iOSBuildOutput + condition: succeededOrFailed() displayName: Build MAUI iOS workingDirectory: $(Build.SourcesDirectory)/MauiTesting - task: PublishBuildArtifacts@1 # @@ -107,9 +111,7 @@ steps: - script: rm -r -f ./bin workingDirectory: $(Build.SourcesDirectory)/MauiTesting displayName: Clean bindir - - - + condition: succeededOrFailed() - template: /eng/pipelines/common/upload-artifact-step.yml parameters: From 14940f13e815a93a7df93f9c0e23ec6788324f4d Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Thu, 30 Sep 2021 12:03:23 -0700 Subject: [PATCH 37/86] Modified perf.yml to have a more accurate job description for maui building. Fixed incorrect binlog file names. --- eng/pipelines/coreclr/perf.yml | 6 ++-- .../templates/build-perf-maui-apps.yml | 32 +++++++++---------- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/eng/pipelines/coreclr/perf.yml b/eng/pipelines/coreclr/perf.yml index f40ee522d4078..d21cb59fe5622 100644 --- a/eng/pipelines/coreclr/perf.yml +++ b/eng/pipelines/coreclr/perf.yml @@ -41,14 +41,14 @@ jobs: - iOS_arm64 jobParameters: buildArgs: -s mono -c $(_BuildConfig) - nameSuffix: iOSAndroidMaui + nameSuffix: MACiOSAndroidMaui isOfficialBuild: false extraStepsTemplate: /eng/pipelines/coreclr/templates/build-perf-maui-apps.yml extraStepsParameters: rootFolder: '$(Build.SourcesDirectory)/artifacts/' includeRootFolder: true - displayName: iOS and Android Maui Artifacts - artifactName: iOSAndroidMauiArm + displayName: MAC, iOS, and Android Maui Artifacts + artifactName: MACiOSAndroidMauiArm archiveExtension: '.tar.gz' archiveType: tar tarCompression: gz diff --git a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml index cea31cafe2de7..eeaef4dde3b6e 100644 --- a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml +++ b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml @@ -38,23 +38,24 @@ steps: cp $(Build.SourcesDirectory)/src/mono/sample/MauiScenario.props ./Directory.Build.targets displayName: Setup MAUI Project workingDirectory: $(Build.SourcesDirectory) - + - script: | - ../dotnet.sh build -bl:MauiMacCatalyst.binlog -f net6.0-maccatalyst -o MacCatalystBuildOutput - displayName: Build MAUI MacCatalyst + ../dotnet.sh build -bl:MauiAndroid.binlog -f net6.0-android -o AndroidBuildOutput + condition: succeededOrFailed() + displayName: Build MAUI Android workingDirectory: $(Build.SourcesDirectory)/MauiTesting - task: PublishBuildArtifacts@1 # condition: succeededOrFailed() # - displayName: 'Publish MacCatalyst binlog' # + displayName: 'Publish Android binlog' # inputs: - pathtoPublish: $(Build.SourcesDirectory)/MauiTesting/MauiTestingBin.binlog # + pathtoPublish: $(Build.SourcesDirectory)/MauiTesting/MauiAndroid.binlog # artifactName: ${{ parameters.artifactName }} # - template: /eng/pipelines/common/upload-artifact-step.yml parameters: rootFolder: $(Build.SourcesDirectory)/MauiTesting # includeRootFolder: true # - displayName: Maui MacCatalyst App # - artifactName: MauiMacatalystApp # + displayName: Maui Android App # + artifactName: MauiAndroidApp # archiveExtension: '.tar.gz' # archiveType: tar # tarCompression: gz # @@ -62,24 +63,23 @@ steps: workingDirectory: $(Build.SourcesDirectory)/MauiTesting displayName: Clean bindir condition: succeededOrFailed() - + - script: | - ../dotnet.sh build -bl:MauiAndroid.binlog -f net6.0-android -o AndroidBuildOutput - condition: succeededOrFailed() - displayName: Build MAUI Android + ../dotnet.sh build -bl:MauiMacCatalyst.binlog -f net6.0-maccatalyst -o MacCatalystBuildOutput + displayName: Build MAUI MacCatalyst workingDirectory: $(Build.SourcesDirectory)/MauiTesting - task: PublishBuildArtifacts@1 # condition: succeededOrFailed() # - displayName: 'Publish Android binlog' # + displayName: 'Publish MacCatalyst binlog' # inputs: - pathtoPublish: $(Build.SourcesDirectory)/MauiTesting/MauiTestingBin.binlog # + pathtoPublish: $(Build.SourcesDirectory)/MauiTesting/MauiMacCatalyst.binlog # artifactName: ${{ parameters.artifactName }} # - template: /eng/pipelines/common/upload-artifact-step.yml parameters: rootFolder: $(Build.SourcesDirectory)/MauiTesting # includeRootFolder: true # - displayName: Maui Android App # - artifactName: MauiAndroidApp # + displayName: Maui MacCatalyst App # + artifactName: MauiMacatalystApp # archiveExtension: '.tar.gz' # archiveType: tar # tarCompression: gz # @@ -97,7 +97,7 @@ steps: condition: succeededOrFailed() # displayName: 'Publish iOS binlog' # inputs: - pathtoPublish: $(Build.SourcesDirectory)/MauiTesting/MauiTestingBin.binlog # + pathtoPublish: $(Build.SourcesDirectory)/MauiTesting/MauiiOS.binlog # artifactName: ${{ parameters.artifactName }} # - template: /eng/pipelines/common/upload-artifact-step.yml parameters: From 82a6978cb530c9716990e8c0d00b33f1769105df Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Thu, 30 Sep 2021 12:05:27 -0700 Subject: [PATCH 38/86] Commented out mac and ios build since they need xcode 13 and the container only has xcode 12. --- .../templates/build-perf-maui-apps.yml | 94 +++++++++---------- 1 file changed, 47 insertions(+), 47 deletions(-) diff --git a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml index eeaef4dde3b6e..9cd9c11ab4c74 100644 --- a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml +++ b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml @@ -64,54 +64,54 @@ steps: displayName: Clean bindir condition: succeededOrFailed() - - script: | - ../dotnet.sh build -bl:MauiMacCatalyst.binlog -f net6.0-maccatalyst -o MacCatalystBuildOutput - displayName: Build MAUI MacCatalyst - workingDirectory: $(Build.SourcesDirectory)/MauiTesting - - task: PublishBuildArtifacts@1 # - condition: succeededOrFailed() # - displayName: 'Publish MacCatalyst binlog' # - inputs: - pathtoPublish: $(Build.SourcesDirectory)/MauiTesting/MauiMacCatalyst.binlog # - artifactName: ${{ parameters.artifactName }} # - - template: /eng/pipelines/common/upload-artifact-step.yml - parameters: - rootFolder: $(Build.SourcesDirectory)/MauiTesting # - includeRootFolder: true # - displayName: Maui MacCatalyst App # - artifactName: MauiMacatalystApp # - archiveExtension: '.tar.gz' # - archiveType: tar # - tarCompression: gz # - - script: rm -r -f ./bin - workingDirectory: $(Build.SourcesDirectory)/MauiTesting - displayName: Clean bindir - condition: succeededOrFailed() + # - script: | + # ../dotnet.sh build -bl:MauiMacCatalyst.binlog -f net6.0-maccatalyst -o MacCatalystBuildOutput + # displayName: Build MAUI MacCatalyst + # workingDirectory: $(Build.SourcesDirectory)/MauiTesting + # - task: PublishBuildArtifacts@1 # + # condition: succeededOrFailed() # + # displayName: 'Publish MacCatalyst binlog' # + # inputs: + # pathtoPublish: $(Build.SourcesDirectory)/MauiTesting/MauiMacCatalyst.binlog # + # artifactName: ${{ parameters.artifactName }} # + # - template: /eng/pipelines/common/upload-artifact-step.yml + # parameters: + # rootFolder: $(Build.SourcesDirectory)/MauiTesting # + # includeRootFolder: true # + # displayName: Maui MacCatalyst App # + # artifactName: MauiMacatalystApp # + # archiveExtension: '.tar.gz' # + # archiveType: tar # + # tarCompression: gz # + # - script: rm -r -f ./bin + # workingDirectory: $(Build.SourcesDirectory)/MauiTesting + # displayName: Clean bindir + # condition: succeededOrFailed() - - script: | - ../dotnet.sh build -bl:MauiiOS.binlog -f net6.0-ios -o iOSBuildOutput - condition: succeededOrFailed() - displayName: Build MAUI iOS - workingDirectory: $(Build.SourcesDirectory)/MauiTesting - - task: PublishBuildArtifacts@1 # - condition: succeededOrFailed() # - displayName: 'Publish iOS binlog' # - inputs: - pathtoPublish: $(Build.SourcesDirectory)/MauiTesting/MauiiOS.binlog # - artifactName: ${{ parameters.artifactName }} # - - template: /eng/pipelines/common/upload-artifact-step.yml - parameters: - rootFolder: $(Build.SourcesDirectory)/MauiTesting # - includeRootFolder: true # - displayName: Maui iOS App # - artifactName: MauiiOSApp # - archiveExtension: '.tar.gz' # - archiveType: tar # - tarCompression: gz # - - script: rm -r -f ./bin - workingDirectory: $(Build.SourcesDirectory)/MauiTesting - displayName: Clean bindir - condition: succeededOrFailed() + # - script: | + # ../dotnet.sh build -bl:MauiiOS.binlog -f net6.0-ios -o iOSBuildOutput + # condition: succeededOrFailed() + # displayName: Build MAUI iOS + # workingDirectory: $(Build.SourcesDirectory)/MauiTesting + # - task: PublishBuildArtifacts@1 # + # condition: succeededOrFailed() # + # displayName: 'Publish iOS binlog' # + # inputs: + # pathtoPublish: $(Build.SourcesDirectory)/MauiTesting/MauiiOS.binlog # + # artifactName: ${{ parameters.artifactName }} # + # - template: /eng/pipelines/common/upload-artifact-step.yml + # parameters: + # rootFolder: $(Build.SourcesDirectory)/MauiTesting # + # includeRootFolder: true # + # displayName: Maui iOS App # + # artifactName: MauiiOSApp # + # archiveExtension: '.tar.gz' # + # archiveType: tar # + # tarCompression: gz # + # - script: rm -r -f ./bin + # workingDirectory: $(Build.SourcesDirectory)/MauiTesting + # displayName: Clean bindir + # condition: succeededOrFailed() - template: /eng/pipelines/common/upload-artifact-step.yml parameters: From 4ca436a66a2b002166f3307ca93b25e8c749f26f Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Thu, 30 Sep 2021 13:18:31 -0700 Subject: [PATCH 39/86] Cleaned up the perf yml and added the building of the packs. Created a separate .targets file for the Maui build so that we can have actual stuff inside, which there is in this case. --- eng/pipelines/coreclr/perf.yml | 42 +------------------ .../templates/build-perf-maui-apps.yml | 2 +- src/mono/sample/MauiScenario.targets | 5 +++ 3 files changed, 7 insertions(+), 42 deletions(-) create mode 100644 src/mono/sample/MauiScenario.targets diff --git a/eng/pipelines/coreclr/perf.yml b/eng/pipelines/coreclr/perf.yml index d21cb59fe5622..3d620704c59e2 100644 --- a/eng/pipelines/coreclr/perf.yml +++ b/eng/pipelines/coreclr/perf.yml @@ -40,7 +40,7 @@ jobs: platforms: - iOS_arm64 jobParameters: - buildArgs: -s mono -c $(_BuildConfig) + buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) nameSuffix: MACiOSAndroidMaui isOfficialBuild: false extraStepsTemplate: /eng/pipelines/coreclr/templates/build-perf-maui-apps.yml @@ -53,46 +53,6 @@ jobs: archiveType: tar tarCompression: gz - # build mono iOS scenarios - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/coreclr/templates/build-perf-maui-apps.yml - # buildConfig: release - # runtimeFlavor: mono - # platforms: - # - iOS_arm64 - # jobParameters: - # nameSuffix: isOSAndroidMaui - # rootFolder: '$(Build.SourcesDirectory)/artifacts/' - # includeRootFolder: true - # displayName: iOS and Android Maui Artifacts - # artifactName: iOSAndroidMauiArm - # archiveExtension: '.tar.gz' - # archiveType: tar - # tarCompression: gz - - - # - 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: iOSAndroidMaui - # isOfficialBuild: false - # extraStepsTemplate: /eng/pipelines/coreclr/templates/build-perf-maui-apps.yml - # extraStepsParameters: - # rootFolder: '$(Build.SourcesDirectory)/artifacts/' - # includeRootFolder: true - # displayName: iOS and Android Maui Artifacts - # artifactName: iOSAndroidMauiArm - # archiveExtension: '.tar.gz' - # archiveType: tar - # tarCompression: gz - #- ${{ if and(ne(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'Schedule')) }}: # # build mono diff --git a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml index 9cd9c11ab4c74..f8fc31731fb9d 100644 --- a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml +++ b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml @@ -35,7 +35,7 @@ steps: ./dotnet.sh new maui -n MauiTesting cd MauiTesting cp $(Build.SourcesDirectory)/src/mono/sample/MauiScenario.props ./Directory.Build.props - cp $(Build.SourcesDirectory)/src/mono/sample/MauiScenario.props ./Directory.Build.targets + cp $(Build.SourcesDirectory)/src/mono/sample/MauiScenario.targets ./Directory.Build.targets displayName: Setup MAUI Project workingDirectory: $(Build.SourcesDirectory) diff --git a/src/mono/sample/MauiScenario.targets b/src/mono/sample/MauiScenario.targets new file mode 100644 index 0000000000000..10df2b584509d --- /dev/null +++ b/src/mono/sample/MauiScenario.targets @@ -0,0 +1,5 @@ + + + + + From 1451ff1d1d6a1df10cece45259e03802f8ef2eb8 Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Thu, 30 Sep 2021 13:42:21 -0700 Subject: [PATCH 40/86] Added what seems to be an approach to replacing the correct packages when building. Disabled targets that will likely be used so I can get the runtime packages that I will need first. Taken from a Directory.Build.targets file in some wasm scenario thing. --- src/mono/sample/MauiScenario.targets | 79 ++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) diff --git a/src/mono/sample/MauiScenario.targets b/src/mono/sample/MauiScenario.targets index 10df2b584509d..8c7445bb36d56 100644 --- a/src/mono/sample/MauiScenario.targets +++ b/src/mono/sample/MauiScenario.targets @@ -1,5 +1,84 @@ + + + <_MicrosoftNetCoreAppRefDir>$(AppRefDir)\ + Microsoft.NETCore.App + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <_targetingPackReferenceExclusion Include="$(TargetName)" /> + <_targetingPackReferenceExclusion Include="@(_ResolvedProjectReferencePaths->'%(Filename)')" /> + <_targetingPackReferenceExclusion Include="@(DefaultReferenceExclusion)" /> + + + + <_targetingPackReferenceWithExclusion Include="@(Reference)"> + %(_targetingPackReferenceExclusion.Identity) + + + + From 6afa983f060dae66ea99f020585945670fddf249 Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Thu, 30 Sep 2021 14:13:01 -0700 Subject: [PATCH 41/86] Fix duplicate condition issue. --- src/mono/sample/MauiScenario.targets | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/mono/sample/MauiScenario.targets b/src/mono/sample/MauiScenario.targets index 8c7445bb36d56..d1b109748283c 100644 --- a/src/mono/sample/MauiScenario.targets +++ b/src/mono/sample/MauiScenario.targets @@ -63,10 +63,9 @@ + AfterTargets="ResolveTargetingPackAssets"> <_targetingPackReferenceExclusion Include="$(TargetName)" /> <_targetingPackReferenceExclusion Include="@(_ResolvedProjectReferencePaths->'%(Filename)')" /> From c251b36ab1fdbd207cc885c79a8d555473e610a6 Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Thu, 30 Sep 2021 15:09:35 -0700 Subject: [PATCH 42/86] Maybe added build of mono.workloads and search for pack. --- eng/pipelines/coreclr/perf.yml | 2 +- eng/pipelines/coreclr/templates/build-perf-maui-apps.yml | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/eng/pipelines/coreclr/perf.yml b/eng/pipelines/coreclr/perf.yml index 3d620704c59e2..53c9c8f05b77c 100644 --- a/eng/pipelines/coreclr/perf.yml +++ b/eng/pipelines/coreclr/perf.yml @@ -40,7 +40,7 @@ jobs: platforms: - iOS_arm64 jobParameters: - buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + buildArgs: -s mono+libs+host+packs+mono.workloads -c $(_BuildConfig) nameSuffix: MACiOSAndroidMaui isOfficialBuild: false extraStepsTemplate: /eng/pipelines/coreclr/templates/build-perf-maui-apps.yml diff --git a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml index f8fc31731fb9d..599d862482ba8 100644 --- a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml +++ b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml @@ -26,6 +26,7 @@ steps: # Create MAUI Sample app (Do we want this here or lower?) - script: | + find . -name "Microsoft.NETCore.App.Runtime.Mono.android" curl -o ./rollback.json 'maui.blob.core.windows.net/metadata/rollbacks/main.json' ./dotnet.sh workload update --from-rollback-file ./rollback.json ./dotnet.sh workload install maui --skip-manifest-update From a506a122c2e3704c8188811d0d872c19e6ba4390 Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Thu, 30 Sep 2021 15:38:33 -0700 Subject: [PATCH 43/86] Added mscordbi to build subset, set install maui to always run as it doesn't currently depend on the build of runtime, Activated updatetargetingandruntimepack. --- eng/pipelines/coreclr/perf.yml | 2 +- .../coreclr/templates/build-perf-maui-apps.yml | 1 + src/mono/sample/MauiScenario.targets | 17 ++++++++--------- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/eng/pipelines/coreclr/perf.yml b/eng/pipelines/coreclr/perf.yml index 53c9c8f05b77c..aa68e72ee2de0 100644 --- a/eng/pipelines/coreclr/perf.yml +++ b/eng/pipelines/coreclr/perf.yml @@ -40,7 +40,7 @@ jobs: platforms: - iOS_arm64 jobParameters: - buildArgs: -s mono+libs+host+packs+mono.workloads -c $(_BuildConfig) + buildArgs: -s mono+libs+host+packs+mono.mscordbi+mono.workloads -c $(_BuildConfig) nameSuffix: MACiOSAndroidMaui isOfficialBuild: false extraStepsTemplate: /eng/pipelines/coreclr/templates/build-perf-maui-apps.yml diff --git a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml index 599d862482ba8..2a576f69eed6d 100644 --- a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml +++ b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml @@ -32,6 +32,7 @@ steps: ./dotnet.sh workload install maui --skip-manifest-update displayName: Install MAUI workingDirectory: $(Build.SourcesDirectory) + condition: succeededOrFailed() - script: | ./dotnet.sh new maui -n MauiTesting cd MauiTesting diff --git a/src/mono/sample/MauiScenario.targets b/src/mono/sample/MauiScenario.targets index d1b109748283c..616dfd4cee37a 100644 --- a/src/mono/sample/MauiScenario.targets +++ b/src/mono/sample/MauiScenario.targets @@ -27,27 +27,26 @@ + AfterTargets="ResolveFrameworkReferences"> + PackageDirectory="$(NetCoreTargetingPackRoot)\Microsoft.NETCore.App.Runtime.Mono.android-arm64\$(RuntimePackInWorkloadVersion)" + RuntimeIdentifier="android-arm64" /> + RuntimePackPath="$(NetCoreTargetingPackRoot)\Microsoft.NETCore.App.Runtime.Mono.android-arm64\$(RuntimePackInWorkloadVersion)" + RuntimeIdentifier="android-arm64" /> From 07f80171270beee9d9d86aaea5bec57390c5cddf Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Fri, 1 Oct 2021 10:09:19 -0700 Subject: [PATCH 44/86] Simplified build subsets and attempting to brute force the build for android. --- eng/pipelines/coreclr/perf.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/eng/pipelines/coreclr/perf.yml b/eng/pipelines/coreclr/perf.yml index aa68e72ee2de0..cdcd7aeea55eb 100644 --- a/eng/pipelines/coreclr/perf.yml +++ b/eng/pipelines/coreclr/perf.yml @@ -40,8 +40,10 @@ jobs: platforms: - iOS_arm64 jobParameters: - buildArgs: -s mono+libs+host+packs+mono.mscordbi+mono.workloads -c $(_BuildConfig) + buildArgs: -s mono+libs -c $(_BuildConfig) nameSuffix: MACiOSAndroidMaui + archType: arm64 + osGroup: Android isOfficialBuild: false extraStepsTemplate: /eng/pipelines/coreclr/templates/build-perf-maui-apps.yml extraStepsParameters: From 412a2eb1c171826307ac283e667fc931633d2c43 Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Fri, 1 Oct 2021 10:13:16 -0700 Subject: [PATCH 45/86] Turns out you cannot brute force in the arg types, so instead I am just rebuilding for what I want after the first build. --- eng/pipelines/coreclr/perf.yml | 2 -- eng/pipelines/coreclr/templates/build-perf-maui-apps.yml | 3 ++- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/eng/pipelines/coreclr/perf.yml b/eng/pipelines/coreclr/perf.yml index cdcd7aeea55eb..512bbf63424ef 100644 --- a/eng/pipelines/coreclr/perf.yml +++ b/eng/pipelines/coreclr/perf.yml @@ -42,8 +42,6 @@ jobs: jobParameters: buildArgs: -s mono+libs -c $(_BuildConfig) nameSuffix: MACiOSAndroidMaui - archType: arm64 - osGroup: Android isOfficialBuild: false extraStepsTemplate: /eng/pipelines/coreclr/templates/build-perf-maui-apps.yml extraStepsParameters: diff --git a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml index 2a576f69eed6d..4eaaaf216923a 100644 --- a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml +++ b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml @@ -26,7 +26,8 @@ steps: # Create MAUI Sample app (Do we want this here or lower?) - script: | - find . -name "Microsoft.NETCore.App.Runtime.Mono.android" + find . -name "*Microsoft.NETCore.App.Runtime.Mono.android*" + ./build.sh -arch arm64 -os Android -s mono+libs -c Release /p:CrossBuild=false curl -o ./rollback.json 'maui.blob.core.windows.net/metadata/rollbacks/main.json' ./dotnet.sh workload update --from-rollback-file ./rollback.json ./dotnet.sh workload install maui --skip-manifest-update From 8b633cd83e910355f7b285b11e513df1de7f9ea5 Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Fri, 1 Oct 2021 11:02:23 -0700 Subject: [PATCH 46/86] Fix the location of the find --- eng/pipelines/coreclr/templates/build-perf-maui-apps.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml index 4eaaaf216923a..20e723fb5544c 100644 --- a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml +++ b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml @@ -26,8 +26,8 @@ steps: # Create MAUI Sample app (Do we want this here or lower?) - script: | - find . -name "*Microsoft.NETCore.App.Runtime.Mono.android*" ./build.sh -arch arm64 -os Android -s mono+libs -c Release /p:CrossBuild=false + find . -name "*Microsoft.NETCore.App.Runtime.Mono.android*" curl -o ./rollback.json 'maui.blob.core.windows.net/metadata/rollbacks/main.json' ./dotnet.sh workload update --from-rollback-file ./rollback.json ./dotnet.sh workload install maui --skip-manifest-update From 71e842e4bafe1dfd9cc1f8116178b4c0fc0bb7d5 Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Fri, 1 Oct 2021 11:13:47 -0700 Subject: [PATCH 47/86] Build failed before other injection seemingly because a pack was missing, adding packs back to the build. --- eng/pipelines/coreclr/perf.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/coreclr/perf.yml b/eng/pipelines/coreclr/perf.yml index 512bbf63424ef..3d620704c59e2 100644 --- a/eng/pipelines/coreclr/perf.yml +++ b/eng/pipelines/coreclr/perf.yml @@ -40,7 +40,7 @@ jobs: platforms: - iOS_arm64 jobParameters: - buildArgs: -s mono+libs -c $(_BuildConfig) + buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) nameSuffix: MACiOSAndroidMaui isOfficialBuild: false extraStepsTemplate: /eng/pipelines/coreclr/templates/build-perf-maui-apps.yml From 9da47a3d498a509cf7ab81ad6d3dd09ebb414cfd Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Fri, 1 Oct 2021 12:14:40 -0700 Subject: [PATCH 48/86] Removed name override, it seems like it may be causing some issues. --- src/mono/sample/MauiScenario.targets | 1 - 1 file changed, 1 deletion(-) diff --git a/src/mono/sample/MauiScenario.targets b/src/mono/sample/MauiScenario.targets index 616dfd4cee37a..7c0fe56f3a920 100644 --- a/src/mono/sample/MauiScenario.targets +++ b/src/mono/sample/MauiScenario.targets @@ -2,7 +2,6 @@ <_MicrosoftNetCoreAppRefDir>$(AppRefDir)\ - Microsoft.NETCore.App From 4d5ad70def6f62f6189bbd0f62d72fce86f2bf5c Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Fri, 1 Oct 2021 13:16:12 -0700 Subject: [PATCH 49/86] The previous fix was not actually the problem. The android build was failing, attempting to fix that. --- eng/pipelines/coreclr/templates/build-perf-maui-apps.yml | 2 +- src/mono/sample/MauiScenario.targets | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml index 20e723fb5544c..60beddad19e04 100644 --- a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml +++ b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml @@ -26,7 +26,7 @@ steps: # Create MAUI Sample app (Do we want this here or lower?) - script: | - ./build.sh -arch arm64 -os Android -s mono+libs -c Release /p:CrossBuild=false + ./build.sh -arch arm64 -os Android -s mono+libs+host+packs -c Release /p:CrossBuild=false find . -name "*Microsoft.NETCore.App.Runtime.Mono.android*" curl -o ./rollback.json 'maui.blob.core.windows.net/metadata/rollbacks/main.json' ./dotnet.sh workload update --from-rollback-file ./rollback.json diff --git a/src/mono/sample/MauiScenario.targets b/src/mono/sample/MauiScenario.targets index 7c0fe56f3a920..616dfd4cee37a 100644 --- a/src/mono/sample/MauiScenario.targets +++ b/src/mono/sample/MauiScenario.targets @@ -2,6 +2,7 @@ <_MicrosoftNetCoreAppRefDir>$(AppRefDir)\ + Microsoft.NETCore.App From 3707c975a425db09ddfeed8d89f7803661a4fe95 Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Fri, 1 Oct 2021 14:14:01 -0700 Subject: [PATCH 50/86] Moved android build to its own script spot for easier failure catching, added -ci switch as it was still failing with the same error for unknown reasons. --- eng/pipelines/coreclr/templates/build-perf-maui-apps.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml index 60beddad19e04..af3eca8f24916 100644 --- a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml +++ b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml @@ -26,8 +26,12 @@ steps: # Create MAUI Sample app (Do we want this here or lower?) - script: | - ./build.sh -arch arm64 -os Android -s mono+libs+host+packs -c Release /p:CrossBuild=false + ./build.sh -ci -arch arm64 -os Android -s mono+libs+host+packs -c Release /p:CrossBuild=false find . -name "*Microsoft.NETCore.App.Runtime.Mono.android*" + displayName: Build Dotnet Android + workingDirectory: $(Build.SourcesDirectory) + condition: succeededOrFailed() + - script: | curl -o ./rollback.json 'maui.blob.core.windows.net/metadata/rollbacks/main.json' ./dotnet.sh workload update --from-rollback-file ./rollback.json ./dotnet.sh workload install maui --skip-manifest-update From 653ba77bef7cb4a0dbcbbf9616bf716f53e537c8 Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Fri, 1 Oct 2021 14:15:11 -0700 Subject: [PATCH 51/86] Change find to find all potentially correct files that I will eventually need. --- eng/pipelines/coreclr/templates/build-perf-maui-apps.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml index af3eca8f24916..b66574ebe5318 100644 --- a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml +++ b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml @@ -27,7 +27,7 @@ steps: - script: | ./build.sh -ci -arch arm64 -os Android -s mono+libs+host+packs -c Release /p:CrossBuild=false - find . -name "*Microsoft.NETCore.App.Runtime.Mono.android*" + find . -name "*Microsoft.NETCore.App.Runtime.Mono.*" displayName: Build Dotnet Android workingDirectory: $(Build.SourcesDirectory) condition: succeededOrFailed() From ba0216491e776278cc6a5fb700e64c6db6f22017 Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Fri, 1 Oct 2021 15:23:35 -0700 Subject: [PATCH 52/86] Try to find minimum buid with the ios build, have maui stuff run no matter what, and replace blazor tests in runtime package replace with the one in perf blazor tests. --- eng/pipelines/coreclr/perf.yml | 2 +- .../templates/build-perf-maui-apps.yml | 2 + src/mono/sample/MauiScenario.targets | 37 +++++++------------ 3 files changed, 16 insertions(+), 25 deletions(-) diff --git a/eng/pipelines/coreclr/perf.yml b/eng/pipelines/coreclr/perf.yml index 3d620704c59e2..dbb8644b6d592 100644 --- a/eng/pipelines/coreclr/perf.yml +++ b/eng/pipelines/coreclr/perf.yml @@ -40,7 +40,7 @@ jobs: platforms: - iOS_arm64 jobParameters: - buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + buildArgs: -s mono+packs -c $(_BuildConfig) nameSuffix: MACiOSAndroidMaui isOfficialBuild: false extraStepsTemplate: /eng/pipelines/coreclr/templates/build-perf-maui-apps.yml diff --git a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml index b66574ebe5318..92f60553182c5 100644 --- a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml +++ b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml @@ -45,6 +45,8 @@ steps: cp $(Build.SourcesDirectory)/src/mono/sample/MauiScenario.targets ./Directory.Build.targets displayName: Setup MAUI Project workingDirectory: $(Build.SourcesDirectory) + condition: succeededOrFailed() + - script: | ../dotnet.sh build -bl:MauiAndroid.binlog -f net6.0-android -o AndroidBuildOutput diff --git a/src/mono/sample/MauiScenario.targets b/src/mono/sample/MauiScenario.targets index 616dfd4cee37a..84277eac0698d 100644 --- a/src/mono/sample/MauiScenario.targets +++ b/src/mono/sample/MauiScenario.targets @@ -1,10 +1,4 @@ - - - <_MicrosoftNetCoreAppRefDir>$(AppRefDir)\ - Microsoft.NETCore.App - - @@ -28,25 +22,20 @@ + + $(Build.SourcesDirectory)/artifacts/packages/Release/Shipping/ + $(Build.SourcesDirectory)/artifacts/packages/Release/Shipping/ + - - - - + + + From c1795d4bc6e836a5f2def9c668b42ed54c6f0616 Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Fri, 1 Oct 2021 15:48:42 -0700 Subject: [PATCH 53/86] Do we really need more than mono? The quest to find the minimum build while waiting for other builds. --- eng/pipelines/coreclr/perf.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/coreclr/perf.yml b/eng/pipelines/coreclr/perf.yml index dbb8644b6d592..b2fccc3ed249c 100644 --- a/eng/pipelines/coreclr/perf.yml +++ b/eng/pipelines/coreclr/perf.yml @@ -40,7 +40,7 @@ jobs: platforms: - iOS_arm64 jobParameters: - buildArgs: -s mono+packs -c $(_BuildConfig) + buildArgs: -s mono -c $(_BuildConfig) nameSuffix: MACiOSAndroidMaui isOfficialBuild: false extraStepsTemplate: /eng/pipelines/coreclr/templates/build-perf-maui-apps.yml From f000d04f95981cce07d2a10a27e43775684ab192 Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Mon, 4 Oct 2021 09:21:01 -0700 Subject: [PATCH 54/86] Added steps to emulate workload build in main runtime pipeline, this should generate and make available the packages we need. Also did some slight modifications to the targets file to hopefully get a step closer to the packages being replaced. --- eng/pipelines/coreclr/perf.yml | 29 +++++++++++++++++++ .../templates/build-perf-maui-apps.yml | 27 ++++++++++++----- src/mono/sample/MauiScenario.targets | 12 ++++---- 3 files changed, 55 insertions(+), 13 deletions(-) diff --git a/eng/pipelines/coreclr/perf.yml b/eng/pipelines/coreclr/perf.yml index b2fccc3ed249c..20826dec71091 100644 --- a/eng/pipelines/coreclr/perf.yml +++ b/eng/pipelines/coreclr/perf.yml @@ -32,6 +32,30 @@ schedules: jobs: - ${{ if ne(variables['System.TeamProject'], 'public')}}: + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: release + runtimeFlavor: mono + platforms: + - Android_x64 + - Android_x86 + - Android_arm + - Android_arm64 + # - MacCatalyst_x64 + # - MacCatalyst_arm64 + # - iOS_arm + # - iOS_arm64 + # - OSX_x64 + # - OSX_arm64 + jobParameters: + buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + nameSuffix: Maui_Packs_Mono + isOfficialBuild: false + extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml + extraStepsParameters: + name: MonoRuntimePacks + - template: /eng/pipelines/common/platform-matrix.yml parameters: jobTemplate: /eng/pipelines/common/global-build-job.yml @@ -39,6 +63,11 @@ jobs: runtimeFlavor: mono platforms: - iOS_arm64 + dependsOn: + - Build_Android_arm_release_AllSubsets_Mono + - Build_Android_arm64_release_AllSubsets_Mono + - Build_Android_x86_release_AllSubsets_Mono + - Build_Android_x64_release_AllSubsets_Mono jobParameters: buildArgs: -s mono -c $(_BuildConfig) nameSuffix: MACiOSAndroidMaui diff --git a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml index 92f60553182c5..40df81fb4d960 100644 --- a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml +++ b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml @@ -19,18 +19,31 @@ parameters: steps: + - task: DownloadPipelineArtifact@2 + inputs: + artifact: 'IntermediateArtifacts' + path: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks + patterns: | + IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NETCore.App.Runtime.Mono.android-*.nupkg + + # IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NETCore.App.Runtime.Mono.ios-*.nupkg + # IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NETCore.App.Runtime.Mono.iossimulator-*.nupkg + # IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NETCore.App.Runtime.Mono.maccatalyst-*.nupkg + + - task: CopyFiles@2 + displayName: Flatten packages + inputs: + sourceFolder: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks + contents: '*/Shipping/*.nupkg' + cleanTargetFolder: false + targetFolder: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks + flattenFolders: true + # Download and CI install dotnet # Download latest MAUI # Update the manifests based on the gated source # Install the MAUI workload install maui (with proper feeds in the nuget.config) # Create MAUI Sample app (Do we want this here or lower?) - - - script: | - ./build.sh -ci -arch arm64 -os Android -s mono+libs+host+packs -c Release /p:CrossBuild=false - find . -name "*Microsoft.NETCore.App.Runtime.Mono.*" - displayName: Build Dotnet Android - workingDirectory: $(Build.SourcesDirectory) - condition: succeededOrFailed() - script: | curl -o ./rollback.json 'maui.blob.core.windows.net/metadata/rollbacks/main.json' ./dotnet.sh workload update --from-rollback-file ./rollback.json diff --git a/src/mono/sample/MauiScenario.targets b/src/mono/sample/MauiScenario.targets index 84277eac0698d..35066f40dc3f3 100644 --- a/src/mono/sample/MauiScenario.targets +++ b/src/mono/sample/MauiScenario.targets @@ -23,19 +23,19 @@ - $(Build.SourcesDirectory)/artifacts/packages/Release/Shipping/ - $(Build.SourcesDirectory)/artifacts/packages/Release/Shipping/ + ./DownloadedPackages + ./DownloadedPackages - + /> --> - + /> --> From cfb0a7d696ef4dbecff2a5b034b737cf1673c432 Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Mon, 4 Oct 2021 09:22:35 -0700 Subject: [PATCH 55/86] Fix? job parameter yaml errors. --- eng/pipelines/coreclr/perf.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/pipelines/coreclr/perf.yml b/eng/pipelines/coreclr/perf.yml index 20826dec71091..9428c01a9ae3a 100644 --- a/eng/pipelines/coreclr/perf.yml +++ b/eng/pipelines/coreclr/perf.yml @@ -42,12 +42,6 @@ jobs: - Android_x86 - Android_arm - Android_arm64 - # - MacCatalyst_x64 - # - MacCatalyst_arm64 - # - iOS_arm - # - iOS_arm64 - # - OSX_x64 - # - OSX_arm64 jobParameters: buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) nameSuffix: Maui_Packs_Mono @@ -55,6 +49,12 @@ jobs: extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml extraStepsParameters: name: MonoRuntimePacks + # - MacCatalyst_x64 + # - MacCatalyst_arm64 + # - iOS_arm + # - iOS_arm64 + # - OSX_x64 + # - OSX_arm64 - template: /eng/pipelines/common/platform-matrix.yml parameters: From 4b1264c67109537210133c3aacf6c16356e7a019 Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Mon, 4 Oct 2021 09:23:51 -0700 Subject: [PATCH 56/86] Had poor indentation. --- eng/pipelines/coreclr/perf.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/eng/pipelines/coreclr/perf.yml b/eng/pipelines/coreclr/perf.yml index 9428c01a9ae3a..3142041915acb 100644 --- a/eng/pipelines/coreclr/perf.yml +++ b/eng/pipelines/coreclr/perf.yml @@ -42,13 +42,13 @@ jobs: - Android_x86 - Android_arm - Android_arm64 - jobParameters: - buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - nameSuffix: Maui_Packs_Mono - isOfficialBuild: false - extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml - extraStepsParameters: - name: MonoRuntimePacks + jobParameters: + buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + nameSuffix: Maui_Packs_Mono + isOfficialBuild: false + extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml + extraStepsParameters: + name: MonoRuntimePacks # - MacCatalyst_x64 # - MacCatalyst_arm64 # - iOS_arm From efe3cdd2a53d1cda03e74a7211dd0f13b3c2e320 Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Mon, 4 Oct 2021 09:25:55 -0700 Subject: [PATCH 57/86] Initially forgot to update the depends on for the actual maui build. --- eng/pipelines/coreclr/perf.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/eng/pipelines/coreclr/perf.yml b/eng/pipelines/coreclr/perf.yml index 3142041915acb..1bf38df894d02 100644 --- a/eng/pipelines/coreclr/perf.yml +++ b/eng/pipelines/coreclr/perf.yml @@ -64,10 +64,10 @@ jobs: platforms: - iOS_arm64 dependsOn: - - Build_Android_arm_release_AllSubsets_Mono - - Build_Android_arm64_release_AllSubsets_Mono - - Build_Android_x86_release_AllSubsets_Mono - - Build_Android_x64_release_AllSubsets_Mono + - Build_Android_arm_release_Maui_Packs_Mono + - Build_Android_arm64_release_Maui_Packs_Mono + - Build_Android_x86_release_Maui_Packs_Mono + - Build_Android_x64_release_Maui_Packs_Mono jobParameters: buildArgs: -s mono -c $(_BuildConfig) nameSuffix: MACiOSAndroidMaui From fe71cb3a1e704f6b88a5d3125a1522f31a51b9df Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Mon, 4 Oct 2021 09:36:14 -0700 Subject: [PATCH 58/86] Attempt to fix the depends on parameter. --- eng/pipelines/coreclr/perf.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/eng/pipelines/coreclr/perf.yml b/eng/pipelines/coreclr/perf.yml index 1bf38df894d02..e9ed8d1ab89cc 100644 --- a/eng/pipelines/coreclr/perf.yml +++ b/eng/pipelines/coreclr/perf.yml @@ -63,12 +63,12 @@ jobs: runtimeFlavor: mono platforms: - iOS_arm64 - dependsOn: - - Build_Android_arm_release_Maui_Packs_Mono - - Build_Android_arm64_release_Maui_Packs_Mono - - Build_Android_x86_release_Maui_Packs_Mono - - Build_Android_x64_release_Maui_Packs_Mono jobParameters: + dependsOn: + - Build_Android_arm_release_Maui_Packs_Mono + - Build_Android_arm64_release_Maui_Packs_Mono + - Build_Android_x86_release_Maui_Packs_Mono + - Build_Android_x64_release_Maui_Packs_Mono buildArgs: -s mono -c $(_BuildConfig) nameSuffix: MACiOSAndroidMaui isOfficialBuild: false From 0dfe6047dc5fbabe66b5cdaddef617d0dd70f1f3 Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Mon, 4 Oct 2021 13:13:49 -0700 Subject: [PATCH 59/86] Fixed app runtime directory location for insertion of new packs. --- src/mono/sample/MauiScenario.targets | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/mono/sample/MauiScenario.targets b/src/mono/sample/MauiScenario.targets index 35066f40dc3f3..3cf462ad95af7 100644 --- a/src/mono/sample/MauiScenario.targets +++ b/src/mono/sample/MauiScenario.targets @@ -23,8 +23,8 @@ - ./DownloadedPackages - ./DownloadedPackages + ./ArtifactPacks + ./ArtifactPacks - - @@ -31,26 +19,52 @@ NuGetPackageVersion="$(ProductVersion)" PackageDirectory="$(MicrosoftNetCoreAppRefPackDir.TrimEnd('/\'))" /> --> - + + + + + + + - - + --> - @@ -67,5 +81,5 @@ - + --> From 829e74d34c6e3cf7a0a43ebc31b148a7b3caf36f Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Tue, 5 Oct 2021 10:26:51 -0700 Subject: [PATCH 61/86] Changed build type to release and updated the extract files command to actually hopefully work. --- eng/pipelines/coreclr/templates/build-perf-maui-apps.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml index 279f1b4f043da..ec1d8e6f3595f 100644 --- a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml +++ b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml @@ -42,7 +42,7 @@ steps: #Unzip the nuget packages to make the actual runtimes accessible - task: ExtractFiles@1 inputs: - archiveFilePatterns: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks/ + archiveFilePatterns: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks/Microsoft.NETCore.App.Runtime.Mono*.nupkg destinationFolder: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks/ overwriteExistingFiles: true @@ -78,7 +78,7 @@ steps: - script: | - ../dotnet.sh build -bl:MauiAndroid.binlog -f net6.0-android -o AndroidBuildOutput + ../dotnet.sh publish -bl:MauiAndroid.binlog -f net6.0-android -c Release condition: succeededOrFailed() displayName: Build MAUI Android workingDirectory: $(Build.SourcesDirectory)/MauiTesting @@ -90,7 +90,7 @@ steps: artifactName: ${{ parameters.artifactName }} # - template: /eng/pipelines/common/upload-artifact-step.yml parameters: - rootFolder: $(Build.SourcesDirectory)/MauiTesting # + rootFolder: $(Build.SourcesDirectory)/MauiTesting # TODO Make the APK includeRootFolder: true # displayName: Maui Android App # artifactName: MauiAndroidApp # From b21750e849a7200c548de07fb2afe4d994b1a91c Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Tue, 5 Oct 2021 11:16:44 -0700 Subject: [PATCH 62/86] Don't delete the downloaded files because if we do, we can't extract them. --- eng/pipelines/coreclr/templates/build-perf-maui-apps.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml index ec1d8e6f3595f..b3afcee5ce68b 100644 --- a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml +++ b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml @@ -45,6 +45,7 @@ steps: archiveFilePatterns: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks/Microsoft.NETCore.App.Runtime.Mono*.nupkg destinationFolder: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks/ overwriteExistingFiles: true + cleanDestinationFolder: false # Rename files for clarity between versions - script: | From 8c21d090f93cd7d97840069ae5a84f2f6cf6f9b7 Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Tue, 5 Oct 2021 12:29:42 -0700 Subject: [PATCH 63/86] Fix the renaming to a style that should actually work. --- eng/pipelines/coreclr/templates/build-perf-maui-apps.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml index b3afcee5ce68b..6827a357e7f28 100644 --- a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml +++ b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml @@ -49,10 +49,10 @@ steps: # Rename files for clarity between versions - script: | - mv Microsoft.NETCore.App.Runtime.Mono.android-arm.*!(nupkg) Microsoft.NETCore.App.Runtime.Mono.android-arm - mv Microsoft.NETCore.App.Runtime.Mono.android-arm64.*!(nupkg) Microsoft.NETCore.App.Runtime.Mono.android-arm64 - mv Microsoft.NETCore.App.Runtime.Mono.android-x64.*!(nupkg) Microsoft.NETCore.App.Runtime.Mono.android-x64 - mv Microsoft.NETCore.App.Runtime.Mono.android-x86.*!(nupkg) Microsoft.NETCore.App.Runtime.Mono.android-x86 + mv Microsoft.NETCore.App.Runtime.Mono.android-arm.*/ Microsoft.NETCore.App.Runtime.Mono.android-arm + mv Microsoft.NETCore.App.Runtime.Mono.android-arm64.*/ Microsoft.NETCore.App.Runtime.Mono.android-arm64 + mv Microsoft.NETCore.App.Runtime.Mono.android-x64.*/ Microsoft.NETCore.App.Runtime.Mono.android-x64 + mv Microsoft.NETCore.App.Runtime.Mono.android-x86.*/ Microsoft.NETCore.App.Runtime.Mono.android-x86 displayName: Rename Folders workingDirectory: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks From da6d9421471f44ce22c12a1d2bab90c3a482312b Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Tue, 5 Oct 2021 13:40:18 -0700 Subject: [PATCH 64/86] Fixed globbing pattern and added a ls for files. --- eng/pipelines/coreclr/templates/build-perf-maui-apps.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml index 6827a357e7f28..226885d18e348 100644 --- a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml +++ b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml @@ -24,7 +24,7 @@ steps: artifact: 'IntermediateArtifacts' path: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks patterns: | - IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NETCore.App.Runtime.Mono.android-*!(symbols).nupkg + IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NETCore.App.Runtime.Mono.android-!(*.symbols).nupkg # IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NETCore.App.Runtime.Mono.ios-*.nupkg # IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NETCore.App.Runtime.Mono.iossimulator-*.nupkg @@ -49,6 +49,7 @@ steps: # Rename files for clarity between versions - script: | + ls mv Microsoft.NETCore.App.Runtime.Mono.android-arm.*/ Microsoft.NETCore.App.Runtime.Mono.android-arm mv Microsoft.NETCore.App.Runtime.Mono.android-arm64.*/ Microsoft.NETCore.App.Runtime.Mono.android-arm64 mv Microsoft.NETCore.App.Runtime.Mono.android-x64.*/ Microsoft.NETCore.App.Runtime.Mono.android-x64 From dc6bbb1c0d355de8a0a0b62cf4b546cad988439a Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Tue, 5 Oct 2021 13:47:49 -0700 Subject: [PATCH 65/86] Added step to rename nupkg to zip so they will actually be extracted (test necessity). --- .../coreclr/templates/build-perf-maui-apps.yml | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml index 226885d18e348..ea9173c5d3083 100644 --- a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml +++ b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml @@ -38,11 +38,20 @@ steps: cleanTargetFolder: false targetFolder: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks flattenFolders: true + + - script: | + for file in *.nupkg + do + mv -v "$file" "${file%.nupkg}.zip" + done + displayName: Update File Extensions + workingDirectory: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks + #Unzip the nuget packages to make the actual runtimes accessible - task: ExtractFiles@1 inputs: - archiveFilePatterns: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks/Microsoft.NETCore.App.Runtime.Mono*.nupkg + archiveFilePatterns: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks/Microsoft.NETCore.App.Runtime.Mono*.zip destinationFolder: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks/ overwriteExistingFiles: true cleanDestinationFolder: false From 1ea67404e394b260f80ffe52efb1742ba237ccc9 Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Tue, 5 Oct 2021 14:57:53 -0700 Subject: [PATCH 66/86] Turns out, you have to individually extract these files. So this does that... hopefully. --- .../templates/build-perf-maui-apps.yml | 22 +++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml index ea9173c5d3083..7509f2ad9101c 100644 --- a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml +++ b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml @@ -51,8 +51,26 @@ steps: #Unzip the nuget packages to make the actual runtimes accessible - task: ExtractFiles@1 inputs: - archiveFilePatterns: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks/Microsoft.NETCore.App.Runtime.Mono*.zip - destinationFolder: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks/ + archiveFilePatterns: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks/Microsoft.NETCore.App.Runtime.Mono.android-arm.*.zip + destinationFolder: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks/Microsoft.NETCore.App.Runtime.Mono.android-arm + overwriteExistingFiles: true + cleanDestinationFolder: false + - task: ExtractFiles@1 + inputs: + archiveFilePatterns: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks/Microsoft.NETCore.App.Runtime.Mono.android-arm64.*.zip + destinationFolder: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks/Microsoft.NETCore.App.Runtime.Mono.android-arm64 + overwriteExistingFiles: true + cleanDestinationFolder: false + - task: ExtractFiles@1 + inputs: + archiveFilePatterns: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks/Microsoft.NETCore.App.Runtime.Mono.android-x86.*.zip + destinationFolder: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks/Microsoft.NETCore.App.Runtime.Mono.android-x86 + overwriteExistingFiles: true + cleanDestinationFolder: false + - task: ExtractFiles@1 + inputs: + archiveFilePatterns: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks/Microsoft.NETCore.App.Runtime.Mono.android-x64.*.zip + destinationFolder: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks/Microsoft.NETCore.App.Runtime.Mono.android-x64 overwriteExistingFiles: true cleanDestinationFolder: false From e2a33a21e375f54eb4a32415c42da1c4e2b607e5 Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Tue, 5 Oct 2021 15:57:51 -0700 Subject: [PATCH 67/86] removed renaming of folders since extracting the files achieves the same end result. --- .../coreclr/templates/build-perf-maui-apps.yml | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml index 7509f2ad9101c..4b9a18405e3c2 100644 --- a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml +++ b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml @@ -74,16 +74,6 @@ steps: overwriteExistingFiles: true cleanDestinationFolder: false - # Rename files for clarity between versions - - script: | - ls - mv Microsoft.NETCore.App.Runtime.Mono.android-arm.*/ Microsoft.NETCore.App.Runtime.Mono.android-arm - mv Microsoft.NETCore.App.Runtime.Mono.android-arm64.*/ Microsoft.NETCore.App.Runtime.Mono.android-arm64 - mv Microsoft.NETCore.App.Runtime.Mono.android-x64.*/ Microsoft.NETCore.App.Runtime.Mono.android-x64 - mv Microsoft.NETCore.App.Runtime.Mono.android-x86.*/ Microsoft.NETCore.App.Runtime.Mono.android-x86 - displayName: Rename Folders - workingDirectory: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks - # Download and CI install dotnet # Download latest MAUI # Update the manifests based on the gated source From 453a3edfcd7ca9b9b510c5a7a9a5035fce166dbe Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Wed, 6 Oct 2021 10:09:42 -0700 Subject: [PATCH 68/86] Debugging file note accessible error. --- eng/pipelines/coreclr/templates/build-perf-maui-apps.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml index 4b9a18405e3c2..e865e8a60ea8d 100644 --- a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml +++ b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml @@ -91,12 +91,15 @@ steps: cd MauiTesting cp $(Build.SourcesDirectory)/src/mono/sample/MauiScenario.props ./Directory.Build.props cp $(Build.SourcesDirectory)/src/mono/sample/MauiScenario.targets ./Directory.Build.targets + ls -laR displayName: Setup MAUI Project workingDirectory: $(Build.SourcesDirectory) condition: succeededOrFailed() - script: | + chmod -R -a+r + ls -laR ../dotnet.sh publish -bl:MauiAndroid.binlog -f net6.0-android -c Release condition: succeededOrFailed() displayName: Build MAUI Android From e6722071e83e4ce79b6f1521df0fde137be7d777 Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Wed, 6 Oct 2021 10:54:44 -0700 Subject: [PATCH 69/86] Use chmod properly.. (Don't include emojis yet!) --- eng/pipelines/coreclr/templates/build-perf-maui-apps.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml index e865e8a60ea8d..c3f7d03eb7344 100644 --- a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml +++ b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml @@ -98,7 +98,7 @@ steps: - script: | - chmod -R -a+r + chmod -R -a+r . ls -laR ../dotnet.sh publish -bl:MauiAndroid.binlog -f net6.0-android -c Release condition: succeededOrFailed() From c8070784a46f768f4386f36105de91cd2584e3a5 Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Wed, 6 Oct 2021 11:45:41 -0700 Subject: [PATCH 70/86] Still figuring out how to test properly. --- eng/pipelines/coreclr/templates/build-perf-maui-apps.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml index c3f7d03eb7344..b6a55d75ffb66 100644 --- a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml +++ b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml @@ -98,7 +98,7 @@ steps: - script: | - chmod -R -a+r . + chmod -R a+r . ls -laR ../dotnet.sh publish -bl:MauiAndroid.binlog -f net6.0-android -c Release condition: succeededOrFailed() From 0db5378a77d022640fff87a097695fec9c0d11b4 Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Wed, 6 Oct 2021 16:21:34 -0700 Subject: [PATCH 71/86] Removed file listings and set the apk to be the artifact, tobe tested and likely will change. --- eng/pipelines/coreclr/templates/build-perf-maui-apps.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml index b6a55d75ffb66..d0b86f672e5af 100644 --- a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml +++ b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml @@ -91,7 +91,6 @@ steps: cd MauiTesting cp $(Build.SourcesDirectory)/src/mono/sample/MauiScenario.props ./Directory.Build.props cp $(Build.SourcesDirectory)/src/mono/sample/MauiScenario.targets ./Directory.Build.targets - ls -laR displayName: Setup MAUI Project workingDirectory: $(Build.SourcesDirectory) condition: succeededOrFailed() @@ -99,7 +98,6 @@ steps: - script: | chmod -R a+r . - ls -laR ../dotnet.sh publish -bl:MauiAndroid.binlog -f net6.0-android -c Release condition: succeededOrFailed() displayName: Build MAUI Android @@ -112,7 +110,7 @@ steps: artifactName: ${{ parameters.artifactName }} # - template: /eng/pipelines/common/upload-artifact-step.yml parameters: - rootFolder: $(Build.SourcesDirectory)/MauiTesting # TODO Make the APK + rootFolder: $(Build.SourcesDirectory)/MauiTesting/bin/Release/net6.0-android/com.companyname.MauiTesting-Signed.apk # includeRootFolder: true # displayName: Maui Android App # artifactName: MauiAndroidApp # From fee5d2004bbdc8e9949d59ceb26628d6b51b4ee1 Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Thu, 7 Oct 2021 15:22:08 -0700 Subject: [PATCH 72/86] Added first pass of Maui SOD testing. Added the android mono build and run to the testing pipeline. Updated the artifact uploaded to only be the produced APK. Added the downloading of the Maui APK to the perf-job for AndroidMono. Added copying of the apk into the payload in performance-setup.ps1. Added a helix workitem to 'run' the SOD tests for the Maui Android App, currently does simple testing things to make sure we have what we need. --- eng/pipelines/coreclr/perf.yml | 39 +++++++++++++++++++ .../templates/build-perf-maui-apps.yml | 3 +- eng/pipelines/coreclr/templates/perf-job.yml | 9 +++++ .../performance/android_scenarios.proj | 9 +++++ eng/testing/performance/performance-setup.ps1 | 1 + 5 files changed, 60 insertions(+), 1 deletion(-) diff --git a/eng/pipelines/coreclr/perf.yml b/eng/pipelines/coreclr/perf.yml index e9ed8d1ab89cc..52b0a056bc877 100644 --- a/eng/pipelines/coreclr/perf.yml +++ b/eng/pipelines/coreclr/perf.yml @@ -55,6 +55,29 @@ jobs: # - iOS_arm64 # - OSX_x64 # - OSX_arm64 + + # 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 + - template: /eng/pipelines/common/platform-matrix.yml parameters: @@ -82,6 +105,22 @@ jobs: archiveType: tar tarCompression: gz + # run mono 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' + #- ${{ if and(ne(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'Schedule')) }}: # # build mono diff --git a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml index d0b86f672e5af..ced2f3c454998 100644 --- a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml +++ b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml @@ -99,6 +99,7 @@ steps: - script: | chmod -R a+r . ../dotnet.sh publish -bl:MauiAndroid.binlog -f net6.0-android -c Release + mv ./bin/Release/net6.0-android/com.companyname.MauiTesting-Signed.apk ./MauiAndroidDefault.apk condition: succeededOrFailed() displayName: Build MAUI Android workingDirectory: $(Build.SourcesDirectory)/MauiTesting @@ -110,7 +111,7 @@ steps: artifactName: ${{ parameters.artifactName }} # - template: /eng/pipelines/common/upload-artifact-step.yml parameters: - rootFolder: $(Build.SourcesDirectory)/MauiTesting/bin/Release/net6.0-android/com.companyname.MauiTesting-Signed.apk # + rootFolder: $(Build.SourcesDirectory)/MauiTesting/MauiAndroidDefault.apk # includeRootFolder: true # displayName: Maui Android App # artifactName: MauiAndroidApp # diff --git a/eng/pipelines/coreclr/templates/perf-job.yml b/eng/pipelines/coreclr/templates/perf-job.yml index e789ece0eed33..f9da9abcc5f71 100644 --- a/eng/pipelines/coreclr/templates/perf-job.yml +++ b/eng/pipelines/coreclr/templates/perf-job.yml @@ -62,6 +62,7 @@ jobs: - ${{ format('build_{0}{1}_{2}_{3}_{4}', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig, parameters.codeGenType) }} - ${{ if eq(parameters.runtimeType, 'AndroidMono')}}: - ${{ 'build_Android_arm64_release_AndroidMono' }} + - ${{ 'Build_iOS_arm64_release_MACiOSAndroidMaui' }} - ${{ if eq(parameters.runtimeType, 'iOSMono')}}: - ${{ 'build_iOS_arm64_release_iOSMono' }} @@ -157,6 +158,14 @@ jobs: artifactFileName: 'AndroidMonoarm64.tar.gz' artifactName: 'AndroidMonoarm64' displayName: 'Mono Android runtime' + - template: /eng/pipelines/common/download-artifact-step.yml + parameters: + unpackFolder: $(Build.SourcesDirectory) + cleanUnpackFolder: false + artifactFileName: 'MauiAndroidApp.tar.gz' + artifactName: 'MauiAndroidApp' + displayName: 'Maui Android App' + # Download iOSMono tests - ${{ if eq(parameters.runtimeType, 'iOSMono') }}: diff --git a/eng/testing/performance/android_scenarios.proj b/eng/testing/performance/android_scenarios.proj index a9d4ce9eb1a92..f4d061ba61402 100644 --- a/eng/testing/performance/android_scenarios.proj +++ b/eng/testing/performance/android_scenarios.proj @@ -30,5 +30,14 @@ $(Python) test.py sod --scenario-name "%(Identity)" $(Python) post.py + + $(WorkItemDirectory) + cd $(ScenarioDirectory)helloandroid;copy %HELIX_CORRELATION_PAYLOAD%\MauiAndroidDefault.apk .; ls; $(Python) -c "print('PreCommands')" + $(Python) -c "print('Regular Command')" + $(Python) -c "print('PostCommands')" + + + + \ No newline at end of file diff --git a/eng/testing/performance/performance-setup.ps1 b/eng/testing/performance/performance-setup.ps1 index 16563a87cc93e..c41eabef0be29 100644 --- a/eng/testing/performance/performance-setup.ps1 +++ b/eng/testing/performance/performance-setup.ps1 @@ -145,6 +145,7 @@ if ($AndroidMono) { mkdir $WorkItemDirectory } Copy-Item -path "$SourceDirectory\artifacts\bin\AndroidSampleApp\arm64\Release\android-arm64\publish\apk\bin\HelloAndroid.apk" $PayloadDirectory + Copy-Item -path "$SourceDirectory\MauiAndroidDefault.apk" $PayloadDirectory $SetupArguments = $SetupArguments -replace $Architecture, 'arm64' } From 064b3e79088a738b8fbeed70d02507c064a42a35 Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Mon, 11 Oct 2021 10:32:40 -0700 Subject: [PATCH 73/86] Update perf setup to match the latest setup for correct branch names. --- eng/testing/performance/performance-setup.ps1 | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/eng/testing/performance/performance-setup.ps1 b/eng/testing/performance/performance-setup.ps1 index c41eabef0be29..5db0ce2449a87 100644 --- a/eng/testing/performance/performance-setup.ps1 +++ b/eng/testing/performance/performance-setup.ps1 @@ -97,7 +97,11 @@ if ($iOSMono) { } # FIX ME: This is a workaround until we get this from the actual pipeline -$CleanedBranchName = $Branch.replace('refs/heads/', '') +$CleanedBranchName = "main" +if($Branch.Contains("refs/heads/release")) +{ + $CleanedBranchName = $Branch.replace('refs/heads/', '') +} $CommonSetupArguments="--channel $CleanedBranchName --queue $Queue --build-number $BuildNumber --build-configs $Configurations --architecture $Architecture" $SetupArguments = "--repository https://github.com/$Repository --branch $Branch --get-perf-hash --commit-sha $CommitSha $CommonSetupArguments" From 71c96f0ef3fe93568d8e3c5a1a3c37006654174e Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Tue, 12 Oct 2021 09:47:57 -0700 Subject: [PATCH 74/86] Setup perf setup to pull from matching perf testing branch. --- eng/testing/performance/performance-setup.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/testing/performance/performance-setup.ps1 b/eng/testing/performance/performance-setup.ps1 index 5db0ce2449a87..184e4d9c29bd5 100644 --- a/eng/testing/performance/performance-setup.ps1 +++ b/eng/testing/performance/performance-setup.ps1 @@ -124,7 +124,7 @@ if ($RunFromPerformanceRepo) { robocopy $SourceDirectory $PerformanceDirectory /E /XD $PayloadDirectory $SourceDirectory\artifacts $SourceDirectory\.git } else { - git clone --branch main --depth 1 --quiet https://github.com/dotnet/performance $PerformanceDirectory + git clone --branch MauiIntegrationTestingPerf --depth 1 --quiet https://github.com/LoopedBard3/performance $PerformanceDirectory } if($MonoDotnet -ne "") From 8b287cfbcb726dd8a3bcf1e4a748dfc72953d63b Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Tue, 12 Oct 2021 09:48:24 -0700 Subject: [PATCH 75/86] Updated ls to be dir since the test runs on windows. --- eng/testing/performance/android_scenarios.proj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/testing/performance/android_scenarios.proj b/eng/testing/performance/android_scenarios.proj index f4d061ba61402..71b13444a4aa8 100644 --- a/eng/testing/performance/android_scenarios.proj +++ b/eng/testing/performance/android_scenarios.proj @@ -32,7 +32,7 @@ $(WorkItemDirectory) - cd $(ScenarioDirectory)helloandroid;copy %HELIX_CORRELATION_PAYLOAD%\MauiAndroidDefault.apk .; ls; $(Python) -c "print('PreCommands')" + cd $(ScenarioDirectory)helloandroid;copy %HELIX_CORRELATION_PAYLOAD%\MauiAndroidDefault.apk .; dir; $(Python) -c "print('PreCommands')" $(Python) -c "print('Regular Command')" $(Python) -c "print('PostCommands')" From 3425fff68a78bf4423f543dfbb0ceb03402f23eb Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Tue, 12 Oct 2021 10:30:30 -0700 Subject: [PATCH 76/86] Add back in the testing commands for first test of actual commands. --- eng/testing/performance/android_scenarios.proj | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/eng/testing/performance/android_scenarios.proj b/eng/testing/performance/android_scenarios.proj index 71b13444a4aa8..b1f8b411c8ca5 100644 --- a/eng/testing/performance/android_scenarios.proj +++ b/eng/testing/performance/android_scenarios.proj @@ -32,11 +32,9 @@ $(WorkItemDirectory) - cd $(ScenarioDirectory)helloandroid;copy %HELIX_CORRELATION_PAYLOAD%\MauiAndroidDefault.apk .; dir; $(Python) -c "print('PreCommands')" - $(Python) -c "print('Regular Command')" - $(Python) -c "print('PostCommands')" - - + cd $(ScenarioDirectory)mauiandroid;copy %HELIX_CORRELATION_PAYLOAD%\MauiAndroidDefault.apk .; $(Python) pre.py; dir;" + $(Python) test.py sod --scenario-name "%(Identity)" + $(Python) post.py From 3494c415ab68386a7de40a7f8012ee4684f6f260 Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Tue, 12 Oct 2021 11:57:09 -0700 Subject: [PATCH 77/86] Removed the dir command and added the extracted size test to see if it comes through. --- eng/testing/performance/android_scenarios.proj | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/eng/testing/performance/android_scenarios.proj b/eng/testing/performance/android_scenarios.proj index b1f8b411c8ca5..338a696150fb3 100644 --- a/eng/testing/performance/android_scenarios.proj +++ b/eng/testing/performance/android_scenarios.proj @@ -32,10 +32,15 @@ $(WorkItemDirectory) - cd $(ScenarioDirectory)mauiandroid;copy %HELIX_CORRELATION_PAYLOAD%\MauiAndroidDefault.apk .; $(Python) pre.py; dir;" + cd $(ScenarioDirectory)mauiandroid;copy %HELIX_CORRELATION_PAYLOAD%\MauiAndroidDefault.apk .; $(Python) pre.py + $(Python) test.py sod --scenario-name "%(Identity)" + $(Python) post.py + + + $(WorkItemDirectory) + cd $(ScenarioDirectory)mauiandroid;copy %HELIX_CORRELATION_PAYLOAD%\MauiAndroidDefault.apk .; $(Python) pre.py --unzip $(Python) test.py sod --scenario-name "%(Identity)" $(Python) post.py - \ No newline at end of file From af2f8cfa7993c264aa40fe090af8a696f3d43fff Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Tue, 12 Oct 2021 14:12:27 -0700 Subject: [PATCH 78/86] Cleaned up the targets and maui-perf.yml files. --- .../templates/build-perf-maui-apps.yml | 94 +++++-------------- src/mono/sample/MauiScenario.targets | 62 ------------ 2 files changed, 24 insertions(+), 132 deletions(-) diff --git a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml index ced2f3c454998..3606268a6d3c8 100644 --- a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml +++ b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml @@ -20,6 +20,7 @@ parameters: steps: - task: DownloadPipelineArtifact@2 + displayName: Download runtime packages inputs: artifact: 'IntermediateArtifacts' path: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks @@ -44,48 +45,48 @@ steps: do mv -v "$file" "${file%.nupkg}.zip" done - displayName: Update File Extensions + displayName: Change nupkgs to zips workingDirectory: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks #Unzip the nuget packages to make the actual runtimes accessible - task: ExtractFiles@1 + displayName: Extract android-arm runtime inputs: archiveFilePatterns: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks/Microsoft.NETCore.App.Runtime.Mono.android-arm.*.zip destinationFolder: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks/Microsoft.NETCore.App.Runtime.Mono.android-arm overwriteExistingFiles: true cleanDestinationFolder: false - task: ExtractFiles@1 + displayName: Extract android-arm64 runtime inputs: archiveFilePatterns: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks/Microsoft.NETCore.App.Runtime.Mono.android-arm64.*.zip destinationFolder: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks/Microsoft.NETCore.App.Runtime.Mono.android-arm64 overwriteExistingFiles: true cleanDestinationFolder: false - task: ExtractFiles@1 + displayName: Extract android-x86 runtime inputs: archiveFilePatterns: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks/Microsoft.NETCore.App.Runtime.Mono.android-x86.*.zip destinationFolder: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks/Microsoft.NETCore.App.Runtime.Mono.android-x86 overwriteExistingFiles: true cleanDestinationFolder: false - task: ExtractFiles@1 + displayName: Extract android-x64 runtime inputs: archiveFilePatterns: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks/Microsoft.NETCore.App.Runtime.Mono.android-x64.*.zip destinationFolder: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks/Microsoft.NETCore.App.Runtime.Mono.android-x64 overwriteExistingFiles: true cleanDestinationFolder: false - # Download and CI install dotnet - # Download latest MAUI - # Update the manifests based on the gated source - # Install the MAUI workload install maui (with proper feeds in the nuget.config) - # Create MAUI Sample app (Do we want this here or lower?) - script: | curl -o ./rollback.json 'maui.blob.core.windows.net/metadata/rollbacks/main.json' ./dotnet.sh workload update --from-rollback-file ./rollback.json ./dotnet.sh workload install maui --skip-manifest-update - displayName: Install MAUI + displayName: Install MAUI workload workingDirectory: $(Build.SourcesDirectory) condition: succeededOrFailed() + - script: | ./dotnet.sh new maui -n MauiTesting cd MauiTesting @@ -95,7 +96,6 @@ steps: workingDirectory: $(Build.SourcesDirectory) condition: succeededOrFailed() - - script: | chmod -R a+r . ../dotnet.sh publish -bl:MauiAndroid.binlog -f net6.0-android -c Release @@ -103,74 +103,28 @@ steps: condition: succeededOrFailed() displayName: Build MAUI Android workingDirectory: $(Build.SourcesDirectory)/MauiTesting - - task: PublishBuildArtifacts@1 # - condition: succeededOrFailed() # - displayName: 'Publish Android binlog' # + + - task: PublishBuildArtifacts@1 + condition: succeededOrFailed() + displayName: 'Publish MauiAndroid binlog' inputs: - pathtoPublish: $(Build.SourcesDirectory)/MauiTesting/MauiAndroid.binlog # - artifactName: ${{ parameters.artifactName }} # + pathtoPublish: $(Build.SourcesDirectory)/MauiTesting/MauiAndroid.binlog + artifactName: ${{ parameters.artifactName }} + - template: /eng/pipelines/common/upload-artifact-step.yml parameters: - rootFolder: $(Build.SourcesDirectory)/MauiTesting/MauiAndroidDefault.apk # - includeRootFolder: true # - displayName: Maui Android App # - artifactName: MauiAndroidApp # - archiveExtension: '.tar.gz' # - archiveType: tar # - tarCompression: gz # + rootFolder: $(Build.SourcesDirectory)/MauiTesting/MauiAndroidDefault.apk + includeRootFolder: true + displayName: Maui Android App + artifactName: MauiAndroidApp + archiveExtension: '.tar.gz' + archiveType: tar + tarCompression: gz + - script: rm -r -f ./bin workingDirectory: $(Build.SourcesDirectory)/MauiTesting - displayName: Clean bindir + displayName: Clean bin directory condition: succeededOrFailed() - - # - script: | - # ../dotnet.sh build -bl:MauiMacCatalyst.binlog -f net6.0-maccatalyst -o MacCatalystBuildOutput - # displayName: Build MAUI MacCatalyst - # workingDirectory: $(Build.SourcesDirectory)/MauiTesting - # - task: PublishBuildArtifacts@1 # - # condition: succeededOrFailed() # - # displayName: 'Publish MacCatalyst binlog' # - # inputs: - # pathtoPublish: $(Build.SourcesDirectory)/MauiTesting/MauiMacCatalyst.binlog # - # artifactName: ${{ parameters.artifactName }} # - # - template: /eng/pipelines/common/upload-artifact-step.yml - # parameters: - # rootFolder: $(Build.SourcesDirectory)/MauiTesting # - # includeRootFolder: true # - # displayName: Maui MacCatalyst App # - # artifactName: MauiMacatalystApp # - # archiveExtension: '.tar.gz' # - # archiveType: tar # - # tarCompression: gz # - # - script: rm -r -f ./bin - # workingDirectory: $(Build.SourcesDirectory)/MauiTesting - # displayName: Clean bindir - # condition: succeededOrFailed() - - # - script: | - # ../dotnet.sh build -bl:MauiiOS.binlog -f net6.0-ios -o iOSBuildOutput - # condition: succeededOrFailed() - # displayName: Build MAUI iOS - # workingDirectory: $(Build.SourcesDirectory)/MauiTesting - # - task: PublishBuildArtifacts@1 # - # condition: succeededOrFailed() # - # displayName: 'Publish iOS binlog' # - # inputs: - # pathtoPublish: $(Build.SourcesDirectory)/MauiTesting/MauiiOS.binlog # - # artifactName: ${{ parameters.artifactName }} # - # - template: /eng/pipelines/common/upload-artifact-step.yml - # parameters: - # rootFolder: $(Build.SourcesDirectory)/MauiTesting # - # includeRootFolder: true # - # displayName: Maui iOS App # - # artifactName: MauiiOSApp # - # archiveExtension: '.tar.gz' # - # archiveType: tar # - # tarCompression: gz # - # - script: rm -r -f ./bin - # workingDirectory: $(Build.SourcesDirectory)/MauiTesting - # displayName: Clean bindir - # condition: succeededOrFailed() - template: /eng/pipelines/common/upload-artifact-step.yml parameters: diff --git a/src/mono/sample/MauiScenario.targets b/src/mono/sample/MauiScenario.targets index 482f28abda18c..b76add192195d 100644 --- a/src/mono/sample/MauiScenario.targets +++ b/src/mono/sample/MauiScenario.targets @@ -3,45 +3,13 @@ - - - - - ./ArtifactPacks ./ArtifactPacks - - - - - - - - - - - From 5b4798b3abdf8685326b103b55ff2493061eb209 Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Tue, 12 Oct 2021 14:14:23 -0700 Subject: [PATCH 79/86] See if we can run without the props file to limit unnessary files, etc. --- eng/pipelines/coreclr/templates/build-perf-maui-apps.yml | 1 - src/mono/sample/MauiScenario.props | 3 --- 2 files changed, 4 deletions(-) delete mode 100644 src/mono/sample/MauiScenario.props diff --git a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml index 3606268a6d3c8..cf94a681c3d99 100644 --- a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml +++ b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml @@ -90,7 +90,6 @@ steps: - script: | ./dotnet.sh new maui -n MauiTesting cd MauiTesting - cp $(Build.SourcesDirectory)/src/mono/sample/MauiScenario.props ./Directory.Build.props cp $(Build.SourcesDirectory)/src/mono/sample/MauiScenario.targets ./Directory.Build.targets displayName: Setup MAUI Project workingDirectory: $(Build.SourcesDirectory) diff --git a/src/mono/sample/MauiScenario.props b/src/mono/sample/MauiScenario.props deleted file mode 100644 index a36bd59d0a2d4..0000000000000 --- a/src/mono/sample/MauiScenario.props +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file From cb5e50c8b4f2468d62d1a158272e935c054472da Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Tue, 12 Oct 2021 15:43:08 -0700 Subject: [PATCH 80/86] Cleaned up the maui-apps.yml a touch more --- eng/pipelines/coreclr/templates/build-perf-maui-apps.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml index cf94a681c3d99..a9d3066635f36 100644 --- a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml +++ b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml @@ -85,7 +85,6 @@ steps: ./dotnet.sh workload install maui --skip-manifest-update displayName: Install MAUI workload workingDirectory: $(Build.SourcesDirectory) - condition: succeededOrFailed() - script: | ./dotnet.sh new maui -n MauiTesting @@ -93,18 +92,15 @@ steps: cp $(Build.SourcesDirectory)/src/mono/sample/MauiScenario.targets ./Directory.Build.targets displayName: Setup MAUI Project workingDirectory: $(Build.SourcesDirectory) - condition: succeededOrFailed() - script: | chmod -R a+r . ../dotnet.sh publish -bl:MauiAndroid.binlog -f net6.0-android -c Release mv ./bin/Release/net6.0-android/com.companyname.MauiTesting-Signed.apk ./MauiAndroidDefault.apk - condition: succeededOrFailed() displayName: Build MAUI Android workingDirectory: $(Build.SourcesDirectory)/MauiTesting - task: PublishBuildArtifacts@1 - condition: succeededOrFailed() displayName: 'Publish MauiAndroid binlog' inputs: pathtoPublish: $(Build.SourcesDirectory)/MauiTesting/MauiAndroid.binlog From a7e997dbbce02e356d8aee1a92819f29a10482b8 Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Tue, 12 Oct 2021 15:46:31 -0700 Subject: [PATCH 81/86] Revert "See if we can run without the props file to limit unnessary files, etc." This reverts commit 5b4798b3abdf8685326b103b55ff2493061eb209. --- eng/pipelines/coreclr/templates/build-perf-maui-apps.yml | 1 + src/mono/sample/MauiScenario.props | 3 +++ 2 files changed, 4 insertions(+) create mode 100644 src/mono/sample/MauiScenario.props diff --git a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml index a9d3066635f36..c3da85a39fb03 100644 --- a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml +++ b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml @@ -89,6 +89,7 @@ steps: - script: | ./dotnet.sh new maui -n MauiTesting cd MauiTesting + cp $(Build.SourcesDirectory)/src/mono/sample/MauiScenario.props ./Directory.Build.props cp $(Build.SourcesDirectory)/src/mono/sample/MauiScenario.targets ./Directory.Build.targets displayName: Setup MAUI Project workingDirectory: $(Build.SourcesDirectory) diff --git a/src/mono/sample/MauiScenario.props b/src/mono/sample/MauiScenario.props new file mode 100644 index 0000000000000..a36bd59d0a2d4 --- /dev/null +++ b/src/mono/sample/MauiScenario.props @@ -0,0 +1,3 @@ + + + \ No newline at end of file From 5e1a670f44fe1e2c1596bbdec8feb977b99f23da Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Wed, 13 Oct 2021 11:40:17 -0700 Subject: [PATCH 82/86] Fix typo in the resolved runtime packs architectures. --- src/mono/sample/MauiScenario.targets | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/mono/sample/MauiScenario.targets b/src/mono/sample/MauiScenario.targets index b76add192195d..8c05205a0c221 100644 --- a/src/mono/sample/MauiScenario.targets +++ b/src/mono/sample/MauiScenario.targets @@ -10,14 +10,14 @@ ./ArtifactPacks + - - From e467f950398c63807d6e05c0ff1c61884acf73f5 Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Wed, 13 Oct 2021 13:18:32 -0700 Subject: [PATCH 83/86] Removed seemingly unused architectures to limit build time and system strain. --- eng/pipelines/coreclr/perf.yml | 4 --- .../templates/build-perf-maui-apps.yml | 30 +++++++++---------- src/mono/sample/MauiScenario.targets | 8 ++--- 3 files changed, 19 insertions(+), 23 deletions(-) diff --git a/eng/pipelines/coreclr/perf.yml b/eng/pipelines/coreclr/perf.yml index 52b0a056bc877..7fab790f47b77 100644 --- a/eng/pipelines/coreclr/perf.yml +++ b/eng/pipelines/coreclr/perf.yml @@ -38,9 +38,7 @@ jobs: buildConfig: release runtimeFlavor: mono platforms: - - Android_x64 - Android_x86 - - Android_arm - Android_arm64 jobParameters: buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) @@ -88,10 +86,8 @@ jobs: - iOS_arm64 jobParameters: dependsOn: - - Build_Android_arm_release_Maui_Packs_Mono - Build_Android_arm64_release_Maui_Packs_Mono - Build_Android_x86_release_Maui_Packs_Mono - - Build_Android_x64_release_Maui_Packs_Mono buildArgs: -s mono -c $(_BuildConfig) nameSuffix: MACiOSAndroidMaui isOfficialBuild: false diff --git a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml index c3da85a39fb03..fce3bb4b243a7 100644 --- a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml +++ b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml @@ -49,14 +49,14 @@ steps: workingDirectory: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks - #Unzip the nuget packages to make the actual runtimes accessible - - task: ExtractFiles@1 - displayName: Extract android-arm runtime - inputs: - archiveFilePatterns: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks/Microsoft.NETCore.App.Runtime.Mono.android-arm.*.zip - destinationFolder: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks/Microsoft.NETCore.App.Runtime.Mono.android-arm - overwriteExistingFiles: true - cleanDestinationFolder: false + # #Unzip the nuget packages to make the actual runtimes accessible + # - task: ExtractFiles@1 + # displayName: Extract android-arm runtime + # inputs: + # archiveFilePatterns: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks/Microsoft.NETCore.App.Runtime.Mono.android-arm.*.zip + # destinationFolder: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks/Microsoft.NETCore.App.Runtime.Mono.android-arm + # overwriteExistingFiles: true + # cleanDestinationFolder: false - task: ExtractFiles@1 displayName: Extract android-arm64 runtime inputs: @@ -71,13 +71,13 @@ steps: destinationFolder: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks/Microsoft.NETCore.App.Runtime.Mono.android-x86 overwriteExistingFiles: true cleanDestinationFolder: false - - task: ExtractFiles@1 - displayName: Extract android-x64 runtime - inputs: - archiveFilePatterns: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks/Microsoft.NETCore.App.Runtime.Mono.android-x64.*.zip - destinationFolder: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks/Microsoft.NETCore.App.Runtime.Mono.android-x64 - overwriteExistingFiles: true - cleanDestinationFolder: false + # - task: ExtractFiles@1 + # displayName: Extract android-x64 runtime + # inputs: + # archiveFilePatterns: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks/Microsoft.NETCore.App.Runtime.Mono.android-x64.*.zip + # destinationFolder: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks/Microsoft.NETCore.App.Runtime.Mono.android-x64 + # overwriteExistingFiles: true + # cleanDestinationFolder: false - script: | curl -o ./rollback.json 'maui.blob.core.windows.net/metadata/rollbacks/main.json' diff --git a/src/mono/sample/MauiScenario.targets b/src/mono/sample/MauiScenario.targets index 8c05205a0c221..bb0575ed41fbb 100644 --- a/src/mono/sample/MauiScenario.targets +++ b/src/mono/sample/MauiScenario.targets @@ -10,14 +10,14 @@ ./ArtifactPacks - + - + From 56222f858933b11850d36fdd6d1790f4912bbf91 Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Thu, 14 Oct 2021 11:59:31 -0700 Subject: [PATCH 84/86] Cleanup for final test run before PR. --- .../templates/build-perf-maui-apps.yml | 19 +++---------------- eng/testing/performance/performance-setup.ps1 | 2 +- src/{mono/sample => maui}/MauiScenario.props | 0 .../sample => maui}/MauiScenario.targets | 4 ---- 4 files changed, 4 insertions(+), 21 deletions(-) rename src/{mono/sample => maui}/MauiScenario.props (100%) rename src/{mono/sample => maui}/MauiScenario.targets (65%) diff --git a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml index fce3bb4b243a7..cedaa236b7e61 100644 --- a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml +++ b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml @@ -27,6 +27,7 @@ steps: patterns: | IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NETCore.App.Runtime.Mono.android-!(*.symbols).nupkg + # Other artifacts to include once they are being built # IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NETCore.App.Runtime.Mono.ios-*.nupkg # IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NETCore.App.Runtime.Mono.iossimulator-*.nupkg # IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NETCore.App.Runtime.Mono.maccatalyst-*.nupkg @@ -50,13 +51,6 @@ steps: # #Unzip the nuget packages to make the actual runtimes accessible - # - task: ExtractFiles@1 - # displayName: Extract android-arm runtime - # inputs: - # archiveFilePatterns: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks/Microsoft.NETCore.App.Runtime.Mono.android-arm.*.zip - # destinationFolder: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks/Microsoft.NETCore.App.Runtime.Mono.android-arm - # overwriteExistingFiles: true - # cleanDestinationFolder: false - task: ExtractFiles@1 displayName: Extract android-arm64 runtime inputs: @@ -71,13 +65,6 @@ steps: destinationFolder: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks/Microsoft.NETCore.App.Runtime.Mono.android-x86 overwriteExistingFiles: true cleanDestinationFolder: false - # - task: ExtractFiles@1 - # displayName: Extract android-x64 runtime - # inputs: - # archiveFilePatterns: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks/Microsoft.NETCore.App.Runtime.Mono.android-x64.*.zip - # destinationFolder: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks/Microsoft.NETCore.App.Runtime.Mono.android-x64 - # overwriteExistingFiles: true - # cleanDestinationFolder: false - script: | curl -o ./rollback.json 'maui.blob.core.windows.net/metadata/rollbacks/main.json' @@ -89,8 +76,8 @@ steps: - script: | ./dotnet.sh new maui -n MauiTesting cd MauiTesting - cp $(Build.SourcesDirectory)/src/mono/sample/MauiScenario.props ./Directory.Build.props - cp $(Build.SourcesDirectory)/src/mono/sample/MauiScenario.targets ./Directory.Build.targets + cp $(Build.SourcesDirectory)/src/maui/MauiScenario.props ./Directory.Build.props + cp $(Build.SourcesDirectory)/src/maui/MauiScenario.targets ./Directory.Build.targets displayName: Setup MAUI Project workingDirectory: $(Build.SourcesDirectory) diff --git a/eng/testing/performance/performance-setup.ps1 b/eng/testing/performance/performance-setup.ps1 index 184e4d9c29bd5..5db0ce2449a87 100644 --- a/eng/testing/performance/performance-setup.ps1 +++ b/eng/testing/performance/performance-setup.ps1 @@ -124,7 +124,7 @@ if ($RunFromPerformanceRepo) { robocopy $SourceDirectory $PerformanceDirectory /E /XD $PayloadDirectory $SourceDirectory\artifacts $SourceDirectory\.git } else { - git clone --branch MauiIntegrationTestingPerf --depth 1 --quiet https://github.com/LoopedBard3/performance $PerformanceDirectory + git clone --branch main --depth 1 --quiet https://github.com/dotnet/performance $PerformanceDirectory } if($MonoDotnet -ne "") diff --git a/src/mono/sample/MauiScenario.props b/src/maui/MauiScenario.props similarity index 100% rename from src/mono/sample/MauiScenario.props rename to src/maui/MauiScenario.props diff --git a/src/mono/sample/MauiScenario.targets b/src/maui/MauiScenario.targets similarity index 65% rename from src/mono/sample/MauiScenario.targets rename to src/maui/MauiScenario.targets index bb0575ed41fbb..8a7466235ae24 100644 --- a/src/mono/sample/MauiScenario.targets +++ b/src/maui/MauiScenario.targets @@ -10,14 +10,10 @@ ./ArtifactPacks - - From 402bfd8ce686c666254f0fb451311a8ac4750b13 Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Thu, 14 Oct 2021 13:05:39 -0700 Subject: [PATCH 85/86] Finalize the files for code review and merge. --- eng/pipelines/coreclr/perf.yml | 898 +++++++++--------- eng/testing/performance/performance-setup.ps1 | 6 +- 2 files changed, 431 insertions(+), 473 deletions(-) diff --git a/eng/pipelines/coreclr/perf.yml b/eng/pipelines/coreclr/perf.yml index 7fab790f47b77..71b1849db62d9 100644 --- a/eng/pipelines/coreclr/perf.yml +++ b/eng/pipelines/coreclr/perf.yml @@ -31,30 +31,145 @@ schedules: always: true jobs: -- ${{ if ne(variables['System.TeamProject'], 'public')}}: +- ${{ 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 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 mono on wasm - template: /eng/pipelines/common/platform-matrix.yml parameters: jobTemplate: /eng/pipelines/common/global-build-job.yml buildConfig: release runtimeFlavor: mono platforms: - - Android_x86 - - Android_arm64 + - Browser_wasm jobParameters: buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - nameSuffix: Maui_Packs_Mono + nameSuffix: wasm isOfficialBuild: false - extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml + extraStepsTemplate: /eng/pipelines/common/upload-artifact-step.yml extraStepsParameters: - name: MonoRuntimePacks - # - MacCatalyst_x64 - # - MacCatalyst_arm64 - # - iOS_arm - # - iOS_arm64 - # - OSX_x64 - # - OSX_arm64 + rootFolder: '$(Build.SourcesDirectory)/artifacts/' + includeRootFolder: true + displayName: Browser Wasm Artifacts + artifactName: BrowserWasm + archiveType: zip + archiveExtension: .zip + + #run mono wasm 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: wasm + platforms: + - Linux_x64 + jobParameters: + testGroup: perf + liveLibrariesBuildConfig: Release + runtimeType: wasm + codeGenType: 'wasm' + projectFile: microbenchmarks.proj + runKind: micro + runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml + logicalmachine: 'perftiger' + javascriptEngine: 'javascriptcore' + + #run mono wasm 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: wasm + platforms: + - linux_x64 + jobparameters: + testgroup: perf + livelibrariesbuildconfig: Release + runtimetype: wasm + codegentype: 'aot' + projectfile: microbenchmarks.proj + runkind: micro + runjobtemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml + logicalmachine: 'perftiger' + javascriptengine: 'javascriptcore' + +- ${{ 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 mono on wasm + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: release + runtimeFlavor: mono + platforms: + - Browser_wasm + jobParameters: + buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + nameSuffix: wasm + isOfficialBuild: false + extraStepsTemplate: /eng/pipelines/common/upload-artifact-step.yml + extraStepsParameters: + rootFolder: '$(Build.SourcesDirectory)/artifacts/' + includeRootFolder: true + displayName: Browser Wasm Artifacts + artifactName: BrowserWasm + archiveType: zip + archiveExtension: .zip + + # 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 + # build mono Android scenarios - template: /eng/pipelines/common/platform-matrix.yml parameters: jobTemplate: /eng/pipelines/common/global-build-job.yml @@ -75,8 +190,8 @@ jobs: 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 @@ -85,23 +200,29 @@ jobs: platforms: - iOS_arm64 jobParameters: - dependsOn: - - Build_Android_arm64_release_Maui_Packs_Mono - - Build_Android_x86_release_Maui_Packs_Mono - buildArgs: -s mono -c $(_BuildConfig) - nameSuffix: MACiOSAndroidMaui + buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + nameSuffix: iOSMono isOfficialBuild: false - extraStepsTemplate: /eng/pipelines/coreclr/templates/build-perf-maui-apps.yml + extraStepsTemplate: /eng/pipelines/coreclr/templates/build-perf-sample-apps.yml extraStepsParameters: rootFolder: '$(Build.SourcesDirectory)/artifacts/' includeRootFolder: true - displayName: MAC, iOS, and Android Maui Artifacts - artifactName: MACiOSAndroidMauiArm + displayName: iOS Mono Artifacts + artifactName: iOSMonoarm64 archiveExtension: '.tar.gz' archiveType: tar tarCompression: gz - # run mono android scenarios + # 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 mono and maui android scenarios - template: /eng/pipelines/common/platform-matrix.yml parameters: jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml @@ -117,455 +238,296 @@ jobs: runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml logicalmachine: 'perfpixel4a' -#- ${{ 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 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 mono on wasm -# - template: /eng/pipelines/common/platform-matrix.yml -# parameters: -# jobTemplate: /eng/pipelines/common/global-build-job.yml -# buildConfig: release -# runtimeFlavor: mono -# platforms: -# - Browser_wasm -# jobParameters: -# buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) -# nameSuffix: wasm -# isOfficialBuild: false -# extraStepsTemplate: /eng/pipelines/common/upload-artifact-step.yml -# extraStepsParameters: -# rootFolder: '$(Build.SourcesDirectory)/artifacts/' -# includeRootFolder: true -# displayName: Browser Wasm Artifacts -# artifactName: BrowserWasm -# archiveType: zip -# archiveExtension: .zip - -# #run mono wasm 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: wasm -# platforms: -# - Linux_x64 -# jobParameters: -# testGroup: perf -# liveLibrariesBuildConfig: Release -# runtimeType: wasm -# codeGenType: 'wasm' -# projectFile: microbenchmarks.proj -# runKind: micro -# runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml -# logicalmachine: 'perftiger' -# javascriptEngine: 'javascriptcore' - -# #run mono wasm 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: wasm -# platforms: -# - linux_x64 -# jobparameters: -# testgroup: perf -# livelibrariesbuildconfig: Release -# runtimetype: wasm -# codegentype: 'aot' -# projectfile: microbenchmarks.proj -# runkind: micro -# runjobtemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml -# logicalmachine: 'perftiger' -# javascriptengine: 'javascriptcore' - -# - ${{ 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 mono on wasm -# - template: /eng/pipelines/common/platform-matrix.yml -# parameters: -# jobTemplate: /eng/pipelines/common/global-build-job.yml -# buildConfig: release -# runtimeFlavor: mono -# platforms: -# - Browser_wasm -# jobParameters: -# buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) -# nameSuffix: wasm -# isOfficialBuild: false -# extraStepsTemplate: /eng/pipelines/common/upload-artifact-step.yml -# extraStepsParameters: -# rootFolder: '$(Build.SourcesDirectory)/artifacts/' -# includeRootFolder: true -# displayName: Browser Wasm Artifacts -# artifactName: BrowserWasm -# archiveType: zip -# archiveExtension: .zip - -# # 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 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 -# - template: /eng/pipelines/common/platform-matrix.yml -# parameters: -# jobTemplate: /eng/pipelines/mono/templates/build-job.yml -# runtimeFlavor: mono -# buildConfig: release -# platforms: -# - Linux_x64 - -# # run mono 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 -# - 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: iOSMono -# projectFile: ios_scenarios.proj -# runKind: ios_scenarios -# runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml -# logicalmachine: 'perfpixel4a' -# iosLlvmBuild: False - -# - 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: iOSMono -# projectFile: ios_scenarios.proj -# runKind: ios_scenarios -# runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml -# logicalmachine: 'perfpixel4a' -# iosLlvmBuild: 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 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 wasm interpreter (default) 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: wasm -# platforms: -# - Linux_x64 -# jobParameters: -# testGroup: perf -# liveLibrariesBuildConfig: Release -# runtimeType: wasm -# codeGenType: 'wasm' -# projectFile: microbenchmarks.proj -# runKind: micro -# runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml -# logicalmachine: 'perftiger' -# javascriptEngine: 'v8' - -# #run mono wasm 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: wasm -# platforms: -# - linux_x64 -# jobparameters: -# testgroup: perf -# livelibrariesbuildconfig: Release -# runtimetype: wasm -# codegentype: 'aot' -# projectfile: microbenchmarks.proj -# runkind: micro -# runjobtemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml -# logicalmachine: 'perftiger' -# javascriptEngine: 'v8' - -# # 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 iOS 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: iOSMono + projectFile: ios_scenarios.proj + runKind: ios_scenarios + runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml + logicalmachine: 'perfpixel4a' + iosLlvmBuild: False -# # 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' + - 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: iOSMono + projectFile: ios_scenarios.proj + runKind: ios_scenarios + runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml + logicalmachine: 'perfpixel4a' + iosLlvmBuild: True -# # 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 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 wasm interpreter (default) 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: wasm + platforms: + - Linux_x64 + jobParameters: + testGroup: perf + liveLibrariesBuildConfig: Release + runtimeType: wasm + codeGenType: 'wasm' + projectFile: microbenchmarks.proj + runKind: micro + runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml + logicalmachine: 'perftiger' + javascriptEngine: 'v8' + + #run mono wasm 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: wasm + platforms: + - linux_x64 + jobparameters: + testgroup: perf + livelibrariesbuildconfig: Release + runtimetype: wasm + codegentype: 'aot' + projectfile: microbenchmarks.proj + runkind: micro + runjobtemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml + logicalmachine: 'perftiger' + javascriptEngine: 'v8' + + # 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' -# - 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 +# 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: -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: -DynamicPgo -# # 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' + - 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 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' -# # run mono wasm blazor perf job -# - template: /eng/pipelines/common/platform-matrix.yml -# parameters: -# jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml -# buildConfig: release -# runtimeFlavor: wasm -# platforms: -# - Linux_x64 -# jobParameters: -# testGroup: perf -# liveLibrariesBuildConfig: Release -# runtimeType: wasm -# projectFile: blazor_perf.proj -# runKind: blazor_scenarios -# runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml -# additionalSetupParameters: '--latestdotnet' -# logicalmachine: 'perftiger' + # run mono wasm blazor perf job + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + buildConfig: release + runtimeFlavor: wasm + platforms: + - Linux_x64 + jobParameters: + testGroup: perf + liveLibrariesBuildConfig: Release + runtimeType: wasm + projectFile: blazor_perf.proj + runKind: blazor_scenarios + runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml + additionalSetupParameters: '--latestdotnet' + logicalmachine: 'perftiger' + # build maui workload packs + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: release + runtimeFlavor: mono + platforms: + - Android_x86 + - Android_arm64 + jobParameters: + buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + nameSuffix: Maui_Packs_Mono + isOfficialBuild: false + extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml + extraStepsParameters: + name: MonoRuntimePacks + # Eventual platforms to add + # - MacCatalyst_x64 + # - MacCatalyst_arm64 + # - iOS_arm + # - iOS_arm64 + # - OSX_x64 + # - OSX_arm64 + + # build maui 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_Maui_Packs_Mono + - Build_Android_x86_release_Maui_Packs_Mono + buildArgs: -s mono -c $(_BuildConfig) + nameSuffix: MACiOSAndroidMaui + isOfficialBuild: false + extraStepsTemplate: /eng/pipelines/coreclr/templates/build-perf-maui-apps.yml + extraStepsParameters: + rootFolder: '$(Build.SourcesDirectory)/artifacts/' + includeRootFolder: true + displayName: MAC, iOS, and Android Maui Artifacts + artifactName: MACiOSAndroidMauiArm + archiveExtension: '.tar.gz' + archiveType: tar + tarCompression: gz diff --git a/eng/testing/performance/performance-setup.ps1 b/eng/testing/performance/performance-setup.ps1 index 5db0ce2449a87..c41eabef0be29 100644 --- a/eng/testing/performance/performance-setup.ps1 +++ b/eng/testing/performance/performance-setup.ps1 @@ -97,11 +97,7 @@ if ($iOSMono) { } # FIX ME: This is a workaround until we get this from the actual pipeline -$CleanedBranchName = "main" -if($Branch.Contains("refs/heads/release")) -{ - $CleanedBranchName = $Branch.replace('refs/heads/', '') -} +$CleanedBranchName = $Branch.replace('refs/heads/', '') $CommonSetupArguments="--channel $CleanedBranchName --queue $Queue --build-number $BuildNumber --build-configs $Configurations --architecture $Architecture" $SetupArguments = "--repository https://github.com/$Repository --branch $Branch --get-perf-hash --commit-sha $CommitSha $CommonSetupArguments" From d91fa9793b78bc356968992a85cfd034db3e5be9 Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Thu, 14 Oct 2021 13:07:04 -0700 Subject: [PATCH 86/86] Add back a space. --- eng/pipelines/coreclr/perf.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/eng/pipelines/coreclr/perf.yml b/eng/pipelines/coreclr/perf.yml index 71b1849db62d9..0b22bb399dfff 100644 --- a/eng/pipelines/coreclr/perf.yml +++ b/eng/pipelines/coreclr/perf.yml @@ -31,6 +31,7 @@ schedules: always: true jobs: + - ${{ if and(ne(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'Schedule')) }}: # build mono