From 9a6ffd6a838ffdf56f67463edf591edcc68fa986 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 1 Oct 2026 13:32:43 +0200 Subject: [PATCH 1/4] [ci] Remove Mono coverage Contributes to dotnet/runtime#134397. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 9170c669-e132-46bb-8258-e448425535d6 --- ...ntime-extra-platforms-ioslikesimulator.yml | 34 -- .../runtime-extra-platforms-linuxbionic.yml | 49 -- .../runtime-extra-platforms-other.yml | 162 ------ .../runtime-extra-platforms-wasm.yml | 228 -------- eng/pipelines/libraries/outerloop-mono.yml | 83 --- eng/pipelines/performance/perf-build.yml | 50 -- eng/pipelines/performance/perf-gapfill.yml | 27 +- .../templates/perf-arm64-build-jobs.yml | 8 - .../performance/templates/perf-build-jobs.yml | 6 - .../templates/perf-wasm-build-jobs.yml | 22 - eng/pipelines/runtime-community.yml | 58 -- eng/pipelines/runtime-extra-platforms.yml | 6 - eng/pipelines/runtime-linker-tests.yml | 27 - eng/pipelines/runtime-linuxbionic.yml | 19 - eng/pipelines/runtime-wasm-dbgtests.yml | 33 -- eng/pipelines/runtime-wasm-optional.yml | 35 -- eng/pipelines/runtime.yml | 496 +----------------- 17 files changed, 2 insertions(+), 1341 deletions(-) delete mode 100644 eng/pipelines/extra-platforms/runtime-extra-platforms-linuxbionic.yml delete mode 100644 eng/pipelines/libraries/outerloop-mono.yml delete mode 100644 eng/pipelines/runtime-linuxbionic.yml delete mode 100644 eng/pipelines/runtime-wasm-dbgtests.yml delete mode 100644 eng/pipelines/runtime-wasm-optional.yml diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml index 4a69b960700782..6b313e1b669ec4 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml @@ -10,40 +10,6 @@ parameters: jobs: -# -# iOSSimulator interp - requires AOT Compilation and Interp flags -# Build the whole product using Mono and run libraries smoke tests -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - buildConfig: Release - runtimeFlavor: mono - isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} - isiOSLikeSimulatorOnlyBuild: ${{ parameters.isiOSLikeSimulatorOnlyBuild }} - platforms: - - iossimulator_arm64 - variables: - # map dependencies variables to local variables - - name: librariesContainsChange - value: $[ stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ] - - name: monoContainsChange - value: $[ stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'] ] - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono - buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:RunSmokeTestsOnly=true /p:RunAOTCompilation=true /p:MonoForceInterpreter=true /p:_DisableCheckForUnsupportedMonoMobileRuntime=true - timeoutInMinutes: 240 - # extra steps, run tests - postBuildSteps: - - template: /eng/pipelines/libraries/helix.yml - parameters: - creator: dotnet-bot - interpreter: true - testRunNamePrefixSuffix: Mono_$(_BuildConfig) - useHelixMonitor: ${{ parameters.useHelixMonitor }} - # # iOSSimulator # Build the whole product using Native AOT and run libraries tests diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-linuxbionic.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-linuxbionic.yml deleted file mode 100644 index 4de61352623ecb..00000000000000 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-linuxbionic.yml +++ /dev/null @@ -1,49 +0,0 @@ -# This contains only Bionic-specific jobs -# These are run as part of runtime-extra-platforms by default. -# But can also be triggered manually via `runtime-linuxbionic` name -# /azp run runtime-linuxbionic - -parameters: - isExtraPlatformsBuild: false - isLinuxBionicOnlyBuild: false - -jobs: - -# -# Build the whole product using Mono for Android Linux with Bionic libc -# FIXME: disabled test runs https://github.com/dotnet/runtime/issues/100281 -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - buildConfig: Release - runtimeFlavor: mono - isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} - isLinuxBionicOnlyBuild: ${{ parameters.isLinuxBionicOnlyBuild }} - platforms: - - linux_bionic_arm64 - - linux_bionic_x64 - variables: - - ${{ if and(eq(variables['System.TeamProject'], 'public'), eq(variables['Build.Reason'], 'PullRequest')) }}: - - name: _HelixSource - value: pr/dotnet/runtime/$(Build.SourceBranch) - - ${{ if and(eq(variables['System.TeamProject'], 'public'), ne(variables['Build.Reason'], 'PullRequest')) }}: - - name: _HelixSource - value: ci/dotnet/runtime/$(Build.SourceBranch) - - name: timeoutPerTestInMinutes - value: 60 - - name: timeoutPerTestCollectionInMinutes - value: 180 - jobParameters: - testGroup: innerloop - targetRid: linux-bionic-x64 - nameSuffix: AllSubsets_Mono - buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true - timeoutInMinutes: 480 - # extra steps, run tests # FIXME: see https://github.com/dotnet/runtime/issues/100281 - # postBuildSteps: - # - template: /eng/pipelines/libraries/helix.yml - # parameters: - # creator: dotnet-bot - # testRunNamePrefixSuffix: Mono_$(_BuildConfig)_LinuxBionic diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-other.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-other.yml index e5fa2a4b3a52e5..f6919e98e27118 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-other.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-other.yml @@ -68,165 +68,3 @@ jobs: or( eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), eq(variables['isRollingBuild'], true)) - -#### MONO LEGS - -# -# Build the whole product using Mono and run libraries tests -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - buildConfig: Release - runtimeFlavor: mono - platforms: - - windows_x64 - variables: - # map dependencies variables to local variables - - name: librariesContainsChange - value: $[ stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ] - - name: monoContainsChange - value: $[ stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'] ] - jobParameters: - testScope: innerloop - nameSuffix: AllSubsets_Mono - buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true - timeoutInMinutes: 120 - isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} - condition: >- - or( - eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isRollingBuild'], true)) - # extra steps, run tests - postBuildSteps: - - template: /eng/pipelines/libraries/helix.yml - parameters: - creator: dotnet-bot - testRunNamePrefixSuffix: Mono_$(_BuildConfig) - useHelixMonitor: ${{ parameters.useHelixMonitor }} - condition: >- - or( - eq(variables['librariesContainsChange'], true), - eq(variables['monoContainsChange'], true), - eq(variables['isRollingBuild'], true)) - -# -# Mono CoreCLR runtime test executions using live libraries and mini Full AOT -# Only when Mono is changed -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - buildConfig: Release - runtimeFlavor: mono - platforms: - - linux_x64 - # Tracking issue: https://github.com/dotnet/runtime/issues/90427 - # linux_arm64 - variables: - - name: timeoutPerTestInMinutes - value: 60 - - name: timeoutPerTestCollectionInMinutes - value: 180 - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono_MiniFullAot_RuntimeTests - runtimeVariant: minifullaot - buildArgs: -s mono+libs+clr.hosts -c Release - timeoutInMinutes: 300 - isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} - condition: >- - or( - eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isRollingBuild'], true)) - postBuildSteps: - - template: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml - parameters: - creator: dotnet-bot - llvmAotStepContainer: linux_x64 - testRunNamePrefixSuffix: Mono_Release - useHelixMonitor: ${{ parameters.useHelixMonitor }} - extraVariablesTemplates: - - template: /eng/pipelines/common/templates/runtimes/test-variables.yml - -# -# Mono CoreCLR runtime Test executions using live libraries in interpreter mode -# Only when Mono is changed - -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - buildConfig: Release - runtimeFlavor: mono - platforms: - - linux_arm64 - - osx_arm64 - variables: - - name: timeoutPerTestInMinutes - value: 60 - - name: timeoutPerTestCollectionInMinutes - value: 180 - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono_Interpreter_RuntimeTests - runtimeVariant: monointerpreter - buildArgs: -s mono+libs+clr.hosts+clr.iltools -c Release - timeoutInMinutes: 180 - isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} - condition: >- - or( - eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isRollingBuild'], true)) - postBuildSteps: - - template: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml - parameters: - creator: dotnet-bot - testRunNamePrefixSuffix: Mono_Release - useHelixMonitor: ${{ parameters.useHelixMonitor }} - extraVariablesTemplates: - - template: /eng/pipelines/common/templates/runtimes/test-variables.yml - -# -# Mono CoreCLR runtime Test executions using live libraries in JIT mode -# Only when Mono is changed - -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - buildConfig: Release - runtimeFlavor: mono - platforms: - - linux_arm64 - variables: - - name: timeoutPerTestInMinutes - value: 60 - - name: timeoutPerTestCollectionInMinutes - value: 180 - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono_Minijit_RuntimeTests - runtimeVariant: minijit - buildArgs: -s mono+libs+clr.hosts+clr.iltools -c Release - timeoutInMinutes: 180 - isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} - condition: >- - or( - eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isRollingBuild'], true)) - postBuildSteps: - - template: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml - parameters: - creator: dotnet-bot - testRunNamePrefixSuffix: Mono_Release - useHelixMonitor: ${{ parameters.useHelixMonitor }} - extraVariablesTemplates: - - template: /eng/pipelines/common/templates/runtimes/test-variables.yml diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-wasm.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-wasm.yml index 798b775a8f13a7..c418d68912ddba 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-wasm.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-wasm.yml @@ -14,72 +14,7 @@ parameters: jobs: -# -# ************ Rolling builds: ************* -# - only run eat and aot tests -# - rest are covered by runtime -# -- ${{ if eq(variables.isRollingBuild, true) }}: - # AOT Library tests - browser_wasm - - template: /eng/pipelines/common/templates/wasm-library-aot-tests.yml - parameters: - platforms: - - browser_wasm - - browser_wasm_win - nameSuffix: _Smoke_AOT - extraBuildArgs: /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) - runAOT: true - buildAOTOnHelix: false - shouldRunSmokeOnly: true - alwaysRun: true - useHelixMonitor: ${{ parameters.useHelixMonitor }} - - # AOT Library tests - wasi_wasm - - template: /eng/pipelines/common/templates/wasm-library-aot-tests.yml - parameters: - platforms: - - wasi_wasm - - wasi_wasm_win - nameSuffix: _AOT - extraBuildArgs: /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) - runAOT: true - alwaysRun: true - shouldContinueOnError: true - useHelixMonitor: ${{ parameters.useHelixMonitor }} - - # High resource AOT Library tests - - template: /eng/pipelines/common/templates/wasm-library-aot-tests.yml - parameters: - platforms: - - browser_wasm - - browser_wasm_win - nameSuffix: _HighResource_AOT - extraBuildArgs: /p:TestAssemblies=false /p:RunHighAOTResourceRequiringTestsOnly=true /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) - buildAOTOnHelix: false - runAOT: true - alwaysRun: true - useHelixMonitor: ${{ parameters.useHelixMonitor }} - -# -# ********** For !rolling builds, IOW - PR builds ************* -# - run everything, if relevant paths changed -# - For runtime-wasm, force run all the jobs -# - ${{ if and(ne(variables.isRollingBuild, true), ne(parameters.excludeLibTests, true), ne(parameters.debuggerTestsOnly, true)) }}: - # Library tests - # these run on runtime also - - template: /eng/pipelines/common/templates/wasm-library-tests.yml - parameters: - platforms: - - browser_wasm - # Don't run for rolling builds, as this is covered - extraBuildArgs: /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) - isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} - isWasmOnlyBuild: ${{ parameters.isWasmOnlyBuild }} - useHelixMonitor: ${{ parameters.useHelixMonitor }} - scenarios: - - WasmTestOnChrome - # CoreCLR ReadyToRun library tests, complementary to the default pipeline's lane. - template: /eng/pipelines/common/templates/wasm-coreclr-library-tests.yml parameters: @@ -96,123 +31,7 @@ jobs: scenarios: - WasmTestOnChrome - # Library tests with full threading - - template: /eng/pipelines/common/templates/wasm-library-tests.yml - parameters: - platforms: - - browser_wasm - #- browser_wasm_win - nameSuffix: _Threading - extraBuildArgs: /p:WasmEnableThreads=true /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) - extraHelixArguments: /p:WasmEnableThreads=true - shouldContinueOnError: true - isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} - isWasmOnlyBuild: ${{ parameters.isWasmOnlyBuild }} - alwaysRun: ${{ parameters.isWasmOnlyBuild }} - shouldRunSmokeOnly: onLibrariesAndIllinkChanges - useHelixMonitor: ${{ parameters.useHelixMonitor }} - scenarios: - - WasmTestOnChrome - - # EAT Library tests - only run on linux - - template: /eng/pipelines/common/templates/wasm-library-aot-tests.yml - parameters: - platforms: - - browser_wasm - nameSuffix: _EAT - extraBuildArgs: /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) /maxcpucount:1 - runAOT: false - buildAOTOnHelix: false - isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} - isWasmOnlyBuild: ${{ parameters.isWasmOnlyBuild }} - useHelixMonitor: ${{ parameters.useHelixMonitor }} - - # AOT Library tests - browser_wasm - - template: /eng/pipelines/common/templates/wasm-library-aot-tests.yml - parameters: - platforms: - - browser_wasm - - browser_wasm_win - nameSuffix: _Smoke_AOT - extraBuildArgs: /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) - runAOT: true - buildAOTOnHelix: false - shouldRunSmokeOnly: true - isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} - isWasmOnlyBuild: ${{ parameters.isWasmOnlyBuild }} - alwaysRun: ${{ parameters.isWasmOnlyBuild }} - useHelixMonitor: ${{ parameters.useHelixMonitor }} - - # AOT Library tests - wasi_wasm - - template: /eng/pipelines/common/templates/wasm-library-aot-tests.yml - parameters: - platforms: - - wasi_wasm - - wasi_wasm_win - nameSuffix: _AOT - extraBuildArgs: /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) - runAOT: true - shouldContinueOnError: true - isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} - isWasmOnlyBuild: ${{ parameters.isWasmOnlyBuild }} - alwaysRun: ${{ parameters.isWasmOnlyBuild }} - useHelixMonitor: ${{ parameters.useHelixMonitor }} - - # High resource AOT Library tests - - template: /eng/pipelines/common/templates/wasm-library-aot-tests.yml - parameters: - platforms: - - browser_wasm - - browser_wasm_win - nameSuffix: _HighResource_AOT - extraBuildArgs: /p:TestAssemblies=false /p:RunHighAOTResourceRequiringTestsOnly=true /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) - buildAOTOnHelix: false - runAOT: true - isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} - isWasmOnlyBuild: ${{ parameters.isWasmOnlyBuild }} - alwaysRun: ${{ parameters.isWasmOnlyBuild }} - useHelixMonitor: ${{ parameters.useHelixMonitor }} - - # Wasi - run only smoke tests by default - - template: /eng/pipelines/common/templates/wasm-library-tests.yml - parameters: - platforms: - - wasi_wasm - - wasi_wasm_win - nameSuffix: '_Smoke' - extraBuildArgs: /p:EnableAggressiveTrimming=true /p:RunWasmSamples=false /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) - shouldRunSmokeOnly: true - # ignore test failures for runtime-extra-platforms, but not when this - # is run as part of a wasm specific pipeline like runtime-wasm - shouldContinueOnError: ${{ not(parameters.isWasmOnlyBuild) }} - alwaysRun: ${{ variables.isRollingBuild }} - useHelixMonitor: ${{ parameters.useHelixMonitor }} - scenarios: - - WasmTestOnWasmtime - - ${{ if and(ne(variables.isRollingBuild, true), ne(parameters.excludeNonLibTests, true), ne(parameters.debuggerTestsOnly, true)) }}: - # Builds only - - template: /eng/pipelines/common/templates/wasm-build-only.yml - parameters: - platforms: - - browser_wasm - - browser_wasm_win - nameSuffix: SingleThreaded - extraBuildArgs: /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) - condition: ne(variables['wasmSingleThreadedBuildOnlyNeededOnDefaultPipeline'], true) - publishArtifactsForWorkload: true - publishWBT: true - - - template: /eng/pipelines/common/templates/wasm-build-only.yml - parameters: - platforms: - - browser_wasm - - browser_wasm_win - nameSuffix: MultiThreaded - extraBuildArgs: /p:WasmEnableThreads=true /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) - publishArtifactsForWorkload: true - publishWBT: false - # Release build of browser wasm for CoreCLR. Only stages the CoreCLR runtime pack # (BuildArtifacts_browser_wasm__Release_CoreCLR) that the wasm-tools workload # install in the Wasm.Build.Tests job below requires. @@ -237,50 +56,3 @@ jobs: parameters: testGroup: innerloop liveLibrariesBuildConfig: Release - - # Browser Wasm.Build.Tests - - template: /eng/pipelines/common/templates/browser-wasm-build-tests.yml - parameters: - platforms: - - browser_wasm - - browser_wasm_win - extraBuildArgs: /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) - # The CoreCLR build-only job above stages the CoreCLR runtime pack for the - # wasm-tools workload install. - includeCoreClrRuntimePack: true - useHelixMonitor: ${{ parameters.useHelixMonitor }} - - - template: /eng/pipelines/common/templates/simple-wasm-build-tests.yml - parameters: - platforms: - - wasi_wasm - - wasi_wasm_win - extraBuildArgs: /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) - isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} - isWasmOnlyBuild: ${{ parameters.isWasmOnlyBuild }} - useHelixMonitor: ${{ parameters.useHelixMonitor }} - - - template: /eng/pipelines/common/templates/wasm-runtime-tests.yml - parameters: - platforms: - - browser_wasm - extraBuildArgs: /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) - isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} - isWasmOnlyBuild: ${{ parameters.isWasmOnlyBuild }} - useHelixMonitor: ${{ parameters.useHelixMonitor }} - -- ${{ if and(ne(variables.isRollingBuild, true), ne(parameters.excludeOptional, true)) }}: - - template: /eng/pipelines/common/templates/wasm-library-tests.yml - parameters: - platforms: - - wasi_wasm - - wasi_wasm_win - extraBuildArgs: /p:EnableAggressiveTrimming=true /p:RunWasmSamples=false /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) - shouldRunSmokeOnly: true - # always run for wasm only pipelines - alwaysRun: ${{ parameters.isWasmOnlyBuild }} - isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} - isWasmOnlyBuild: ${{ parameters.isWasmOnlyBuild }} - useHelixMonitor: ${{ parameters.useHelixMonitor }} - scenarios: - - WasmTestOnWasmtime diff --git a/eng/pipelines/libraries/outerloop-mono.yml b/eng/pipelines/libraries/outerloop-mono.yml deleted file mode 100644 index a806bc037edac5..00000000000000 --- a/eng/pipelines/libraries/outerloop-mono.yml +++ /dev/null @@ -1,83 +0,0 @@ -trigger: none - -schedules: -- cron: "0 8 * * 2,4" # 8 AM UTC => 12 AM PST, every Tuesday and Thursday - displayName: Outerloop scheduled build - branches: - include: - - main - always: false # run only if there were changes since the last successful scheduled run. - -variables: - - template: variables.yml - - name: enableHelixJobMonitor - value: true - - template: /eng/pipelines/helix-platforms.yml - -extends: - template: /eng/pipelines/common/templates/pipeline-with-resources.yml - parameters: - stages: - - stage: Build - jobs: - - ${{ if eq(variables['enableHelixJobMonitor'], true) }}: - - template: /eng/common/core-templates/job/helix-job-monitor.yml - parameters: - helixAccessToken: $(HelixApiAccessToken) - timeoutInMinutes: 540 - allowNoHelixJobs: true - - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - buildConfig: Release - runtimeFlavor: mono - platforms: - - windows_x64 - - linux_x64 - - osx_x64 - - ${{ if eq(variables['isRollingBuild'], true) }}: - - android_x64 - - linux_arm - - linux_musl_x64 - - windows_x86 - jobParameters: - testScope: outerloop - nameSuffix: AllSubsets_Mono - buildArgs: -s mono+host.native+libs+libs.tests -c $(_BuildConfig) -testscope outerloop /p:ArchiveTests=true - timeoutInMinutes: 180 - includeAllPlatforms: ${{ variables['isRollingBuild'] }} - # extra steps, run tests - postBuildSteps: - - template: /eng/pipelines/libraries/helix.yml - parameters: - testScope: outerloop - creator: dotnet-bot - testRunNamePrefixSuffix: Mono_$(_BuildConfig) - useHelixMonitor: ${{ variables.enableHelixJobMonitor }} - - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - buildConfig: Release - runtimeFlavor: mono - platforms: - - browser_wasm - jobParameters: - testScope: outerloop - nameSuffix: AllSubsets_Mono - buildArgs: -s mono+libs+libs.tests -c $(_BuildConfig) -testscope outerloop /p:ArchiveTests=true /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) - timeoutInMinutes: 180 - includeAllPlatforms: ${{ variables['isRollingBuild'] }} - # extra steps, run tests - postBuildSteps: - - template: /eng/pipelines/libraries/helix.yml - parameters: - scenarios: - - WasmTestOnChrome - testScope: outerloop - creator: dotnet-bot - testRunNamePrefixSuffix: Mono_$(_BuildConfig) - useHelixMonitor: ${{ variables.enableHelixJobMonitor }} diff --git a/eng/pipelines/performance/perf-build.yml b/eng/pipelines/performance/perf-build.yml index 7f39cffcaa0e4c..827c66119b620b 100644 --- a/eng/pipelines/performance/perf-build.yml +++ b/eng/pipelines/performance/perf-build.yml @@ -30,26 +30,6 @@ parameters: displayName: Build Coreclr Arm64 Android type: boolean default: true -- name: wasm - displayName: Build WebAssembly (wasm) - type: boolean - default: true -- name: monoAot_arm64_linux - displayName: Build Mono AOT Arm64 Linux - type: boolean - default: true -- name: monoAot_x64_linux - displayName: Build Mono AOT x64 Linux - type: boolean - default: true -- name: mono_x64_linux - displayName: Build Mono x64 Linux - type: boolean - default: true -- name: mono_arm64_linux - displayName: Build Mono Arm64 Linux - type: boolean - default: true - name: nativeAot_arm64_ios displayName: Build native AOT Arm64 iOS type: boolean @@ -112,16 +92,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) }}: - - monoAot_x64_linux - - ${{ if eq(parameters.mono_x64_linux, true) }}: - - mono_x64_linux - - ${{ if eq(parameters.mono_arm64_linux, true) }}: - - mono_arm64_linux - ${{ if eq(parameters.nativeAot_arm64_ios, true) }}: - nativeAot_arm64_ios - ${{ if eq(parameters.coreclr_arm64_ios, true) }}: @@ -152,16 +122,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) }}: - - monoAot_x64_linux - - ${{ if eq(parameters.mono_x64_linux, true) }}: - - mono_x64_linux - - ${{ if eq(parameters.mono_arm64_linux, true) }}: - - mono_arm64_linux - ${{ if eq(parameters.nativeAot_arm64_ios, true) }}: - nativeAot_arm64_ios - ${{ if eq(parameters.coreclr_arm64_ios, true) }}: @@ -198,16 +158,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) }}: - - monoAot_x64_linux - - ${{ if eq(parameters.mono_x64_linux, true) }}: - - mono_x64_linux - - ${{ if eq(parameters.mono_arm64_linux, true) }}: - - mono_arm64_linux - ${{ if eq(parameters.nativeAot_arm64_ios, true) }}: - nativeAot_arm64_ios - ${{ if eq(parameters.coreclr_arm64_ios, true) }}: diff --git a/eng/pipelines/performance/perf-gapfill.yml b/eng/pipelines/performance/perf-gapfill.yml index 73ab6b000c984f..c958ffbbda2b3a 100644 --- a/eng/pipelines/performance/perf-gapfill.yml +++ b/eng/pipelines/performance/perf-gapfill.yml @@ -30,18 +30,6 @@ parameters: - linux_x64 - windows_x64 - - name: run_mono_micro - type: boolean - default: true - - - name: run_mono_interpreter - type: boolean - default: true - - - name: run_mono_aot - type: boolean - default: true - - name: run_android_coreclr_jit type: boolean default: true @@ -92,7 +80,7 @@ extends: # 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)) }}: + - ${{ if or(eq(parameters.run_viper_micro, true), eq(parameters.run_viper_micro_nor2r, true), eq(parameters.run_android_coreclr_jit, true), eq(parameters.run_android_coreclr_r2r, true)) }}: - template: /eng/pipelines/runtime-perf-jobs.yml@performance parameters: runtimeRepoAlias: self @@ -117,19 +105,6 @@ extends: viperMicroNoR2R: enabled: false configs: [] - # Mono toggles - ${{ if eq(parameters.run_mono_micro, false) }}: - monoMicro: - enabled: false - configs: [] - ${{ if eq(parameters.run_mono_interpreter, false) }}: - monoInterpreter: - enabled: false - configs: [] - ${{ if eq(parameters.run_mono_aot, false) }}: - monoAot: - enabled: false - configs: [] # Android toggles ${{ if eq(parameters.run_android_coreclr_jit, false) }}: androidCoreclrJit: diff --git a/eng/pipelines/performance/templates/perf-arm64-build-jobs.yml b/eng/pipelines/performance/templates/perf-arm64-build-jobs.yml index 9303258374e518..7abbdf6c82d6ec 100644 --- a/eng/pipelines/performance/templates/perf-arm64-build-jobs.yml +++ b/eng/pipelines/performance/templates/perf-arm64-build-jobs.yml @@ -1,15 +1,7 @@ parameters: - mono: false coreclr: false - monoAot: false jobs: - # build mono + monoAot - - template: /eng/pipelines/performance/templates/perf-mono-build-jobs.yml - parameters: - mono_arm64: ${{ parameters.mono }} - monoAot_arm64: ${{ parameters.monoAot }} - - ${{ if eq(parameters.coreclr, true) }}: # build coreclr and libraries - template: /eng/pipelines/performance/templates/perf-coreclr-build-jobs.yml diff --git a/eng/pipelines/performance/templates/perf-build-jobs.yml b/eng/pipelines/performance/templates/perf-build-jobs.yml index b9d6caf9b66795..ef50d36618ef73 100644 --- a/eng/pipelines/performance/templates/perf-build-jobs.yml +++ b/eng/pipelines/performance/templates/perf-build-jobs.yml @@ -11,9 +11,3 @@ jobs: windows_x86: true android_arm64: true coreclr_r2r_interpreter: true - - # build mono for AOT - - template: /eng/pipelines/performance/templates/perf-mono-build-jobs.yml - parameters: - mono_x64: true - monoAot_x64: true diff --git a/eng/pipelines/performance/templates/perf-wasm-build-jobs.yml b/eng/pipelines/performance/templates/perf-wasm-build-jobs.yml index dc07129261067a..571e425cf35c8f 100644 --- a/eng/pipelines/performance/templates/perf-wasm-build-jobs.yml +++ b/eng/pipelines/performance/templates/perf-wasm-build-jobs.yml @@ -1,26 +1,4 @@ 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 CoreCLR runtime for browser-wasm (used by --wasm-coreclr benchmarks) - template: /eng/pipelines/common/platform-matrix.yml diff --git a/eng/pipelines/runtime-community.yml b/eng/pipelines/runtime-community.yml index 130b548fd64159..35e39fb3aec697 100644 --- a/eng/pipelines/runtime-community.yml +++ b/eng/pipelines/runtime-community.yml @@ -42,61 +42,3 @@ extends: - stage: Build jobs: - - # - # s390x & PPC64 little endian - # Build the whole product using Mono and run libraries tests - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - buildConfig: Release - runtimeFlavor: mono - platforms: - - linux_s390x - - linux_ppc64le - variables: - # map dependencies variables to local variables - - name: librariesContainsChange - value: $[ stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ] - - name: monoContainsChange - value: $[ stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'] ] - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono - buildArgs: -s mono+libs+host.native+host.tools+host.pkg+packs+libs.tests+clr.iltools+clr.packages -c $(_BuildConfig) /p:ArchiveTests=true - timeoutInMinutes: 180 - condition: >- - or( - eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Build the whole product using Mono - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - buildConfig: Release - runtimeFlavor: mono - platforms: - - freebsd_x64 - variables: - # map dependencies variables to local variables - - name: librariesContainsChange - value: $[ stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ] - - name: monoContainsChange - value: $[ stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'] ] - jobParameters: - testScope: innerloop - nameSuffix: AllSubsets_Mono - buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - timeoutInMinutes: 120 - condition: >- - or( - eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(variables['isRollingBuild'], true)) diff --git a/eng/pipelines/runtime-extra-platforms.yml b/eng/pipelines/runtime-extra-platforms.yml index db5a49414b459c..f6bb836e6b6605 100644 --- a/eng/pipelines/runtime-extra-platforms.yml +++ b/eng/pipelines/runtime-extra-platforms.yml @@ -101,12 +101,6 @@ extends: isMacCatalystOnlyBuild: ${{ variables.isMacCatalystOnlyBuild }} useHelixMonitor: ${{ variables.enableHelixJobMonitor }} - # Add Linux Bionic jobs - - template: /eng/pipelines/extra-platforms/runtime-extra-platforms-linuxbionic.yml - parameters: - isExtraPlatformsBuild: ${{ variables.isExtraPlatformsBuild }} - isLinuxBionicOnlyBuild: ${{ variables.isLinuxBionicOnlyBuild }} - # Any jobs that are not specific to any platform - ${{ if eq(variables.isNotSpecificPlatformOnlyBuild, true) }}: - template: /eng/pipelines/extra-platforms/runtime-extra-platforms-other.yml diff --git a/eng/pipelines/runtime-linker-tests.yml b/eng/pipelines/runtime-linker-tests.yml index d16b2a022987e2..235ae8160b1f62 100644 --- a/eng/pipelines/runtime-linker-tests.yml +++ b/eng/pipelines/runtime-linker-tests.yml @@ -125,30 +125,3 @@ extends: - template: /eng/pipelines/libraries/execute-trimming-tests-steps.yml parameters: extraTestArgs: '/p:ToolsConfiguration=Debug' - - # - # Build Release config vertical for Browser-wasm - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: release - platforms: - - browser_wasm - jobParameters: - testGroup: innerloop - timeoutInMinutes: 120 - nameSuffix: Runtime_Release - buildArgs: -s mono+libs+tools.illink -c $(_BuildConfig) -p:WasmBuildNative=false -p:AotHostArchitecture=x64 -p:AotHostOS=$(_hostedOS) /p:ToolsConfiguration=Debug - condition: - or( - eq(variables['isRollingBuild'], true), - eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_wasm_specific_except_wbt_dbg.containsChange'], true), - eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_tools_illink.containsChange'], true), - eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['DarcDependenciesChanged.Microsoft_NET_ILLink_Tasks'], true)) - postBuildSteps: - - template: /eng/pipelines/libraries/execute-trimming-tests-steps.yml - parameters: - extraTestArgs: '/p:WasmBuildNative=false /p:RuntimeFlavor=Mono /p:ToolsConfiguration=Debug' - runAotTests: false diff --git a/eng/pipelines/runtime-linuxbionic.yml b/eng/pipelines/runtime-linuxbionic.yml deleted file mode 100644 index cf4f07a3974ac7..00000000000000 --- a/eng/pipelines/runtime-linuxbionic.yml +++ /dev/null @@ -1,19 +0,0 @@ -# This is a wrapper yml for `runtime-extra-platforms-linuxbionic.yml`, which -# has all the Linux Bionic jobs. This file is essentially so we can have point -# the pipeline in azdo UI to this, and thus avoid any scheduled triggers - -trigger: none - -variables: - - template: /eng/pipelines/common/variables.yml - -extends: - template: /eng/pipelines/common/templates/pipeline-with-resources.yml - parameters: - stages: - - stage: Build - jobs: - - template: /eng/pipelines/extra-platforms/runtime-extra-platforms-linuxbionic.yml - parameters: - isExtraPlatformsBuild: ${{ variables.isExtraPlatformsBuild }} - isLinuxBionicOnlyBuild: ${{ variables.isLinuxBionicOnlyBuild }} diff --git a/eng/pipelines/runtime-wasm-dbgtests.yml b/eng/pipelines/runtime-wasm-dbgtests.yml deleted file mode 100644 index db1997d8cec46b..00000000000000 --- a/eng/pipelines/runtime-wasm-dbgtests.yml +++ /dev/null @@ -1,33 +0,0 @@ -trigger: none -pr: none - -variables: - - template: /eng/pipelines/common/variables.yml - - name: enableHelixJobMonitor - value: true - -extends: - template: /eng/pipelines/common/templates/pipeline-with-resources.yml - parameters: - stages: - - ${{ if eq(variables['Build.Reason'], 'PullRequest') }}: - - stage: EvaluatePaths - displayName: Evaluate Paths - jobs: - - template: /eng/pipelines/common/evaluate-default-paths.yml - - - stage: Build - jobs: - - ${{ if eq(variables['enableHelixJobMonitor'], true) }}: - - template: /eng/common/core-templates/job/helix-job-monitor.yml - parameters: - helixAccessToken: $(HelixApiAccessToken) - timeoutInMinutes: 540 - allowNoHelixJobs: true - - - template: /eng/pipelines/extra-platforms/runtime-extra-platforms-wasm.yml - parameters: - isExtraPlatformsBuild: ${{ variables.isExtraPlatformsBuild }} - isWasmOnlyBuild: ${{ variables.isWasmOnlyBuild }} - useHelixMonitor: ${{ variables.enableHelixJobMonitor }} - debuggerTestsOnly: true diff --git a/eng/pipelines/runtime-wasm-optional.yml b/eng/pipelines/runtime-wasm-optional.yml deleted file mode 100644 index 57400309597979..00000000000000 --- a/eng/pipelines/runtime-wasm-optional.yml +++ /dev/null @@ -1,35 +0,0 @@ -trigger: none -pr: none - -variables: - - template: /eng/pipelines/common/variables.yml - - name: enableHelixJobMonitor - value: true - -extends: - template: /eng/pipelines/common/templates/pipeline-with-resources.yml - parameters: - stages: - - ${{ if eq(variables['Build.Reason'], 'PullRequest') }}: - - stage: EvaluatePaths - displayName: Evaluate Paths - jobs: - - template: /eng/pipelines/common/evaluate-default-paths.yml - - - stage: Build - jobs: - - ${{ if eq(variables['enableHelixJobMonitor'], true) }}: - - template: /eng/common/core-templates/job/helix-job-monitor.yml - parameters: - helixAccessToken: $(HelixApiAccessToken) - timeoutInMinutes: 540 - allowNoHelixJobs: true - - - template: /eng/pipelines/extra-platforms/runtime-extra-platforms-wasm.yml - parameters: - isExtraPlatformsBuild: ${{ variables.isExtraPlatformsBuild }} - isWasmOnlyBuild: ${{ variables.isWasmOnlyBuild }} - useHelixMonitor: ${{ variables.enableHelixJobMonitor }} - excludeLibTests: true - excludeNonLibTests: true - excludeOptional: false diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index f41e63fbf85ef6..79b19505857da3 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -687,7 +687,7 @@ extends: jobParameters: testGroup: innerloop nameSuffix: Native_GCC - buildArgs: -s clr.native+libs.native+mono+host.native -c $(_BuildConfig) -gcc + buildArgs: -s clr.native+libs.native+host.native -c $(_BuildConfig) -gcc postBuildSteps: - template: /eng/pipelines/common/templates/runtimes/build-runtime-tests.yml parameters: @@ -1143,123 +1143,6 @@ extends: eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true), eq(variables['isRollingBuild'], true)) - # Build Mono AOT offset headers once, for validation - # Only when mono changed - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: release - platforms: - - browser_wasm - - wasi_wasm - variables: - - name: _osParameter - value: -os linux - - name: _archParameter - value: -arch x64 - jobParameters: - nameSuffix: MonoAOTOffsets - buildArgs: -s mono.aotcross -c $(_BuildConfig) /p:MonoGenerateOffsetsOSGroups=$(osGroup) /p:ValidateMonoOffsets=true - postBuildSteps: - # Upload offset files - - task: CopyFiles@2 - displayName: Collect offset files - condition: failed() - inputs: - sourceFolder: '$(Build.SourcesDirectory)/src/mono/mono/offsets' - contents: '*.h.new' - targetFolder: '$(Build.SourcesDirectory)/artifacts/obj/mono/offsetfiles/' - - - publish: '$(Build.SourcesDirectory)/artifacts/obj/mono/offsetfiles' - condition: failed() - artifact: MonoAOTOffsets_$(osGroup)$(osSubGroup) - displayName: Upload offset files - condition: >- - or( - eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # Build the whole product using Mono runtime - # Only when libraries, mono or installer are changed - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - runtimeFlavor: mono - platforms: - - linux_x64 - - linux_arm - - linux_arm64 - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono - buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - condition: >- - or( - eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: Release - runtimeFlavor: mono - platforms: - - linux_musl_x64 - - osx_x64 - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono - buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - condition: >- - or( - eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # WebAssembly legs - # - - template: /eng/pipelines/common/templates/wasm-library-tests.yml - parameters: - platforms: - - browser_wasm - alwaysRun: ${{ variables.isRollingBuild }} - extraBuildArgs: /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) - useHelixMonitor: ${{ variables.enableHelixJobMonitor }} - scenarios: - - WasmTestOnChrome - - WasmTestOnFirefox - - - template: /eng/pipelines/common/templates/wasm-library-tests.yml - parameters: - platforms: - - browser_wasm_win - alwaysRun: ${{ variables.isRollingBuild }} - extraBuildArgs: /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) - useHelixMonitor: ${{ variables.enableHelixJobMonitor }} - scenarios: - - WasmTestOnChrome - - - template: /eng/pipelines/common/templates/wasm-library-tests.yml - parameters: - platforms: - - browser_wasm_mac - alwaysRun: ${{ variables.isRollingBuild }} - runOnlyOnChromeVersionUpdate: true - shouldRunSmokeOnly: 'true' - nameSuffix: _SmokeMac - extraBuildArgs: /p:AotHostArchitecture=arm64 /p:AotHostOS=$(_hostedOS) - useHelixMonitor: ${{ variables.enableHelixJobMonitor }} - scenarios: - - WasmTestOnChrome - # WebAssembly CoreCLR - template: /eng/pipelines/common/templates/wasm-coreclr-library-tests.yml parameters: @@ -1299,33 +1182,6 @@ extends: - WasmTestOnFirefox - WasmTestOnV8 - # EAT Library tests - only run on linux - - template: /eng/pipelines/common/templates/wasm-library-aot-tests.yml - parameters: - platforms: - - browser_wasm - nameSuffix: _EAT - buildAOTOnHelix: false - runAOT: false - shouldRunSmokeOnly: false - alwaysRun: ${{ variables.isRollingBuild }} - extraBuildArgs: /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) /maxcpucount:2 - useHelixMonitor: ${{ variables.enableHelixJobMonitor }} - - # AOT Library tests - - template: /eng/pipelines/common/templates/wasm-library-aot-tests.yml - parameters: - platforms: - - browser_wasm - - browser_wasm_win - nameSuffix: _Smoke_AOT - runAOT: true - buildAOTOnHelix: false - shouldRunSmokeOnly: true - alwaysRun: ${{ variables.isRollingBuild }} - extraBuildArgs: /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) - useHelixMonitor: ${{ variables.enableHelixJobMonitor }} - # For Wasm.Build.Tests - runtime pack builds - template: /eng/pipelines/common/templates/wasm-build-only.yml parameters: @@ -1349,40 +1205,6 @@ extends: publishArtifactsForWorkload: true publishWBT: false - # Browser Wasm.Build.Tests - - template: /eng/pipelines/common/templates/browser-wasm-build-tests.yml - parameters: - platforms: - - browser_wasm - - browser_wasm_win - alwaysRun: ${{ variables.isRollingBuild }} - extraBuildArgs: /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) - useHelixMonitor: ${{ variables.enableHelixJobMonitor }} - # This pipeline builds the CoreCLR browser-wasm runtime (nameSuffix: CoreCLR), - # so stage its runtime pack for the wasm-tools workload install. - includeCoreClrRuntimePack: true - - # Wasm runtime tests - - template: /eng/pipelines/common/templates/wasm-runtime-tests.yml - parameters: - platforms: - - browser_wasm - alwaysRun: ${{ variables.isRollingBuild }} - extraBuildArgs: /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) - useHelixMonitor: ${{ variables.enableHelixJobMonitor }} - - # WASI/WASM - - - template: /eng/pipelines/common/templates/wasm-build-only.yml - parameters: - platforms: - - wasi_wasm - - wasi_wasm_win - extraBuildArgs: /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) - condition: or(eq(variables.isRollingBuild, true), eq(variables.wasmSingleThreadedBuildOnlyNeededOnDefaultPipeline, true)) - publishArtifactsForWorkload: false - publishWBT: false - # # Android arm/arm64 devices and x64 emulators # Build the whole product using CoreCLR and run functional tests @@ -1610,103 +1432,6 @@ extends: eq(variables['librariesContainsChange'], true), eq(variables['coreclrContainsChange'], true), eq(variables['isRollingBuild'], true)) - - # - # Build Mono and Installer on LLVMAOT mode - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: Release - runtimeFlavor: mono - platforms: - - linux_x64 - - linux_arm64 - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono_LLVMAOT - buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - /p:MonoEnableLLVM=true /p:MonoAOTEnableLLVM=true /p:MonoBundleLLVMOptimizer=true - condition: >- - or( - eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - runtimeFlavor: mono - platforms: - - osx_x64 - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono_LLVMAOT - buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - /p:MonoEnableLLVM=true /p:MonoAOTEnableLLVM=true /p:MonoBundleLLVMOptimizer=true - condition: >- - or( - eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Build Mono debug - # Only when mono changed - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - runtimeFlavor: mono - buildConfig: debug - platforms: - - osx_x64 - - osx_arm64 - - linux_x64 - - linux_arm64 - # - linux_musl_arm64 - - windows_x64 - - windows_x86 - # - windows_arm64 - jobParameters: - nameSuffix: Mono_Runtime - buildArgs: -s mono -c $(_BuildConfig) - condition: >- - or( - eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Build Mono release AOT cross-compilers - # Only when mono changed - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - runtimeFlavor: mono - buildConfig: release - platforms: - - linux_x64 - - linux_musl_x64 - - linux_arm64 - - linux_musl_arm64 - - windows_arm64 - - windows_x64 - - osx_x64 - - osx_arm64 - jobParameters: - buildArgs: -c $(_BuildConfig) /p:DotNetBuildMonoCrossAOT=true - nameSuffix: CrossAOT_Mono - runtimeVariant: crossaot - condition: >- - or( - eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), - eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isRollingBuild'], true)) - # # Build and test libraries for .NET Framework # @@ -1753,160 +1478,6 @@ extends: eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_tools_illink.containsChange'], true), eq(variables['isRollingBuild'], true)) - # - # Build the whole product using Mono and run runtime tests - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - buildConfig: Release - runtimeFlavor: mono - platforms: - - osx_x64 - - linux_arm64 - variables: - - name: timeoutPerTestInMinutes - value: 60 - - name: timeoutPerTestCollectionInMinutes - value: 180 - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono_Minijit_RuntimeTests - runtimeVariant: minijit - buildArgs: -s mono+libs+clr.hosts+clr.iltools -c Release - timeoutInMinutes: 180 - condition: >- - or( - eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - postBuildSteps: - - template: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml - parameters: - creator: dotnet-bot - testRunNamePrefixSuffix: Mono_Release - useHelixMonitor: ${{ variables.enableHelixJobMonitor }} - extraVariablesTemplates: - - template: /eng/pipelines/common/templates/runtimes/test-variables.yml - - # - # Build the whole product using Mono and run runtime tests - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - buildConfig: Release - runtimeFlavor: mono - platforms: - - windows_x64 - variables: - - name: timeoutPerTestInMinutes - value: 60 - - name: timeoutPerTestCollectionInMinutes - value: 180 - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono_Minijit_RuntimeTests - runtimeVariant: minijit - buildArgs: -s mono+libs+clr.hosts+clr.iltools -c Release -lc ${{ variables.debugOnPrReleaseOnRolling }} - timeoutInMinutes: 180 - condition: >- - or( - eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - postBuildSteps: - - template: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml - parameters: - creator: dotnet-bot - testRunNamePrefixSuffix: Mono_Release - useHelixMonitor: ${{ variables.enableHelixJobMonitor }} - extraVariablesTemplates: - - template: /eng/pipelines/common/templates/runtimes/test-variables.yml - parameters: - liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - - # - # Mono CoreCLR runtime Test executions using live libraries in interpreter mode - # Only when Mono is changed - - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - buildConfig: Release - runtimeFlavor: mono - platforms: - - osx_x64 - variables: - - name: timeoutPerTestInMinutes - value: 60 - - name: timeoutPerTestCollectionInMinutes - value: 180 - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono_Interpreter_RuntimeTests - runtimeVariant: monointerpreter - buildArgs: -s mono+libs+clr.hosts+clr.iltools -c Release - timeoutInMinutes: 180 - condition: >- - or( - eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isRollingBuild'], true)) - postBuildSteps: - - template: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml - parameters: - creator: dotnet-bot - testRunNamePrefixSuffix: Mono_Release - useHelixMonitor: ${{ variables.enableHelixJobMonitor }} - extraVariablesTemplates: - - template: /eng/pipelines/common/templates/runtimes/test-variables.yml - # - # Mono CoreCLR runtime Test executions using live libraries and LLVM AOT - # Only when Mono is changed - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - buildConfig: Release - runtimeFlavor: mono - platforms: - - linux_x64 - # Disabled pending outcome of https://github.com/dotnet/runtime/issues/60234 investigation - #- linux_arm64 - variables: - - name: timeoutPerTestInMinutes - value: 60 - - name: timeoutPerTestCollectionInMinutes - value: 180 - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono_LLVMAot_RuntimeTests - runtimeVariant: llvmaot - buildArgs: -s mono+libs+clr.hosts+clr.iltools -c Release /p:MonoEnableLLVM=true /p:MonoAOTEnableLLVM=true /p:MonoBundleLLVMOptimizer=true - timeoutInMinutes: 180 - - condition: >- - or( - eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isRollingBuild'], true)) - postBuildSteps: - - template: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml - parameters: - creator: dotnet-bot - llvmAotStepContainer: linux_x64_llvmaot - testRunNamePrefixSuffix: Mono_Release - useHelixMonitor: ${{ variables.enableHelixJobMonitor }} - extraVariablesTemplates: - - template: /eng/pipelines/common/templates/runtimes/test-variables.yml - # # CoreCLR Test builds using live libraries release build # Only when CoreCLR is changed @@ -2025,68 +1596,3 @@ extends: eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), eq(variables['isRollingBuild'], true)) - - # - # Build and test Mono Interpreter with the libraries testss - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - runtimeFlavor: mono - runtimeVariant: monointerpreter - platforms: - - linux_x64 - #- osx_x64 - #- windows_x64 - jobParameters: - testGroup: innerloop - nameSuffix: Mono_Interpreter_LibrariesTests - buildArgs: -s mono+libs+libs.tests -rc Release -c $(_BuildConfig) /p:ArchiveTests=true - timeoutInMinutes: 480 - # extra steps, run tests - postBuildSteps: - - template: /eng/pipelines/libraries/helix.yml - parameters: - creator: dotnet-bot - testRunNamePrefixSuffix: Mono_Interpreter_$(_BuildConfig) - useHelixMonitor: ${{ variables.enableHelixJobMonitor }} - interpreter: true - condition: >- - or( - eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Build and test Mono Minijit with the libraries testss - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - runtimeFlavor: mono - platforms: - - linux_arm64 - - linux_x64 - - osx_x64 - #- windows_x64 - jobParameters: - testGroup: innerloop - nameSuffix: Mono_MiniJIT_LibrariesTests - buildArgs: -s mono+libs+libs.tests -rc Release -c $(_BuildConfig) /p:ArchiveTests=true - timeoutInMinutes: 480 - # extra steps, run tests - postBuildSteps: - - template: /eng/pipelines/libraries/helix.yml - parameters: - creator: dotnet-bot - testRunNamePrefixSuffix: Mono_Minijit_$(_BuildConfig) - useHelixMonitor: ${{ variables.enableHelixJobMonitor }} - condition: >- - or( - eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(variables['isRollingBuild'], true)) From 20057cba4e491611173c473486bca9a5c638d450 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Fri, 2 Oct 2026 12:13:15 +0200 Subject: [PATCH 2/4] Leave performance pipeline changes to #134602 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 9170c669-e132-46bb-8258-e448425535d6 --- eng/pipelines/performance/perf-build.yml | 50 +++++++++++++++++++ eng/pipelines/performance/perf-gapfill.yml | 27 +++++++++- .../templates/perf-arm64-build-jobs.yml | 8 +++ .../performance/templates/perf-build-jobs.yml | 6 +++ .../templates/perf-wasm-build-jobs.yml | 22 ++++++++ 5 files changed, 112 insertions(+), 1 deletion(-) diff --git a/eng/pipelines/performance/perf-build.yml b/eng/pipelines/performance/perf-build.yml index 827c66119b620b..7f39cffcaa0e4c 100644 --- a/eng/pipelines/performance/perf-build.yml +++ b/eng/pipelines/performance/perf-build.yml @@ -30,6 +30,26 @@ parameters: displayName: Build Coreclr Arm64 Android type: boolean default: true +- name: wasm + displayName: Build WebAssembly (wasm) + type: boolean + default: true +- name: monoAot_arm64_linux + displayName: Build Mono AOT Arm64 Linux + type: boolean + default: true +- name: monoAot_x64_linux + displayName: Build Mono AOT x64 Linux + type: boolean + default: true +- name: mono_x64_linux + displayName: Build Mono x64 Linux + type: boolean + default: true +- name: mono_arm64_linux + displayName: Build Mono Arm64 Linux + type: boolean + default: true - name: nativeAot_arm64_ios displayName: Build native AOT Arm64 iOS type: boolean @@ -92,6 +112,16 @@ 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) }}: + - monoAot_x64_linux + - ${{ if eq(parameters.mono_x64_linux, true) }}: + - mono_x64_linux + - ${{ if eq(parameters.mono_arm64_linux, true) }}: + - mono_arm64_linux - ${{ if eq(parameters.nativeAot_arm64_ios, true) }}: - nativeAot_arm64_ios - ${{ if eq(parameters.coreclr_arm64_ios, true) }}: @@ -122,6 +152,16 @@ 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) }}: + - monoAot_x64_linux + - ${{ if eq(parameters.mono_x64_linux, true) }}: + - mono_x64_linux + - ${{ if eq(parameters.mono_arm64_linux, true) }}: + - mono_arm64_linux - ${{ if eq(parameters.nativeAot_arm64_ios, true) }}: - nativeAot_arm64_ios - ${{ if eq(parameters.coreclr_arm64_ios, true) }}: @@ -158,6 +198,16 @@ 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) }}: + - monoAot_x64_linux + - ${{ if eq(parameters.mono_x64_linux, true) }}: + - mono_x64_linux + - ${{ if eq(parameters.mono_arm64_linux, true) }}: + - mono_arm64_linux - ${{ if eq(parameters.nativeAot_arm64_ios, true) }}: - nativeAot_arm64_ios - ${{ if eq(parameters.coreclr_arm64_ios, true) }}: diff --git a/eng/pipelines/performance/perf-gapfill.yml b/eng/pipelines/performance/perf-gapfill.yml index c958ffbbda2b3a..73ab6b000c984f 100644 --- a/eng/pipelines/performance/perf-gapfill.yml +++ b/eng/pipelines/performance/perf-gapfill.yml @@ -30,6 +30,18 @@ parameters: - linux_x64 - windows_x64 + - name: run_mono_micro + type: boolean + default: true + + - name: run_mono_interpreter + type: boolean + default: true + + - name: run_mono_aot + type: boolean + default: true + - name: run_android_coreclr_jit type: boolean default: true @@ -80,7 +92,7 @@ extends: # 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_android_coreclr_jit, true), eq(parameters.run_android_coreclr_r2r, true)) }}: + - ${{ 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)) }}: - template: /eng/pipelines/runtime-perf-jobs.yml@performance parameters: runtimeRepoAlias: self @@ -105,6 +117,19 @@ extends: viperMicroNoR2R: enabled: false configs: [] + # Mono toggles + ${{ if eq(parameters.run_mono_micro, false) }}: + monoMicro: + enabled: false + configs: [] + ${{ if eq(parameters.run_mono_interpreter, false) }}: + monoInterpreter: + enabled: false + configs: [] + ${{ if eq(parameters.run_mono_aot, false) }}: + monoAot: + enabled: false + configs: [] # Android toggles ${{ if eq(parameters.run_android_coreclr_jit, false) }}: androidCoreclrJit: diff --git a/eng/pipelines/performance/templates/perf-arm64-build-jobs.yml b/eng/pipelines/performance/templates/perf-arm64-build-jobs.yml index 7abbdf6c82d6ec..9303258374e518 100644 --- a/eng/pipelines/performance/templates/perf-arm64-build-jobs.yml +++ b/eng/pipelines/performance/templates/perf-arm64-build-jobs.yml @@ -1,7 +1,15 @@ parameters: + mono: false coreclr: false + monoAot: false jobs: + # build mono + monoAot + - template: /eng/pipelines/performance/templates/perf-mono-build-jobs.yml + parameters: + mono_arm64: ${{ parameters.mono }} + monoAot_arm64: ${{ parameters.monoAot }} + - ${{ if eq(parameters.coreclr, true) }}: # build coreclr and libraries - template: /eng/pipelines/performance/templates/perf-coreclr-build-jobs.yml diff --git a/eng/pipelines/performance/templates/perf-build-jobs.yml b/eng/pipelines/performance/templates/perf-build-jobs.yml index ef50d36618ef73..b9d6caf9b66795 100644 --- a/eng/pipelines/performance/templates/perf-build-jobs.yml +++ b/eng/pipelines/performance/templates/perf-build-jobs.yml @@ -11,3 +11,9 @@ jobs: windows_x86: true android_arm64: true coreclr_r2r_interpreter: true + + # build mono for AOT + - template: /eng/pipelines/performance/templates/perf-mono-build-jobs.yml + parameters: + mono_x64: true + monoAot_x64: true diff --git a/eng/pipelines/performance/templates/perf-wasm-build-jobs.yml b/eng/pipelines/performance/templates/perf-wasm-build-jobs.yml index 571e425cf35c8f..dc07129261067a 100644 --- a/eng/pipelines/performance/templates/perf-wasm-build-jobs.yml +++ b/eng/pipelines/performance/templates/perf-wasm-build-jobs.yml @@ -1,4 +1,26 @@ 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 CoreCLR runtime for browser-wasm (used by --wasm-coreclr benchmarks) - template: /eng/pipelines/common/platform-matrix.yml From d24419cecfa57c2cc16248ebc8f5a9d820565280 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Fri, 2 Oct 2026 15:42:20 +0200 Subject: [PATCH 3/4] Add DotNetBuildMonoRuntimePacks switch to exclude Mono runtime and cross-AOT packs When DotNetBuildMonoRuntimePacks is false, the build skips the Mono runtime packs and the Mono cross-AOT compiler packs. Builds that do not set the property are unchanged. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 9170c669-e132-46bb-8258-e448425535d6 --- eng/Subsets.props | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/eng/Subsets.props b/eng/Subsets.props index a6b04e2beaaa05..f7286a2142b853 100644 --- a/eng/Subsets.props +++ b/eng/Subsets.props @@ -86,7 +86,7 @@ crossdacpack - + android+browser+wasi $(MonoCrossAOTTargetOS)+tvos+ios+maccatalyst @@ -739,6 +739,10 @@ <_BuildBundle Condition="'$(TargetsMobile)' != 'true' and !('$(TargetsLinuxBionic)' == 'true' and '$(TargetArchitecture)' == 'arm')">true + + <_BuildMonoRuntimePack>false + + From 11f35c4c829f557efbb0fb1f6c4c1f5f65687a0b Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Fri, 2 Oct 2026 16:03:37 +0200 Subject: [PATCH 4/4] Stop building Mono runtime and cross-AOT packs for DotNetBuildAllRuntimePacks Replace the DotNetBuildMonoRuntimePacks switch. DotNetBuildAllRuntimePacks no longer adds the Mono runtime pack or the Mono cross-AOT packs outside source build. Builds with RuntimeFlavor=Mono, Mono-primary source build, and DotNetBuildMonoCrossAOT are unchanged. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 9170c669-e132-46bb-8258-e448425535d6 --- eng/Subsets.props | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/eng/Subsets.props b/eng/Subsets.props index f7286a2142b853..9aabbcec9b09fd 100644 --- a/eng/Subsets.props +++ b/eng/Subsets.props @@ -86,7 +86,7 @@ crossdacpack - + android+browser+wasi $(MonoCrossAOTTargetOS)+tvos+ios+maccatalyst @@ -724,7 +724,6 @@ <_BuildCoreCLRRuntimePack Condition="'$(CoreCLRSupported)' == 'true' and '$(TargetsWasm)' != 'true'">true - <_BuildMonoRuntimePack Condition="'$(MonoSupported)' == 'true'">true @@ -739,10 +738,6 @@ <_BuildBundle Condition="'$(TargetsMobile)' != 'true' and !('$(TargetsLinuxBionic)' == 'true' and '$(TargetArchitecture)' == 'arm')">true - - <_BuildMonoRuntimePack>false - -