Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 12 additions & 10 deletions eng/pipelines/performance/perf-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,25 +31,25 @@ parameters:
type: boolean
default: true
- name: wasm
displayName: Build WebAssembly (wasm)
displayName: Build WebAssembly Mono (wasm)
type: boolean
default: true
default: false
- name: monoAot_arm64_linux
displayName: Build Mono AOT Arm64 Linux
type: boolean
default: true
default: false
- name: monoAot_x64_linux
displayName: Build Mono AOT x64 Linux
type: boolean
default: true
default: false
- name: mono_x64_linux
displayName: Build Mono x64 Linux
type: boolean
default: true
default: false
- name: mono_arm64_linux
displayName: Build Mono Arm64 Linux
type: boolean
default: true
default: false
- name: nativeAot_arm64_ios
displayName: Build native AOT Arm64 iOS
type: boolean
Expand Down Expand Up @@ -152,8 +152,6 @@ extends:
- coreclr_x86_windows
- ${{ if eq(parameters.coreclr_arm64_android, true) }}:
- coreclr_arm64_android
- ${{ if eq(parameters.wasm, true) }}:
- wasm
- ${{ if eq(parameters.monoAot_arm64_linux, true) }}:
- monoAot_arm64_linux
- ${{ if eq(parameters.monoAot_x64_linux, true) }}:
Expand All @@ -166,13 +164,17 @@ extends:
- nativeAot_arm64_ios
- ${{ if eq(parameters.coreclr_arm64_ios, true) }}:
- coreclr_arm64_ios
- ${{ if eq(parameters.wasm_coreclr, true) }}:
- wasm_coreclr
- ${{ if eq(parameters.coreclr_r2r_interpreter, true) }}:
- coreclr_r2r_interpreter
${{ if parameters.mauiFramework }}:
mauiFramework: ${{ parameters.mauiFramework }}

# Select Mono locally without adding parameters to shared callers of older runtime wrappers.
- ${{ if or(parameters.wasm, parameters.wasm_coreclr) }}:
- template: /eng/pipelines/performance/templates/perf-wasm-build-jobs.yml
parameters:
runMono: ${{ parameters.wasm }}

- ${{ if and(ne(variables['System.TeamProject'], 'public'), or(eq(variables['Build.Reason'], 'IndividualCI'), parameters.runPrivateJobs)) }}:
- stage: UploadArtifacts
displayName: 'Upload Artifacts'
Expand Down
14 changes: 11 additions & 3 deletions eng/pipelines/performance/perf-gapfill.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,15 +32,15 @@ parameters:

- name: run_mono_micro
type: boolean
default: true
default: false

- name: run_mono_interpreter
type: boolean
default: true
default: false

- name: run_mono_aot
type: boolean
default: true
default: false

- name: run_android_coreclr_jit
type: boolean
Expand Down Expand Up @@ -79,6 +79,7 @@ extends:
- ${{ if eq(parameters.run_wasm, true) }}:
- template: /eng/pipelines/runtime-wasm-perf-jobs.yml@performance
parameters:
runMono: false
${{ if eq(variables['System.TeamProject'], 'internal') }}:
runProfile: 'v8'
runtimeRepoAlias: self
Expand All @@ -90,6 +91,13 @@ extends:
${{ if parameters.onlySanityCheck }}:
onlySanityCheck: true

# Explicit Mono source runs need their own producers; the default runtime build is CoreCLR-only.
- ${{ if and(eq(parameters.downloadSpecificBuildId, 0), or(parameters.run_mono_micro, parameters.run_mono_interpreter, parameters.run_mono_aot)) }}:
- template: /eng/pipelines/performance/templates/perf-mono-build-jobs.yml
parameters:
mono_x64: ${{ or(parameters.run_mono_micro, parameters.run_mono_interpreter) }}
monoAot_x64: ${{ parameters.run_mono_aot }}

# Runtime perf jobs (non-WASM) — included when any non-WASM group is enabled.
# Per-job-group toggles are forwarded to runtime-perf-jobs.yml as parameter overrides.
- ${{ if or(eq(parameters.run_viper_micro, true), eq(parameters.run_viper_micro_nor2r, true), eq(parameters.run_mono_micro, true), eq(parameters.run_mono_interpreter, true), eq(parameters.run_mono_aot, true), eq(parameters.run_android_coreclr_jit, true), eq(parameters.run_android_coreclr_r2r, true)) }}:
Expand Down
14 changes: 1 addition & 13 deletions eng/pipelines/performance/perf-slow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,6 @@ parameters:
- name: runPrivateJobs
type: boolean
default: false
- name: runScheduledJobs
Comment thread
LoopedBard3 marked this conversation as resolved.
Resolved
type: boolean
default: false
- name: onlySanityCheck
type: boolean
default: false
Expand Down Expand Up @@ -38,14 +35,6 @@ variables:
- name: enableHelixJobMonitor
value: true

