From d581980ad01ce64e311fc902d5403bcbd4a75095 Mon Sep 17 00:00:00 2001 From: Drew Scoggins Date: Thu, 24 Sep 2026 13:28:20 -0700 Subject: [PATCH 1/4] Build macOS Arm64 artifacts for M4 performance runs Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: d3ea3c9b-20b5-43c5-8e73-5a61a2120de9 --- eng/pipelines/performance/templates/perf-build-jobs.yml | 2 ++ .../performance/templates/perf-coreclr-build-jobs.yml | 5 ++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/eng/pipelines/performance/templates/perf-build-jobs.yml b/eng/pipelines/performance/templates/perf-build-jobs.yml index b9d6caf9b66795..272f606e4f9c36 100644 --- a/eng/pipelines/performance/templates/perf-build-jobs.yml +++ b/eng/pipelines/performance/templates/perf-build-jobs.yml @@ -11,6 +11,8 @@ jobs: windows_x86: true android_arm64: true coreclr_r2r_interpreter: true + ${{ if not(startswith(variables['Build.SourceBranch'], 'refs/heads/release')) }}: + osx_arm64: true # build mono for AOT - template: /eng/pipelines/performance/templates/perf-mono-build-jobs.yml diff --git a/eng/pipelines/performance/templates/perf-coreclr-build-jobs.yml b/eng/pipelines/performance/templates/perf-coreclr-build-jobs.yml index 1dd1da5b7a894d..f465579fc19da8 100644 --- a/eng/pipelines/performance/templates/perf-coreclr-build-jobs.yml +++ b/eng/pipelines/performance/templates/perf-coreclr-build-jobs.yml @@ -4,11 +4,12 @@ parameters: windows_x64: false windows_x86: false windows_arm64: false + osx_arm64: false android_arm64: false coreclr_r2r_interpreter: false jobs: - - ${{ if or(eq(parameters.linux_x64, true), eq(parameters.windows_x64, true), eq(parameters.windows_x86, true), eq(parameters.linux_arm64, true), eq(parameters.windows_arm64, true)) }}: + - ${{ if or(eq(parameters.linux_x64, true), eq(parameters.windows_x64, true), eq(parameters.windows_x86, true), eq(parameters.linux_arm64, true), eq(parameters.windows_arm64, true), eq(parameters.osx_arm64, true)) }}: # build coreclr and libraries - template: /eng/pipelines/common/platform-matrix.yml parameters: @@ -25,6 +26,8 @@ jobs: - linux_arm64 - ${{ if eq(parameters.windows_arm64, true) }}: - windows_arm64 + - ${{ if eq(parameters.osx_arm64, true) }}: + - osx_arm64 jobParameters: nameSuffix: coreclr buildArgs: -s clr+libs+host+packs -c $(_BuildConfig) From 605c516a6993abc62e554e4ca61bb69435ebb7bf Mon Sep 17 00:00:00 2001 From: Drew Scoggins Date: Thu, 24 Sep 2026 15:03:29 -0700 Subject: [PATCH 2/4] Temporarily build and run only Mac performance jobs Disable WASM and non-Mac runtime builds for M4 queue validation. Revert this commit after the trial. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: d3ea3c9b-20b5-43c5-8e73-5a61a2120de9 --- eng/pipelines/performance/perf.yml | 13 +------------ .../performance/templates/perf-build-jobs.yml | 14 +------------- 2 files changed, 2 insertions(+), 25 deletions(-) diff --git a/eng/pipelines/performance/perf.yml b/eng/pipelines/performance/perf.yml index 93c90fa29b2079..e9b4b5d8187032 100644 --- a/eng/pipelines/performance/perf.yml +++ b/eng/pipelines/performance/perf.yml @@ -65,18 +65,7 @@ extends: timeoutInMinutes: 540 allowNoHelixJobs: true - - template: /eng/pipelines/runtime-wasm-perf-jobs.yml@performance - parameters: - #${{ and(ne(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'Schedule')) }}: - # runProfile: 'non-v8' - ${{ if eq(variables['System.TeamProject'], 'internal') }}: - runProfile: 'v8' - runtimeRepoAlias: self - performanceRepoAlias: performance - jobParameters: - ${{ if parameters.onlySanityCheck }}: - onlySanityCheck: true - + # Temporarily omit WASM builds and runs while validating the M4 queue. - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'Schedule')) }}: - template: /eng/pipelines/runtime-perf-jobs.yml@performance parameters: diff --git a/eng/pipelines/performance/templates/perf-build-jobs.yml b/eng/pipelines/performance/templates/perf-build-jobs.yml index 272f606e4f9c36..a647da1db7ff7f 100644 --- a/eng/pipelines/performance/templates/perf-build-jobs.yml +++ b/eng/pipelines/performance/templates/perf-build-jobs.yml @@ -2,20 +2,8 @@ parameters: perfBranch: 'main' # Currently only used for building the BDN App jobs: - # build coreclr and libraries + # Temporarily build only macOS Arm64 while validating the M4 queue. - template: /eng/pipelines/performance/templates/perf-coreclr-build-jobs.yml parameters: - linux_x64: true - linux_arm64: true - windows_x64: true - windows_x86: true - android_arm64: true - coreclr_r2r_interpreter: true ${{ if not(startswith(variables['Build.SourceBranch'], 'refs/heads/release')) }}: osx_arm64: true - - # build mono for AOT - - template: /eng/pipelines/performance/templates/perf-mono-build-jobs.yml - parameters: - mono_x64: true - monoAot_x64: true From df686fe4c3901f30f7aac859db0f37969be3a0c1 Mon Sep 17 00:00:00 2001 From: Drew Scoggins Date: Mon, 28 Sep 2026 09:54:35 -0700 Subject: [PATCH 3/4] Restore full performance build and run coverage Reverts temporary Mac-only configuration from 9654ea5374adeae98c94d8085b390611a64fbb56, retaining the new macOS Arm64 build. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: d3ea3c9b-20b5-43c5-8e73-5a61a2120de9 --- eng/pipelines/performance/perf.yml | 13 ++++++++++++- .../performance/templates/perf-build-jobs.yml | 14 +++++++++++++- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/eng/pipelines/performance/perf.yml b/eng/pipelines/performance/perf.yml index e9b4b5d8187032..93c90fa29b2079 100644 --- a/eng/pipelines/performance/perf.yml +++ b/eng/pipelines/performance/perf.yml @@ -65,7 +65,18 @@ extends: timeoutInMinutes: 540 allowNoHelixJobs: true - # Temporarily omit WASM builds and runs while validating the M4 queue. + - template: /eng/pipelines/runtime-wasm-perf-jobs.yml@performance + parameters: + #${{ and(ne(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'Schedule')) }}: + # runProfile: 'non-v8' + ${{ if eq(variables['System.TeamProject'], 'internal') }}: + runProfile: 'v8' + runtimeRepoAlias: self + performanceRepoAlias: performance + jobParameters: + ${{ if parameters.onlySanityCheck }}: + onlySanityCheck: true + - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'Schedule')) }}: - template: /eng/pipelines/runtime-perf-jobs.yml@performance parameters: diff --git a/eng/pipelines/performance/templates/perf-build-jobs.yml b/eng/pipelines/performance/templates/perf-build-jobs.yml index a647da1db7ff7f..272f606e4f9c36 100644 --- a/eng/pipelines/performance/templates/perf-build-jobs.yml +++ b/eng/pipelines/performance/templates/perf-build-jobs.yml @@ -2,8 +2,20 @@ parameters: perfBranch: 'main' # Currently only used for building the BDN App jobs: - # Temporarily build only macOS Arm64 while validating the M4 queue. + # build coreclr and libraries - template: /eng/pipelines/performance/templates/perf-coreclr-build-jobs.yml parameters: + linux_x64: true + linux_arm64: true + windows_x64: true + windows_x86: true + android_arm64: true + coreclr_r2r_interpreter: true ${{ if not(startswith(variables['Build.SourceBranch'], 'refs/heads/release')) }}: osx_arm64: true + + # build mono for AOT + - template: /eng/pipelines/performance/templates/perf-mono-build-jobs.yml + parameters: + mono_x64: true + monoAot_x64: true From c1419a41b9b465eeef98484ff9b0ed8267a12ee7 Mon Sep 17 00:00:00 2001 From: Drew Scoggins Date: Mon, 28 Sep 2026 15:51:00 -0700 Subject: [PATCH 4/4] Build macOS Arm64 performance artifacts on release branches Remove the unnecessary build-side branch guard. Keep the shared performance run guard for release branches without Mac build support. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: d3ea3c9b-20b5-43c5-8e73-5a61a2120de9 --- eng/pipelines/performance/templates/perf-build-jobs.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/eng/pipelines/performance/templates/perf-build-jobs.yml b/eng/pipelines/performance/templates/perf-build-jobs.yml index 272f606e4f9c36..1b44012e83f926 100644 --- a/eng/pipelines/performance/templates/perf-build-jobs.yml +++ b/eng/pipelines/performance/templates/perf-build-jobs.yml @@ -11,8 +11,7 @@ jobs: windows_x86: true android_arm64: true coreclr_r2r_interpreter: true - ${{ if not(startswith(variables['Build.SourceBranch'], 'refs/heads/release')) }}: - osx_arm64: true + osx_arm64: true # build mono for AOT - template: /eng/pipelines/performance/templates/perf-mono-build-jobs.yml