schedules:
- cron: "30 2 * * *"
displayName: Every night at 2:30AM
branches:
include:
- main
always: true

extends:
template: /eng/pipelines/common/templates/pipeline-with-resources.yml
parameters:
Expand All @@ -65,8 +54,7 @@ extends:
- ${{ if ne(variables['System.TeamProject'], 'public') }}:
- template: /eng/pipelines/runtime-slow-perf-jobs.yml@performance
parameters:
${{ if or(in(variables['Build.Reason'], 'Schedule'), parameters.runScheduledJobs) }}:
runScheduledJobs: true
runMono: false
${{ if or(notin(variables['Build.Reason'], 'Schedule', 'Manual'), parameters.runPrivateJobs) }}:
runPrivateJobs: true
runtimeRepoAlias: self
Expand Down
16 changes: 7 additions & 9 deletions eng/pipelines/performance/perf.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,13 +32,6 @@ variables:
- name: enableHelixJobMonitor
value: true

#
# For the 'schedule' case, only wasm/jsc perf jobs are run.
# And the rest are build jobs - wasm, mono, coreclr, and libraries.
#
# Since, we are not running *any* perf jobs, none of these builds are needed,
# thus the whole scheduled run can be disabled.
#
schedules:
- cron: "0 0 * * 1"
displayName: Weekly Monday 12am UTC Build
Expand Down Expand Up @@ -67,8 +60,7 @@ extends:

- template: /eng/pipelines/runtime-wasm-perf-jobs.yml@performance
parameters:
#${{ and(ne(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'Schedule')) }}:
# runProfile: 'non-v8'
runMono: false
${{ if eq(variables['System.TeamProject'], 'internal') }}:
runProfile: 'v8'
runtimeRepoAlias: self
Expand All @@ -82,6 +74,12 @@ extends:
parameters:
runtimeRepoAlias: self
performanceRepoAlias: performance
monoMicro:
enabled: false
monoInterpreter:
enabled: false
monoAot:
enabled: false
jobParameters:
${{ if parameters.onlySanityCheck }}:
onlySanityCheck: true
1 change: 1 addition & 0 deletions eng/pipelines/performance/runtime-wasm-perf.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ extends:
runtimeRepoAlias: self
performanceRepoAlias: performance
runProfile: 'v8'
runMono: false
jobParameters:
onlySanityCheck: true
#downloadSpecificBuild:
Expand Down
8 changes: 1 addition & 7 deletions eng/pipelines/performance/templates/perf-build-jobs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,4 @@ jobs:
windows_x86: true
android_arm64: true
coreclr_r2r_interpreter: true
osx_arm64: true

# build mono for AOT
- template: /eng/pipelines/performance/templates/perf-mono-build-jobs.yml
parameters:
mono_x64: true
monoAot_x64: true
osx_arm64: true
48 changes: 25 additions & 23 deletions eng/pipelines/performance/templates/perf-wasm-build-jobs.yml
Original file line number Diff line number Diff line change
@@ -1,26 +1,28 @@
parameters:
runMono: false

jobs:
# Build Mono runtime for browser-wasm (used by default wasm benchmarks)
- 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) /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS)
nameSuffix: wasm
isOfficialBuild: false
# The wasm-tools workload manifest now includes the CoreCLR browser-wasm runtime pack, so the
# workload install below needs the CoreCLR runtime and Crossgen2 packs staged into the local
# feed. They're produced by the wasm_coreclr build job, so depend on it and download them.
dependsOn:
- build_browser_wasm_linux_Release_wasm_coreclr
postBuildSteps:
- template: /eng/pipelines/performance/templates/perf-wasm-prepare-artifacts-steps.yml
parameters:
configForBuild: Release
downloadCoreClrWorkloadPackages: true
# Build Mono only for explicitly selected performance builds.
- ${{ if eq(parameters.runMono, true) }}:
- 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) /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS)
nameSuffix: wasm
isOfficialBuild: false
# The wasm-tools workload manifest includes CoreCLR packs that the Mono build doesn't produce.
dependsOn:
- build_browser_wasm_linux_Release_wasm_coreclr
postBuildSteps:
- template: /eng/pipelines/performance/templates/perf-wasm-prepare-artifacts-steps.yml
parameters:
configForBuild: Release
downloadCoreClrWorkloadPackages: true

# Build CoreCLR runtime for browser-wasm (used by --wasm-coreclr benchmarks)
- template: /eng/pipelines/common/platform-matrix.yml
Expand All @@ -42,4 +44,4 @@ jobs:
sdkDirName: dotnet-none
includeRefPack: false
includeCoreClrToolchainPacks: true
publishCoreClrWorkloadPackages: true
publishCoreClrWorkloadPackages: ${{ parameters.runMono }}