From 04690c11e6ae95d8caad4a6fdc4bcbaaf5df3b91 Mon Sep 17 00:00:00 2001 From: Fan Yang Date: Fri, 11 Jun 2021 19:17:07 -0400 Subject: [PATCH 01/18] Enable Android x64 with interpreter --- eng/pipelines/global-build.yml | 200 +-- eng/pipelines/runtime-linker-tests.yml | 68 +- eng/pipelines/runtime-staging.yml | 688 ++++---- eng/pipelines/runtime.yml | 2096 ++++++++++++------------ eng/pipelines/runtimelab.yml | 310 ++-- src/tests/Common/testenvironment.proj | 4 +- 6 files changed, 1702 insertions(+), 1664 deletions(-) diff --git a/eng/pipelines/global-build.yml b/eng/pipelines/global-build.yml index 289f7d0033e9c2..c37db6c31a5c80 100644 --- a/eng/pipelines/global-build.yml +++ b/eng/pipelines/global-build.yml @@ -29,109 +29,109 @@ pr: - THIRD-PARTY-NOTICES.TXT jobs: -# -# Build with Release config and Debug runtimeConfiguration -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: release - platforms: - - windows_x86 - - OSX_x64 - jobParameters: - testGroup: innerloop - nameSuffix: Runtime_Debug - buildArgs: -c release -runtimeConfiguration debug - timeoutInMinutes: 90 +# # +# # Build with Release config and Debug runtimeConfiguration +# # +# - template: /eng/pipelines/common/platform-matrix.yml +# parameters: +# jobTemplate: /eng/pipelines/common/global-build-job.yml +# buildConfig: release +# platforms: +# - windows_x86 +# - OSX_x64 +# jobParameters: +# testGroup: innerloop +# nameSuffix: Runtime_Debug +# buildArgs: -c release -runtimeConfiguration debug +# timeoutInMinutes: 90 -# -# Build with Release config and runtimeConfiguration with MSBuild generator -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: release - platforms: - - windows_x86 - jobParameters: - testGroup: innerloop - nameSuffix: MSBuild_CMake - buildArgs: -c Release -msbuild - timeoutInMinutes: 90 +# # +# # Build with Release config and runtimeConfiguration with MSBuild generator +# # +# - template: /eng/pipelines/common/platform-matrix.yml +# parameters: +# jobTemplate: /eng/pipelines/common/global-build-job.yml +# buildConfig: release +# platforms: +# - windows_x86 +# jobParameters: +# testGroup: innerloop +# nameSuffix: MSBuild_CMake +# buildArgs: -c Release -msbuild +# timeoutInMinutes: 90 -# -# Build with Debug config and Release runtimeConfiguration -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: debug - platforms: - - Linux_x64 - jobParameters: - testGroup: innerloop - nameSuffix: Runtime_Release - buildArgs: -c debug -runtimeConfiguration release - timeoutInMinutes: 90 +# # +# # Build with Debug config and Release runtimeConfiguration +# # +# - template: /eng/pipelines/common/platform-matrix.yml +# parameters: +# jobTemplate: /eng/pipelines/common/global-build-job.yml +# buildConfig: debug +# platforms: +# - Linux_x64 +# jobParameters: +# testGroup: innerloop +# nameSuffix: Runtime_Release +# buildArgs: -c debug -runtimeConfiguration release +# timeoutInMinutes: 90 -# -# Build with RuntimeFlavor only. This excercise code paths where only RuntimeFlavor is -# specified. Catches cases where we depend on Configuration also being specified -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: debug - platforms: - - Linux_x64 - jobParameters: - testGroup: innerloop - nameSuffix: RuntimeFlavor_Mono - buildArgs: /p:RuntimeFlavor=Mono - timeoutInMinutes: 90 +# # +# # Build with RuntimeFlavor only. This excercise code paths where only RuntimeFlavor is +# # specified. Catches cases where we depend on Configuration also being specified +# # +# - template: /eng/pipelines/common/platform-matrix.yml +# parameters: +# jobTemplate: /eng/pipelines/common/global-build-job.yml +# buildConfig: debug +# platforms: +# - Linux_x64 +# jobParameters: +# testGroup: innerloop +# nameSuffix: RuntimeFlavor_Mono +# buildArgs: /p:RuntimeFlavor=Mono +# timeoutInMinutes: 90 -# -# Build Mono + Libraries. This excercises the code path where we build libraries without -# first building CoreCLR -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: debug - platforms: - - windows_x64 - jobParameters: - testGroup: innerloop - nameSuffix: Mono_Libraries - buildArgs: -subset mono+libs /p:RuntimeFlavor=Mono - timeoutInMinutes: 90 +# # +# # Build Mono + Libraries. This excercises the code path where we build libraries without +# # first building CoreCLR +# # +# - template: /eng/pipelines/common/platform-matrix.yml +# parameters: +# jobTemplate: /eng/pipelines/common/global-build-job.yml +# buildConfig: debug +# platforms: +# - windows_x64 +# jobParameters: +# testGroup: innerloop +# nameSuffix: Mono_Libraries +# buildArgs: -subset mono+libs /p:RuntimeFlavor=Mono +# timeoutInMinutes: 90 -# -# Build Libraries AllConfigurations. This exercises the code path where we build libraries for all -# configurations on a non Windows operating system. -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: debug - platforms: - - Linux_x64 - jobParameters: - nameSuffix: Libraries_AllConfigurations - buildArgs: -subset libs -allconfigurations - timeoutInMinutes: 90 +# # +# # Build Libraries AllConfigurations. This exercises the code path where we build libraries for all +# # configurations on a non Windows operating system. +# # +# - template: /eng/pipelines/common/platform-matrix.yml +# parameters: +# jobTemplate: /eng/pipelines/common/global-build-job.yml +# buildConfig: debug +# platforms: +# - Linux_x64 +# jobParameters: +# nameSuffix: Libraries_AllConfigurations +# buildArgs: -subset libs -allconfigurations +# timeoutInMinutes: 90 -# -# SourceBuild Build -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: release - platforms: - - SourceBuild_Linux_x64 - jobParameters: - nameSuffix: SourceBuild - buildArgs: -subset clr+libs+host+packs /p:DotNetBuildFromSource=true --portableBuild false - timeoutInMinutes: 90 +# # +# # SourceBuild Build +# # +# - template: /eng/pipelines/common/platform-matrix.yml +# parameters: +# jobTemplate: /eng/pipelines/common/global-build-job.yml +# buildConfig: release +# platforms: +# - SourceBuild_Linux_x64 +# jobParameters: +# nameSuffix: SourceBuild +# buildArgs: -subset clr+libs+host+packs /p:DotNetBuildFromSource=true --portableBuild false +# timeoutInMinutes: 90 diff --git a/eng/pipelines/runtime-linker-tests.yml b/eng/pipelines/runtime-linker-tests.yml index 836b54c849ab5f..4dab933fd7d097 100644 --- a/eng/pipelines/runtime-linker-tests.yml +++ b/eng/pipelines/runtime-linker-tests.yml @@ -44,38 +44,38 @@ pr: - THIRD-PARTY-NOTICES.TXT jobs: -# -# Build Release config vertical for Windows, Linux, Linux musl and OSX -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: release - platforms: - - windows_x64 - - OSX_x64 - - Linux_x64 - jobParameters: - testGroup: innerloop - timeoutInMinutes: 120 - nameSuffix: Runtime_Release - buildArgs: -s clr+libs -c $(_BuildConfig) - extraStepsTemplate: /eng/pipelines/libraries/execute-trimming-tests-steps.yml +# # +# # Build Release config vertical for Windows, Linux, Linux musl and OSX +# # +# - template: /eng/pipelines/common/platform-matrix.yml +# parameters: +# jobTemplate: /eng/pipelines/common/global-build-job.yml +# buildConfig: release +# platforms: +# - windows_x64 +# - OSX_x64 +# - Linux_x64 +# jobParameters: +# testGroup: innerloop +# timeoutInMinutes: 120 +# nameSuffix: Runtime_Release +# buildArgs: -s clr+libs -c $(_BuildConfig) +# extraStepsTemplate: /eng/pipelines/libraries/execute-trimming-tests-steps.yml -# -# 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 -c $(_BuildConfig) -p:WasmBuildNative=false - extraStepsTemplate: /eng/pipelines/libraries/execute-trimming-tests-steps.yml - extraStepsParameters: - extraTestArgs: '/p:WasmBuildNative=false' +# # +# # 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 -c $(_BuildConfig) -p:WasmBuildNative=false +# extraStepsTemplate: /eng/pipelines/libraries/execute-trimming-tests-steps.yml +# extraStepsParameters: +# extraTestArgs: '/p:WasmBuildNative=false' diff --git a/eng/pipelines/runtime-staging.yml b/eng/pipelines/runtime-staging.yml index eaaa9e08fe2c50..616209d4ebbb06 100644 --- a/eng/pipelines/runtime-staging.yml +++ b/eng/pipelines/runtime-staging.yml @@ -54,253 +54,252 @@ jobs: - ${{ if eq(variables.dependOnEvaluatePaths, true) }}: - template: /eng/pipelines/common/evaluate-default-paths.yml -# -# 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: - - iOSSimulator_x64 - - tvOSSimulator_x64 - variables: - # map dependencies variables to local variables - - name: librariesContainsChange - value: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ] - - name: monoContainsChange - value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'] ] - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono - buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:MonoForceInterpreter=true - timeoutInMinutes: 180 - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isFullMatrix'], true)) - # extra steps, run tests - extraStepsTemplate: /eng/pipelines/libraries/helix.yml - extraStepsParameters: - creator: dotnet-bot - interpreter: true - testRunNamePrefixSuffix: Mono_$(_BuildConfig) - condition: >- - or( - eq(variables['librariesContainsChange'], true), - eq(variables['monoContainsChange'], true), - eq(variables['isFullMatrix'], true)) +# # +# # 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: +# - iOSSimulator_x64 +# - tvOSSimulator_x64 +# variables: +# # map dependencies variables to local variables +# - name: librariesContainsChange +# value: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ] +# - name: monoContainsChange +# value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'] ] +# jobParameters: +# testGroup: innerloop +# nameSuffix: AllSubsets_Mono +# buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:MonoForceInterpreter=true +# timeoutInMinutes: 180 +# condition: >- +# or( +# eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), +# eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), +# eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), +# eq(variables['isFullMatrix'], true)) +# # extra steps, run tests +# extraStepsTemplate: /eng/pipelines/libraries/helix.yml +# extraStepsParameters: +# creator: dotnet-bot +# interpreter: true +# testRunNamePrefixSuffix: Mono_$(_BuildConfig) +# condition: >- +# or( +# eq(variables['librariesContainsChange'], true), +# eq(variables['monoContainsChange'], true), +# eq(variables['isFullMatrix'], true)) -# -# MacCatalyst interp - requires AOT Compilation and Interp flags -# 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: - - MacCatalyst_x64 - - MacCatalyst_arm64 - variables: - # map dependencies variables to local variables - - name: librariesContainsChange - value: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ] - - name: monoContainsChange - value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'] ] - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono - buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:RunAOTCompilation=true /p:MonoForceInterpreter=true - timeoutInMinutes: 180 - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isFullMatrix'], true)) - # extra steps, run tests - extraStepsTemplate: /eng/pipelines/libraries/helix.yml - extraStepsParameters: - creator: dotnet-bot - interpreter: true - testRunNamePrefixSuffix: Mono_$(_BuildConfig) - condition: >- - or( - eq(variables['librariesContainsChange'], true), - eq(variables['monoContainsChange'], true), - eq(variables['isFullMatrix'], true)) +# # +# # MacCatalyst interp - requires AOT Compilation and Interp flags +# # 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: +# - MacCatalyst_x64 +# - MacCatalyst_arm64 +# variables: +# # map dependencies variables to local variables +# - name: librariesContainsChange +# value: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ] +# - name: monoContainsChange +# value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'] ] +# jobParameters: +# testGroup: innerloop +# nameSuffix: AllSubsets_Mono +# buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:RunAOTCompilation=true /p:MonoForceInterpreter=true +# timeoutInMinutes: 180 +# condition: >- +# or( +# eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), +# eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), +# eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), +# eq(variables['isFullMatrix'], true)) +# # extra steps, run tests +# extraStepsTemplate: /eng/pipelines/libraries/helix.yml +# extraStepsParameters: +# creator: dotnet-bot +# interpreter: true +# testRunNamePrefixSuffix: Mono_$(_BuildConfig) +# condition: >- +# or( +# eq(variables['librariesContainsChange'], true), +# eq(variables['monoContainsChange'], true), +# eq(variables['isFullMatrix'], true)) -# -# 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: - - Android_x86 - - Android_x64 - variables: - # map dependencies variables to local variables - - name: librariesContainsChange - value: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ] - - name: monoContainsChange - value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'] ] - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono - buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true - timeoutInMinutes: 180 - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isFullMatrix'], true)) - # extra steps, run tests - extraStepsTemplate: /eng/pipelines/libraries/helix.yml - extraStepsParameters: - creator: dotnet-bot - testRunNamePrefixSuffix: Mono_$(_BuildConfig) - condition: >- - or( - eq(variables['librariesContainsChange'], true), - eq(variables['monoContainsChange'], true), - eq(variables['isFullMatrix'], true)) +# # +# # 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: +# - Android_x86 +# - Android_x64 +# variables: +# # map dependencies variables to local variables +# - name: librariesContainsChange +# value: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ] +# - name: monoContainsChange +# value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'] ] +# jobParameters: +# testGroup: innerloop +# nameSuffix: AllSubsets_Mono +# buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true +# timeoutInMinutes: 180 +# condition: >- +# or( +# eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), +# eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), +# eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), +# eq(variables['isFullMatrix'], true)) +# # extra steps, run tests +# extraStepsTemplate: /eng/pipelines/libraries/helix.yml +# extraStepsParameters: +# creator: dotnet-bot +# testRunNamePrefixSuffix: Mono_$(_BuildConfig) +# condition: >- +# or( +# eq(variables['librariesContainsChange'], true), +# eq(variables['monoContainsChange'], true), +# eq(variables['isFullMatrix'], 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: - - Android_arm - - Android_arm64 - variables: - # map dependencies variables to local variables - - name: librariesContainsChange - value: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ] - - name: monoContainsChange - value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'] ] - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono - buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true - timeoutInMinutes: 180 - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isFullMatrix'], 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: +# - Android_arm +# - Android_arm64 +# variables: +# # map dependencies variables to local variables +# - name: librariesContainsChange +# value: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ] +# - name: monoContainsChange +# value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'] ] +# jobParameters: +# testGroup: innerloop +# nameSuffix: AllSubsets_Mono +# buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true +# timeoutInMinutes: 180 +# condition: >- +# or( +# eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), +# eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), +# eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), +# eq(variables['isFullMatrix'], true)) - # don't run tests on PRs until we can get significantly more devices - ${{ if eq(variables['isFullMatrix'], true) }}: - # extra steps, run tests - extraStepsTemplate: /eng/pipelines/libraries/helix.yml - extraStepsParameters: - creator: dotnet-bot - testRunNamePrefixSuffix: Mono_$(_BuildConfig) - condition: >- - or( - eq(variables['librariesContainsChange'], true), - eq(variables['monoContainsChange'], true), - eq(variables['isFullMatrix'], true)) +# # don't run tests on PRs until we can get significantly more devices +# ${{ if eq(variables['isFullMatrix'], true) }}: +# # extra steps, run tests +# extraStepsTemplate: /eng/pipelines/libraries/helix.yml +# extraStepsParameters: +# creator: dotnet-bot +# testRunNamePrefixSuffix: Mono_$(_BuildConfig) +# condition: >- +# or( +# eq(variables['librariesContainsChange'], true), +# eq(variables['monoContainsChange'], true), +# eq(variables['isFullMatrix'], true)) -# -# 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: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ] - - name: monoContainsChange - value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'] ] - jobParameters: - testScope: innerloop - nameSuffix: AllSubsets_Mono - buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true - timeoutInMinutes: 120 - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isFullMatrix'], true)) - # extra steps, run tests - extraStepsTemplate: /eng/pipelines/libraries/helix.yml - extraStepsParameters: - creator: dotnet-bot - testRunNamePrefixSuffix: Mono_$(_BuildConfig) - condition: >- - or( - eq(variables['librariesContainsChange'], true), - eq(variables['monoContainsChange'], true), - eq(variables['isFullMatrix'], true)) - -# -# 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: - - Browser_wasm - variables: - # map dependencies variables to local variables - - name: librariesContainsChange - value: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ] - - name: monoContainsChange - value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'] ] - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono_AOT - buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:EnableAggressiveTrimming=true /p:BuildAOTTestsOnHelix=true /p:RunAOTCompilation=true - timeoutInMinutes: 180 - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isFullMatrix'], true)) - # extra steps, run tests - extraStepsTemplate: /eng/pipelines/libraries/helix.yml - extraStepsParameters: - creator: dotnet-bot - testRunNamePrefixSuffix: Mono_$(_BuildConfig) - extraHelixArguments: /p:NeedsToBuildWasmAppsOnHelix=true - scenarios: - - normal - condition: >- - or( - eq(variables['librariesContainsChange'], true), - eq(variables['monoContainsChange'], true), - eq(variables['isFullMatrix'], true)) +# # +# # 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: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ] +# - name: monoContainsChange +# value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'] ] +# jobParameters: +# testScope: innerloop +# nameSuffix: AllSubsets_Mono +# buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true +# timeoutInMinutes: 120 +# condition: >- +# or( +# eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), +# eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), +# eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), +# eq(variables['isFullMatrix'], true)) +# # extra steps, run tests +# extraStepsTemplate: /eng/pipelines/libraries/helix.yml +# extraStepsParameters: +# creator: dotnet-bot +# testRunNamePrefixSuffix: Mono_$(_BuildConfig) +# condition: >- +# or( +# eq(variables['librariesContainsChange'], true), +# eq(variables['monoContainsChange'], true), +# eq(variables['isFullMatrix'], true)) +# # +# # 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: +# - Browser_wasm +# variables: +# # map dependencies variables to local variables +# - name: librariesContainsChange +# value: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ] +# - name: monoContainsChange +# value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'] ] +# jobParameters: +# testGroup: innerloop +# nameSuffix: AllSubsets_Mono_AOT +# buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:EnableAggressiveTrimming=true /p:BuildAOTTestsOnHelix=true /p:RunAOTCompilation=true +# timeoutInMinutes: 180 +# condition: >- +# or( +# eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), +# eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), +# eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), +# eq(variables['isFullMatrix'], true)) +# # extra steps, run tests +# extraStepsTemplate: /eng/pipelines/libraries/helix.yml +# extraStepsParameters: +# creator: dotnet-bot +# testRunNamePrefixSuffix: Mono_$(_BuildConfig) +# extraHelixArguments: /p:NeedsToBuildWasmAppsOnHelix=true +# scenarios: +# - normal +# condition: >- +# or( +# eq(variables['librariesContainsChange'], true), +# eq(variables['monoContainsChange'], true), +# eq(variables['isFullMatrix'], true)) # -# Build the whole product using Mono for Android and run runtime tests with Android devices +# Build the whole product using Mono for Android and run runtime tests with Android emulator # - template: /eng/pipelines/common/platform-matrix.yml parameters: @@ -309,7 +308,7 @@ jobs: buildConfig: Release runtimeFlavor: mono platforms: - #- Android_arm64 # disabled due to https://github.com/dotnet/runtime/issues/47850 + - Android_x64 variables: - ${{ if and(eq(variables['System.TeamProject'], 'public'), eq(variables['Build.Reason'], 'PullRequest')) }}: - name: _HelixSource @@ -326,6 +325,7 @@ jobs: nameSuffix: AllSubsets_Mono_RuntimeTests buildArgs: -s mono+libs -c $(_BuildConfig) timeoutInMinutes: 240 + runtimeVariant: monointerpreter condition: >- or( eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), @@ -337,90 +337,128 @@ jobs: creator: dotnet-bot testRunNamePrefixSuffix: Mono_$(_BuildConfig) -# Run disabled installer tests on Linux x64 -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: Release - platforms: - - Linux_x64 - jobParameters: - nameSuffix: Installer_Tests - isOfficialBuild: ${{ variables.isOfficialBuild }} - buildArgs: -s clr+libs+host+packs -restore -build -test -c $(_BuildConfig) -lc Debug /p:PortableBuild=true /p:RunOnStaging=true - useContinueOnErrorDuringBuild: true - enablePublisTestResults: true - testResultsFormat: xunit - timeoutInMinutes: 90 +# # +# # Build the whole product using Mono for Android and run runtime tests with Android devices +# # +# - 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: +# #- Android_arm64 # disabled due to https://github.com/dotnet/runtime/issues/47850 +# 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 +# nameSuffix: AllSubsets_Mono_RuntimeTests +# buildArgs: -s mono+libs -c $(_BuildConfig) +# timeoutInMinutes: 240 +# condition: >- +# or( +# eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), +# eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), +# eq(variables['isFullMatrix'], true)) +# # extra steps, run tests +# extraStepsTemplate: /eng/pipelines/common/templates/runtimes/android-runtime-and-send-to-helix.yml +# extraStepsParameters: +# creator: dotnet-bot +# testRunNamePrefixSuffix: Mono_$(_BuildConfig) -# -# Build Browser_wasm, on windows -# -- 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_win - variables: - # map dependencies variables to local variables - - name: librariesContainsChange - value: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ] - - name: monoContainsChange - value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'] ] - jobParameters: - testGroup: innerloop - nameSuffix: Browser_wasm_Windows - buildArgs: -subset mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:BrowserHost=windows - timeoutInMinutes: 120 - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isFullMatrix'], true)) - # extra steps, run tests - extraStepsTemplate: /eng/pipelines/libraries/helix.yml - extraStepsParameters: - creator: dotnet-bot - testRunNamePrefixSuffix: Mono_$(_BuildConfig) - extraHelixArguments: /p:BrowserHost=windows - scenarios: - - normal - condition: >- - or( - eq(variables['librariesContainsChange'], true), - eq(variables['monoContainsChange'], true), - eq(variables['isFullMatrix'], true)) +# # Run disabled installer tests on Linux x64 +# - template: /eng/pipelines/common/platform-matrix.yml +# parameters: +# jobTemplate: /eng/pipelines/common/global-build-job.yml +# buildConfig: Release +# platforms: +# - Linux_x64 +# jobParameters: +# nameSuffix: Installer_Tests +# isOfficialBuild: ${{ variables.isOfficialBuild }} +# buildArgs: -s clr+libs+host+packs -restore -build -test -c $(_BuildConfig) -lc Debug /p:PortableBuild=true /p:RunOnStaging=true +# useContinueOnErrorDuringBuild: true +# enablePublisTestResults: true +# testResultsFormat: xunit +# timeoutInMinutes: 90 -# -# CoreCLR Build for running Apple Silicon libraries-innerloop -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml - buildConfig: release - platforms: - - ${{ if eq(variables['isFullMatrix'], true) }}: - - OSX_arm64 - jobParameters: - testGroup: innerloop -# -# Libraries Build for running Apple Silicon libraries-innerloop -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/build-job.yml - buildConfig: Release - platforms: - - ${{ if eq(variables['isFullMatrix'], true) }}: - - OSX_arm64 - helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - jobParameters: - isOfficialBuild: ${{ variables['isOfficialBuild'] }} - isFullMatrix: ${{ variables['isFullMatrix'] }} - runTests: true - testScope: innerloop - liveRuntimeBuildConfig: release +# # +# # Build Browser_wasm, on windows +# # +# - 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_win +# variables: +# # map dependencies variables to local variables +# - name: librariesContainsChange +# value: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ] +# - name: monoContainsChange +# value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'] ] +# jobParameters: +# testGroup: innerloop +# nameSuffix: Browser_wasm_Windows +# buildArgs: -subset mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:BrowserHost=windows +# timeoutInMinutes: 120 +# condition: >- +# or( +# eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), +# eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), +# eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), +# eq(variables['isFullMatrix'], true)) +# # extra steps, run tests +# extraStepsTemplate: /eng/pipelines/libraries/helix.yml +# extraStepsParameters: +# creator: dotnet-bot +# testRunNamePrefixSuffix: Mono_$(_BuildConfig) +# extraHelixArguments: /p:BrowserHost=windows +# scenarios: +# - normal +# condition: >- +# or( +# eq(variables['librariesContainsChange'], true), +# eq(variables['monoContainsChange'], true), +# eq(variables['isFullMatrix'], true)) + +# # +# # CoreCLR Build for running Apple Silicon libraries-innerloop +# # +# - template: /eng/pipelines/common/platform-matrix.yml +# parameters: +# jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml +# buildConfig: release +# platforms: +# - ${{ if eq(variables['isFullMatrix'], true) }}: +# - OSX_arm64 +# jobParameters: +# testGroup: innerloop +# # +# # Libraries Build for running Apple Silicon libraries-innerloop +# # +# - template: /eng/pipelines/common/platform-matrix.yml +# parameters: +# jobTemplate: /eng/pipelines/libraries/build-job.yml +# buildConfig: Release +# platforms: +# - ${{ if eq(variables['isFullMatrix'], true) }}: +# - OSX_arm64 +# helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml +# jobParameters: +# isOfficialBuild: ${{ variables['isOfficialBuild'] }} +# isFullMatrix: ${{ variables['isFullMatrix'] }} +# runTests: true +# testScope: innerloop +# liveRuntimeBuildConfig: release diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 148566ea7a262d..b2e10f03dbe6a9 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -56,356 +56,356 @@ jobs: - ${{ if eq(variables.dependOnEvaluatePaths, true) }}: - template: /eng/pipelines/common/evaluate-default-paths.yml -# -# Build CoreCLR checked -# Only when CoreCLR is changed -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml - buildConfig: checked - platforms: - - Linux_x64 - - Linux_arm - - Linux_arm64 - - Linux_musl_arm - - Linux_musl_arm64 - - Linux_musl_x64 - - OSX_arm64 - - windows_x86 - - windows_x64 - - windows_arm - - windows_arm64 - jobParameters: - testGroup: innerloop - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isFullMatrix'], true)) +# # +# # Build CoreCLR checked +# # Only when CoreCLR is changed +# # +# - template: /eng/pipelines/common/platform-matrix.yml +# parameters: +# jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml +# buildConfig: checked +# platforms: +# - Linux_x64 +# - Linux_arm +# - Linux_arm64 +# - Linux_musl_arm +# - Linux_musl_arm64 +# - Linux_musl_x64 +# - OSX_arm64 +# - windows_x86 +# - windows_x64 +# - windows_arm +# - windows_arm64 +# jobParameters: +# testGroup: innerloop +# condition: >- +# or( +# eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), +# eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), +# eq(variables['isFullMatrix'], true)) -# -# Build CoreCLR checked using GCC toolchain -# Only when CoreCLR is changed -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml - buildConfig: checked - platforms: - - Linux_x64 - jobParameters: - testGroup: innerloop - compilerName: gcc - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(variables['isFullMatrix'], true)) +# # +# # Build CoreCLR checked using GCC toolchain +# # Only when CoreCLR is changed +# # +# - template: /eng/pipelines/common/platform-matrix.yml +# parameters: +# jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml +# buildConfig: checked +# platforms: +# - Linux_x64 +# jobParameters: +# testGroup: innerloop +# compilerName: gcc +# condition: >- +# or( +# eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), +# eq(variables['isFullMatrix'], true)) -# -# Build CoreCLR OSX_x64 checked -# Only when CoreCLR or Libraries is changed -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml - buildConfig: checked - platforms: - - OSX_x64 - jobParameters: - testGroup: innerloop - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isFullMatrix'], true)) +# # +# # Build CoreCLR OSX_x64 checked +# # Only when CoreCLR or Libraries is changed +# # +# - template: /eng/pipelines/common/platform-matrix.yml +# parameters: +# jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml +# buildConfig: checked +# platforms: +# - OSX_x64 +# jobParameters: +# testGroup: innerloop +# condition: >- +# or( +# eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), +# eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), +# eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), +# eq(variables['isFullMatrix'], true)) -# -# Build CoreCLR release -# Always as they are needed by Installer and we always build and test the Installer. -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml - buildConfig: release - platforms: - - OSX_arm64 - - OSX_x64 - - Linux_x64 - - Linux_arm - - Linux_arm64 - - Linux_musl_x64 - - Linux_musl_arm - - Linux_musl_arm64 - - windows_x64 - - windows_x86 - - windows_arm - - windows_arm64 - - FreeBSD_x64 - jobParameters: - testGroup: innerloop +# # +# # Build CoreCLR release +# # Always as they are needed by Installer and we always build and test the Installer. +# # +# - template: /eng/pipelines/common/platform-matrix.yml +# parameters: +# jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml +# buildConfig: release +# platforms: +# - OSX_arm64 +# - OSX_x64 +# - Linux_x64 +# - Linux_arm +# - Linux_arm64 +# - Linux_musl_x64 +# - Linux_musl_arm +# - Linux_musl_arm64 +# - windows_x64 +# - windows_x86 +# - windows_arm +# - windows_arm64 +# - FreeBSD_x64 +# jobParameters: +# testGroup: innerloop -# -# Build PGO CoreCLR release -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml - buildConfig: release - platforms: - - windows_x64 - - windows_x86 - - Linux_x64 - jobParameters: - testGroup: innerloop - pgoType: 'PGO' +# # +# # Build PGO CoreCLR release +# # +# - template: /eng/pipelines/common/platform-matrix.yml +# parameters: +# jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml +# buildConfig: release +# platforms: +# - windows_x64 +# - windows_x86 +# - Linux_x64 +# jobParameters: +# testGroup: innerloop +# pgoType: 'PGO' -# -# Build CoreCLR Formatting Job -# Only when CoreCLR is changed, and only in the 'main' branch (no release branches; -# both CI and PR builds). -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/format-job.yml - platforms: - - Linux_x64 - - windows_x64 - jobParameters: - condition: >- - and( - or( - eq(variables['Build.SourceBranchName'], 'main'), - eq(variables['System.PullRequest.TargetBranch'], 'main')), - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(variables['isFullMatrix'], true))) +# # +# # Build CoreCLR Formatting Job +# # Only when CoreCLR is changed, and only in the 'main' branch (no release branches; +# # both CI and PR builds). +# # +# - template: /eng/pipelines/common/platform-matrix.yml +# parameters: +# jobTemplate: /eng/pipelines/coreclr/templates/format-job.yml +# platforms: +# - Linux_x64 +# - windows_x64 +# jobParameters: +# condition: >- +# and( +# or( +# eq(variables['Build.SourceBranchName'], 'main'), +# eq(variables['System.PullRequest.TargetBranch'], 'main')), +# or( +# eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), +# eq(variables['isFullMatrix'], true))) -# Build and test clr tools -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml - buildConfig: checked - platforms: - - Linux_x64 - jobParameters: - testGroup: clrTools - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(variables['isFullMatrix'], true)) +# # Build and test clr tools +# - template: /eng/pipelines/common/platform-matrix.yml +# parameters: +# jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml +# buildConfig: checked +# platforms: +# - Linux_x64 +# jobParameters: +# testGroup: clrTools +# condition: >- +# or( +# eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), +# eq(variables['isFullMatrix'], true)) -# Build Mono AOT offset headers once, for consumption elsewhere -# Only when mono changed -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/mono/templates/generate-offsets.yml - buildConfig: release - platforms: - - Android_x64 - - Browser_wasm - - tvOS_arm64 - - iOS_arm64 - - MacCatalyst_x64 - jobParameters: - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isFullMatrix'], true)) +# # Build Mono AOT offset headers once, for consumption elsewhere +# # Only when mono changed +# # +# - template: /eng/pipelines/common/platform-matrix.yml +# parameters: +# jobTemplate: /eng/pipelines/mono/templates/generate-offsets.yml +# buildConfig: release +# platforms: +# - Android_x64 +# - Browser_wasm +# - tvOS_arm64 +# - iOS_arm64 +# - MacCatalyst_x64 +# jobParameters: +# condition: >- +# or( +# eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), +# eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), +# eq(variables['isFullMatrix'], 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: - - MacCatalyst_x64 - - MacCatalyst_arm64 - - tvOSSimulator_x64 - - iOSSimulator_x86 - - iOS_arm64 - - Linux_arm - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono - buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isFullMatrix'], 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: +# - MacCatalyst_x64 +# - MacCatalyst_arm64 +# - tvOSSimulator_x64 +# - iOSSimulator_x86 +# - iOS_arm64 +# - Linux_arm +# jobParameters: +# testGroup: innerloop +# nameSuffix: AllSubsets_Mono +# buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) +# condition: >- +# or( +# eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), +# eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), +# eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), +# eq(variables['isFullMatrix'], true)) -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: Release - runtimeFlavor: mono - platforms: - - tvOS_arm64 - - iOS_arm - - Linux_musl_x64 - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono - buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isFullMatrix'], true)) +# - template: /eng/pipelines/common/platform-matrix.yml +# parameters: +# jobTemplate: /eng/pipelines/common/global-build-job.yml +# buildConfig: Release +# runtimeFlavor: mono +# platforms: +# - tvOS_arm64 +# - iOS_arm +# - Linux_musl_x64 +# jobParameters: +# testGroup: innerloop +# nameSuffix: AllSubsets_Mono +# buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) +# condition: >- +# or( +# eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), +# eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), +# eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), +# eq(variables['isFullMatrix'], true)) -# -# Build the whole product using Mono and run libraries tests, multi-scenario -# -- 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 - variables: - # map dependencies variables to local variables - - name: librariesContainsChange - value: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ] - - name: monoContainsChange - value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'] ] - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono - buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true - timeoutInMinutes: 180 - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isFullMatrix'], true)) - # extra steps, run tests - extraStepsTemplate: /eng/pipelines/libraries/helix.yml - extraStepsParameters: - creator: dotnet-bot - testRunNamePrefixSuffix: Mono_$(_BuildConfig) - scenarios: - - buildwasmapps - - normal - - wasmtestonbrowser - condition: >- - or( - eq(variables['librariesContainsChange'], true), - eq(variables['monoContainsChange'], true), - eq(variables['isFullMatrix'], true)) +# # +# # Build the whole product using Mono and run libraries tests, multi-scenario +# # +# - 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 +# variables: +# # map dependencies variables to local variables +# - name: librariesContainsChange +# value: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ] +# - name: monoContainsChange +# value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'] ] +# jobParameters: +# testGroup: innerloop +# nameSuffix: AllSubsets_Mono +# buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true +# timeoutInMinutes: 180 +# condition: >- +# or( +# eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), +# eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), +# eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), +# eq(variables['isFullMatrix'], true)) +# # extra steps, run tests +# extraStepsTemplate: /eng/pipelines/libraries/helix.yml +# extraStepsParameters: +# creator: dotnet-bot +# testRunNamePrefixSuffix: Mono_$(_BuildConfig) +# scenarios: +# - buildwasmapps +# - normal +# - wasmtestonbrowser +# condition: >- +# or( +# eq(variables['librariesContainsChange'], true), +# eq(variables['monoContainsChange'], true), +# eq(variables['isFullMatrix'], true)) -# -# Build for Browser/wasm, with EnableAggressiveTrimming=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: - - Browser_wasm - variables: - # map dependencies variables to local variables - - name: librariesContainsChange - value: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ] - - name: monoContainsChange - value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'] ] - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono_EAT - buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:EnableAggressiveTrimming=true /p:BuildAOTTestsOnHelix=true /p:RunAOTCompilation=false - timeoutInMinutes: 180 - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isFullMatrix'], true)) - # extra steps, run tests - extraStepsTemplate: /eng/pipelines/libraries/helix.yml - extraStepsParameters: - creator: dotnet-bot - testRunNamePrefixSuffix: Mono_$(_BuildConfig) - extraHelixArguments: /p:NeedsToBuildWasmAppsOnHelix=true - scenarios: - - normal - condition: >- - or( - eq(variables['librariesContainsChange'], true), - eq(variables['monoContainsChange'], true), - eq(variables['isFullMatrix'], true)) +# # +# # Build for Browser/wasm, with EnableAggressiveTrimming=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: +# - Browser_wasm +# variables: +# # map dependencies variables to local variables +# - name: librariesContainsChange +# value: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ] +# - name: monoContainsChange +# value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'] ] +# jobParameters: +# testGroup: innerloop +# nameSuffix: AllSubsets_Mono_EAT +# buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:EnableAggressiveTrimming=true /p:BuildAOTTestsOnHelix=true /p:RunAOTCompilation=false +# timeoutInMinutes: 180 +# condition: >- +# or( +# eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), +# eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), +# eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), +# eq(variables['isFullMatrix'], true)) +# # extra steps, run tests +# extraStepsTemplate: /eng/pipelines/libraries/helix.yml +# extraStepsParameters: +# creator: dotnet-bot +# testRunNamePrefixSuffix: Mono_$(_BuildConfig) +# extraHelixArguments: /p:NeedsToBuildWasmAppsOnHelix=true +# scenarios: +# - normal +# condition: >- +# or( +# eq(variables['librariesContainsChange'], true), +# eq(variables['monoContainsChange'], true), +# eq(variables['isFullMatrix'], true)) -# Build and test libraries under single-file publishing -- 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 - platforms: - - windows_x64 - - Linux_x64 - jobParameters: - testGroup: innerloop - isFullMatrix: ${{ variables.isFullMatrix }} - isSingleFile: true - nameSuffix: SingleFile - buildArgs: -s clr+libs+libs.tests -c $(_BuildConfig) /p:TestSingleFile=true /p:ArchiveTests=true - timeoutInMinutes: 120 - # extra steps, run tests - extraStepsTemplate: /eng/pipelines/libraries/helix.yml - extraStepsParameters: - creator: dotnet-bot - testRunNamePrefixSuffix: SingleFile_$(_BuildConfig) +# # Build and test libraries under single-file publishing +# - 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 +# platforms: +# - windows_x64 +# - Linux_x64 +# jobParameters: +# testGroup: innerloop +# isFullMatrix: ${{ variables.isFullMatrix }} +# isSingleFile: true +# nameSuffix: SingleFile +# buildArgs: -s clr+libs+libs.tests -c $(_BuildConfig) /p:TestSingleFile=true /p:ArchiveTests=true +# timeoutInMinutes: 120 +# # extra steps, run tests +# extraStepsTemplate: /eng/pipelines/libraries/helix.yml +# extraStepsParameters: +# creator: dotnet-bot +# testRunNamePrefixSuffix: SingleFile_$(_BuildConfig) -# -# 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: - - Browser_wasm - 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: 10 - - name: timeoutPerTestCollectionInMinutes - value: 200 - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono_RuntimeTests - buildArgs: -s mono+libs -c $(_BuildConfig) - timeoutInMinutes: 180 - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), - eq(variables['isFullMatrix'], true)) - # extra steps, run tests - extraStepsTemplate: /eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml - extraStepsParameters: - creator: dotnet-bot - testRunNamePrefixSuffix: Mono_$(_BuildConfig) +# # +# # 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: +# - Browser_wasm +# 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: 10 +# - name: timeoutPerTestCollectionInMinutes +# value: 200 +# jobParameters: +# testGroup: innerloop +# nameSuffix: AllSubsets_Mono_RuntimeTests +# buildArgs: -s mono+libs -c $(_BuildConfig) +# timeoutInMinutes: 180 +# condition: >- +# or( +# eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), +# eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), +# eq(variables['isFullMatrix'], true)) +# # extra steps, run tests +# extraStepsTemplate: /eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml +# extraStepsParameters: +# creator: dotnet-bot +# testRunNamePrefixSuffix: Mono_$(_BuildConfig) # # Build the whole product using Mono for Android and run runtime tests with Android emulator @@ -445,746 +445,746 @@ jobs: creator: dotnet-bot testRunNamePrefixSuffix: Mono_$(_BuildConfig) -# -# Build Mono and Installer on LLVMJIT mode -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: Release - runtimeFlavor: mono - platforms: - - OSX_x64 - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono_LLVMJIT - buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=false - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isFullMatrix'], true)) +# # +# # Build Mono and Installer on LLVMJIT mode +# # +# - template: /eng/pipelines/common/platform-matrix.yml +# parameters: +# jobTemplate: /eng/pipelines/common/global-build-job.yml +# buildConfig: Release +# runtimeFlavor: mono +# platforms: +# - OSX_x64 +# jobParameters: +# testGroup: innerloop +# nameSuffix: AllSubsets_Mono_LLVMJIT +# buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) +# /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=false +# condition: >- +# or( +# eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), +# eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), +# eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), +# eq(variables['isFullMatrix'], true)) -- 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_arm64 - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono_LLVMJIT - buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=false - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isFullMatrix'], true)) +# - 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_arm64 +# jobParameters: +# testGroup: innerloop +# nameSuffix: AllSubsets_Mono_LLVMJIT +# buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) +# /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=false +# condition: >- +# or( +# eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), +# eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), +# eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), +# eq(variables['isFullMatrix'], 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:MonoBundleLLVMOptimizer=true - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isFullMatrix'], 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:MonoBundleLLVMOptimizer=true +# condition: >- +# or( +# eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), +# eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), +# eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), +# eq(variables['isFullMatrix'], 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:MonoBundleLLVMOptimizer=true - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isFullMatrix'], 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:MonoBundleLLVMOptimizer=true +# condition: >- +# or( +# eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), +# eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), +# eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), +# eq(variables['isFullMatrix'], true)) -# -# Build Mono debug -# Only when libraries or mono changed -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/mono/templates/build-job.yml - runtimeFlavor: mono - buildConfig: debug - platforms: - - OSX_x64 - - OSX_arm64 - - Linux_x64 - - Linux_arm64 - # - Linux_musl_arm64 - - windows_x64 - - windows_x86 - # - windows_arm - # - windows_arm64 - jobParameters: - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), - eq(variables['isFullMatrix'], true)) +# # +# # Build Mono debug +# # Only when libraries or mono changed +# # +# - template: /eng/pipelines/common/platform-matrix.yml +# parameters: +# jobTemplate: /eng/pipelines/mono/templates/build-job.yml +# runtimeFlavor: mono +# buildConfig: debug +# platforms: +# - OSX_x64 +# - OSX_arm64 +# - Linux_x64 +# - Linux_arm64 +# # - Linux_musl_arm64 +# - windows_x64 +# - windows_x86 +# # - windows_arm +# # - windows_arm64 +# jobParameters: +# condition: >- +# or( +# eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), +# eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), +# eq(variables['isFullMatrix'], true)) -# -# Build Mono release AOT cross-compilers -# Only when mono changed -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/mono/templates/build-job.yml - runtimeFlavor: mono - buildConfig: release - platforms: - - Linux_x64 - # - Linux_arm64 - # - Linux_musl_arm64 - - Windows_x64 - # - windows_x86 - # - windows_arm - # - windows_arm64 - jobParameters: - runtimeVariant: crossaot - dependsOn: - - mono_android_offsets - - mono_browser_offsets - monoCrossAOTTargetOS: - - Android - - Browser - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isFullMatrix'], true)) +# # +# # Build Mono release AOT cross-compilers +# # Only when mono changed +# # +# - template: /eng/pipelines/common/platform-matrix.yml +# parameters: +# jobTemplate: /eng/pipelines/mono/templates/build-job.yml +# runtimeFlavor: mono +# buildConfig: release +# platforms: +# - Linux_x64 +# # - Linux_arm64 +# # - Linux_musl_arm64 +# - Windows_x64 +# # - windows_x86 +# # - windows_arm +# # - windows_arm64 +# jobParameters: +# runtimeVariant: crossaot +# dependsOn: +# - mono_android_offsets +# - mono_browser_offsets +# monoCrossAOTTargetOS: +# - Android +# - Browser +# condition: >- +# or( +# eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), +# eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), +# eq(variables['isFullMatrix'], true)) -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/mono/templates/build-job.yml - runtimeFlavor: mono - buildConfig: release - platforms: - - OSX_x64 - jobParameters: - runtimeVariant: crossaot - dependsOn: - - mono_android_offsets - - mono_browser_offsets - - mono_tvos_offsets - - mono_ios_offsets - - mono_maccatalyst_offsets - monoCrossAOTTargetOS: - - Android - - Browser - - tvOS - - iOS - - MacCatalyst - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isFullMatrix'], true)) +# - template: /eng/pipelines/common/platform-matrix.yml +# parameters: +# jobTemplate: /eng/pipelines/mono/templates/build-job.yml +# runtimeFlavor: mono +# buildConfig: release +# platforms: +# - OSX_x64 +# jobParameters: +# runtimeVariant: crossaot +# dependsOn: +# - mono_android_offsets +# - mono_browser_offsets +# - mono_tvos_offsets +# - mono_ios_offsets +# - mono_maccatalyst_offsets +# monoCrossAOTTargetOS: +# - Android +# - Browser +# - tvOS +# - iOS +# - MacCatalyst +# condition: >- +# or( +# eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), +# eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), +# eq(variables['isFullMatrix'], true)) -# -# Build Mono release -# Only when libraries or mono changed -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/mono/templates/build-job.yml - runtimeFlavor: mono - buildConfig: release - platforms: - - Linux_x64 - # - Linux_musl_arm64 - - windows_x64 - - windows_x86 - # - windows_arm - # - windows_arm64 - jobParameters: - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), - eq(variables['isFullMatrix'], true)) +# # +# # Build Mono release +# # Only when libraries or mono changed +# # +# - template: /eng/pipelines/common/platform-matrix.yml +# parameters: +# jobTemplate: /eng/pipelines/mono/templates/build-job.yml +# runtimeFlavor: mono +# buildConfig: release +# platforms: +# - Linux_x64 +# # - Linux_musl_arm64 +# - windows_x64 +# - windows_x86 +# # - windows_arm +# # - windows_arm64 +# jobParameters: +# condition: >- +# or( +# eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), +# eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), +# eq(variables['isFullMatrix'], true)) -# -# Build Mono release -# Only when libraries, mono, or the runtime tests changed -# Currently only these architectures are needed for the runtime tests. -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/mono/templates/build-job.yml - runtimeFlavor: mono - buildConfig: release - platforms: - - OSX_x64 - - Linux_arm64 - jobParameters: - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), - eq(variables['isFullMatrix'], true)) +# # +# # Build Mono release +# # Only when libraries, mono, or the runtime tests changed +# # Currently only these architectures are needed for the runtime tests. +# - template: /eng/pipelines/common/platform-matrix.yml +# parameters: +# jobTemplate: /eng/pipelines/mono/templates/build-job.yml +# runtimeFlavor: mono +# buildConfig: release +# platforms: +# - OSX_x64 +# - Linux_arm64 +# jobParameters: +# condition: >- +# or( +# eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), +# eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), +# eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), +# eq(variables['isFullMatrix'], true)) -# -# Build Mono release with LLVM AOT -# Only when mono, or the runtime tests changed -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/mono/templates/build-job.yml - runtimeFlavor: mono - buildConfig: release - platforms: - - Linux_x64 - - Linux_arm64 - jobParameters: - runtimeVariant: llvmaot - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), - eq(variables['isFullMatrix'], true)) +# # +# # Build Mono release with LLVM AOT +# # Only when mono, or the runtime tests changed +# # +# - template: /eng/pipelines/common/platform-matrix.yml +# parameters: +# jobTemplate: /eng/pipelines/mono/templates/build-job.yml +# runtimeFlavor: mono +# buildConfig: release +# platforms: +# - Linux_x64 +# - Linux_arm64 +# jobParameters: +# runtimeVariant: llvmaot +# condition: >- +# or( +# eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), +# eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), +# eq(variables['isFullMatrix'], true)) -# -# Build libraries using live CoreLib -# These set of libraries are built always no matter what changed -# The reason for that is because Corelib and Installer needs it and -# These are part of the test matrix for Libraries changes. -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/build-job.yml - buildConfig: Release - platforms: - - Linux_arm - - Linux_musl_arm - - Linux_musl_arm64 - - windows_arm - - windows_arm64 - - windows_x86 - jobParameters: - liveRuntimeBuildConfig: release +# # +# # Build libraries using live CoreLib +# # These set of libraries are built always no matter what changed +# # The reason for that is because Corelib and Installer needs it and +# # These are part of the test matrix for Libraries changes. +# # +# - template: /eng/pipelines/common/platform-matrix.yml +# parameters: +# jobTemplate: /eng/pipelines/libraries/build-job.yml +# buildConfig: Release +# platforms: +# - Linux_arm +# - Linux_musl_arm +# - Linux_musl_arm64 +# - windows_arm +# - windows_arm64 +# - windows_x86 +# jobParameters: +# liveRuntimeBuildConfig: release -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/build-job.yml - buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - platforms: - - Linux_arm64 - - Linux_musl_x64 - - Linux_x64 - - OSX_arm64 - - OSX_x64 - - windows_x64 - - FreeBSD_x64 - jobParameters: - testScope: innerloop - testBuildPlatforms: - - Linux_x64 - - windows_x64 - - OSX_x64 - liveRuntimeBuildConfig: release +# - template: /eng/pipelines/common/platform-matrix.yml +# parameters: +# jobTemplate: /eng/pipelines/libraries/build-job.yml +# buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} +# platforms: +# - Linux_arm64 +# - Linux_musl_x64 +# - Linux_x64 +# - OSX_arm64 +# - OSX_x64 +# - windows_x64 +# - FreeBSD_x64 +# jobParameters: +# testScope: innerloop +# testBuildPlatforms: +# - Linux_x64 +# - windows_x64 +# - OSX_x64 +# liveRuntimeBuildConfig: release -# -# Libraries Build that only run when libraries is changed -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/build-job.yml - buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - platforms: - - ${{ if eq(variables['isFullMatrix'], false) }}: - - windows_x86 - jobParameters: - liveRuntimeBuildConfig: release - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(variables['isFullMatrix'], true)) +# # +# # Libraries Build that only run when libraries is changed +# # +# - template: /eng/pipelines/common/platform-matrix.yml +# parameters: +# jobTemplate: /eng/pipelines/libraries/build-job.yml +# buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} +# platforms: +# - ${{ if eq(variables['isFullMatrix'], false) }}: +# - windows_x86 +# jobParameters: +# liveRuntimeBuildConfig: release +# condition: >- +# or( +# eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), +# eq(variables['isFullMatrix'], true)) -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/build-job.yml - buildConfig: Release - platforms: - - windows_x86 - - ${{ if eq(variables['isFullMatrix'], true) }}: - - windows_x64 - helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - jobParameters: - isFullMatrix: ${{ variables.isFullMatrix }} - framework: net48 - runTests: true - testScope: innerloop - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(variables['isFullMatrix'], true)) +# - template: /eng/pipelines/common/platform-matrix.yml +# parameters: +# jobTemplate: /eng/pipelines/libraries/build-job.yml +# buildConfig: Release +# platforms: +# - windows_x86 +# - ${{ if eq(variables['isFullMatrix'], true) }}: +# - windows_x64 +# helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml +# jobParameters: +# isFullMatrix: ${{ variables.isFullMatrix }} +# framework: net48 +# runTests: true +# testScope: innerloop +# condition: >- +# or( +# eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), +# eq(variables['isFullMatrix'], true)) -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/build-job.yml - buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - platforms: - - windows_x64 - jobParameters: - isFullMatrix: ${{ variables.isFullMatrix }} - framework: allConfigurations - runTests: true - useHelix: false - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(variables['isFullMatrix'], true)) +# - template: /eng/pipelines/common/platform-matrix.yml +# parameters: +# jobTemplate: /eng/pipelines/libraries/build-job.yml +# buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} +# platforms: +# - windows_x64 +# jobParameters: +# isFullMatrix: ${{ variables.isFullMatrix }} +# framework: allConfigurations +# runTests: true +# useHelix: false +# condition: >- +# or( +# eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), +# eq(variables['isFullMatrix'], true)) -# -# Installer Build and Test -# These are always built since they only take like 15 minutes -# we expect these to be done before we finish libraries or coreclr testing. -# -- template: /eng/pipelines/installer/installer-matrix.yml - parameters: - buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - platforms: - - Linux_arm - - Linux_musl_arm - - Linux_musl_arm64 - - windows_x86 - - windows_arm - - windows_arm64 - jobParameters: - liveRuntimeBuildConfig: release - liveLibrariesBuildConfig: Release +# # +# # Installer Build and Test +# # These are always built since they only take like 15 minutes +# # we expect these to be done before we finish libraries or coreclr testing. +# # +# - template: /eng/pipelines/installer/installer-matrix.yml +# parameters: +# buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} +# platforms: +# - Linux_arm +# - Linux_musl_arm +# - Linux_musl_arm64 +# - windows_x86 +# - windows_arm +# - windows_arm64 +# jobParameters: +# liveRuntimeBuildConfig: release +# liveLibrariesBuildConfig: Release -- template: /eng/pipelines/installer/installer-matrix.yml - parameters: - buildConfig: Release - platforms: - - OSX_arm64 - - OSX_x64 - - Linux_x64 - - Linux_arm64 - - Linux_musl_x64 - - windows_x64 - - FreeBSD_x64 - jobParameters: - liveRuntimeBuildConfig: release - liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} +# - template: /eng/pipelines/installer/installer-matrix.yml +# parameters: +# buildConfig: Release +# platforms: +# - OSX_arm64 +# - OSX_x64 +# - Linux_x64 +# - Linux_arm64 +# - Linux_musl_x64 +# - windows_x64 +# - FreeBSD_x64 +# jobParameters: +# liveRuntimeBuildConfig: release +# liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} -# -# PGO Build -# -- template: /eng/pipelines/installer/installer-matrix.yml - parameters: - buildConfig: Release - jobParameters: - isOfficialBuild: ${{ variables.isOfficialBuild }} - liveRuntimeBuildConfig: release - liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - pgoType: 'PGO' - platforms: - - windows_x64 - - windows_x86 - - Linux_x64 +# # +# # PGO Build +# # +# - template: /eng/pipelines/installer/installer-matrix.yml +# parameters: +# buildConfig: Release +# jobParameters: +# isOfficialBuild: ${{ variables.isOfficialBuild }} +# liveRuntimeBuildConfig: release +# liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} +# pgoType: 'PGO' +# platforms: +# - windows_x64 +# - windows_x86 +# - Linux_x64 -# -# Crossgen-comparison jobs -# Only when CoreCLR is changed -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/crossgen-comparison-job.yml - buildConfig: checked - platforms: - - Linux_arm - helixQueueGroup: pr - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - jobParameters: - liveLibrariesBuildConfig: Release - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(variables['isFullMatrix'], true)) +# # +# # Crossgen-comparison jobs +# # Only when CoreCLR is changed +# # +# - template: /eng/pipelines/common/platform-matrix.yml +# parameters: +# jobTemplate: /eng/pipelines/coreclr/templates/crossgen-comparison-job.yml +# buildConfig: checked +# platforms: +# - Linux_arm +# helixQueueGroup: pr +# helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml +# jobParameters: +# liveLibrariesBuildConfig: Release +# condition: >- +# or( +# eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), +# eq(variables['isFullMatrix'], true)) -# -# CoreCLR Test builds using live libraries release build -# Only when CoreCLR is changed -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml - buildConfig: checked - platforms: - - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64 - jobParameters: - testGroup: innerloop - liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isFullMatrix'], true)) +# # +# # CoreCLR Test builds using live libraries release build +# # Only when CoreCLR is changed +# # +# - template: /eng/pipelines/common/platform-matrix.yml +# parameters: +# jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml +# buildConfig: checked +# platforms: +# - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64 +# jobParameters: +# testGroup: innerloop +# liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} +# condition: >- +# or( +# eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), +# eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), +# eq(variables['isFullMatrix'], true)) -# -# CoreCLR Test executions using live libraries -# Only when CoreCLR is changed -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml - buildConfig: checked - platforms: - - Linux_arm - - windows_x86 - - windows_arm64 - helixQueueGroup: pr - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - jobParameters: - testGroup: innerloop - liveLibrariesBuildConfig: Release - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isFullMatrix'], true)) +# # +# # CoreCLR Test executions using live libraries +# # Only when CoreCLR is changed +# # +# - template: /eng/pipelines/common/platform-matrix.yml +# parameters: +# jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml +# buildConfig: checked +# platforms: +# - Linux_arm +# - windows_x86 +# - windows_arm64 +# helixQueueGroup: pr +# helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml +# jobParameters: +# testGroup: innerloop +# liveLibrariesBuildConfig: Release +# condition: >- +# or( +# eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), +# eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), +# eq(variables['isFullMatrix'], true)) -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml - buildConfig: checked - platforms: - - OSX_x64 - - Linux_x64 - - Linux_arm64 - - windows_x64 - helixQueueGroup: pr - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - jobParameters: - testGroup: innerloop - liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isFullMatrix'], true)) +# - template: /eng/pipelines/common/platform-matrix.yml +# parameters: +# jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml +# buildConfig: checked +# platforms: +# - OSX_x64 +# - Linux_x64 +# - Linux_arm64 +# - windows_x64 +# helixQueueGroup: pr +# helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml +# jobParameters: +# testGroup: innerloop +# liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} +# condition: >- +# or( +# eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), +# eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), +# eq(variables['isFullMatrix'], true)) -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml - buildConfig: checked - platforms: - - OSX_arm64 - helixQueueGroup: pr - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - jobParameters: - testGroup: innerloop - liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr_AppleSilicon.containsChange'], true), - eq(variables['isFullMatrix'], true)) +# - template: /eng/pipelines/common/platform-matrix.yml +# parameters: +# jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml +# buildConfig: checked +# platforms: +# - OSX_arm64 +# helixQueueGroup: pr +# helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml +# jobParameters: +# testGroup: innerloop +# liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} +# condition: >- +# or( +# eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr_AppleSilicon.containsChange'], true), +# eq(variables['isFullMatrix'], true)) -# -# Mono Test builds with CoreCLR runtime tests using live libraries debug build -# Only when Mono is changed -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml - buildConfig: release - runtimeFlavor: mono - platforms: - - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64 - jobParameters: - testGroup: innerloop - liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - liveRuntimeBuildConfig: release - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isFullMatrix'], true)) +# # +# # Mono Test builds with CoreCLR runtime tests using live libraries debug build +# # Only when Mono is changed +# - template: /eng/pipelines/common/platform-matrix.yml +# parameters: +# jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml +# buildConfig: release +# runtimeFlavor: mono +# platforms: +# - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64 +# jobParameters: +# testGroup: innerloop +# liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} +# liveRuntimeBuildConfig: release +# condition: >- +# or( +# eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), +# eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), +# eq(variables['isFullMatrix'], true)) -# -# 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/templates/runtimes/run-test-job.yml - buildConfig: release - runtimeFlavor: mono - platforms: - - OSX_x64 - - Linux_arm64 - helixQueueGroup: pr - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - jobParameters: - testGroup: innerloop - liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - liveRuntimeBuildConfig: release - runtimeVariant: minijit - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isFullMatrix'], true)) +# # +# # 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/templates/runtimes/run-test-job.yml +# buildConfig: release +# runtimeFlavor: mono +# platforms: +# - OSX_x64 +# - Linux_arm64 +# helixQueueGroup: pr +# helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml +# jobParameters: +# testGroup: innerloop +# liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} +# liveRuntimeBuildConfig: release +# runtimeVariant: minijit +# condition: >- +# or( +# eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), +# eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), +# eq(variables['isFullMatrix'], true)) -# -# 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/templates/runtimes/run-test-job.yml - buildConfig: release - runtimeFlavor: mono - platforms: - - OSX_x64 - - Linux_arm64 - helixQueueGroup: pr - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - jobParameters: - testGroup: innerloop - liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - liveRuntimeBuildConfig: release - runtimeVariant: monointerpreter - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isFullMatrix'], true)) -# -# 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/templates/runtimes/run-test-job.yml - buildConfig: release - runtimeFlavor: mono - platforms: - - Linux_x64 - - Linux_arm64 - helixQueueGroup: pr - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - jobParameters: - testGroup: innerloop - liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - liveRuntimeBuildConfig: release - runtimeVariant: llvmaot - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isFullMatrix'], true)) +# # +# # 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/templates/runtimes/run-test-job.yml +# buildConfig: release +# runtimeFlavor: mono +# platforms: +# - OSX_x64 +# - Linux_arm64 +# helixQueueGroup: pr +# helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml +# jobParameters: +# testGroup: innerloop +# liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} +# liveRuntimeBuildConfig: release +# runtimeVariant: monointerpreter +# condition: >- +# or( +# eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), +# eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), +# eq(variables['isFullMatrix'], true)) +# # +# # 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/templates/runtimes/run-test-job.yml +# buildConfig: release +# runtimeFlavor: mono +# platforms: +# - Linux_x64 +# - Linux_arm64 +# helixQueueGroup: pr +# helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml +# jobParameters: +# testGroup: innerloop +# liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} +# liveRuntimeBuildConfig: release +# runtimeVariant: llvmaot +# condition: >- +# or( +# eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), +# eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), +# eq(variables['isFullMatrix'], true)) -# -# Libraries Release Test Execution against a release mono runtime. -# Only when libraries or mono changed -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/run-test-job.yml - runtimeFlavor: mono - buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - platforms: - # - windows_x64 - - OSX_x64 - - Linux_arm64 - - Linux_x64 - helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - jobParameters: - isOfficialBuild: false - isFullMatrix: ${{ variables.isFullMatrix }} - runtimeDisplayName: mono - testScope: innerloop - liveRuntimeBuildConfig: release - dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} - dependsOnTestArchitecture: x64 - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), - eq(variables['isFullMatrix'], true)) +# # +# # Libraries Release Test Execution against a release mono runtime. +# # Only when libraries or mono changed +# # +# - template: /eng/pipelines/common/platform-matrix.yml +# parameters: +# jobTemplate: /eng/pipelines/libraries/run-test-job.yml +# runtimeFlavor: mono +# buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} +# platforms: +# # - windows_x64 +# - OSX_x64 +# - Linux_arm64 +# - Linux_x64 +# helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml +# jobParameters: +# isOfficialBuild: false +# isFullMatrix: ${{ variables.isFullMatrix }} +# runtimeDisplayName: mono +# testScope: innerloop +# liveRuntimeBuildConfig: release +# dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} +# dependsOnTestArchitecture: x64 +# condition: >- +# or( +# eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), +# eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), +# eq(variables['isFullMatrix'], true)) -# -# Libraries Release Test Execution against a release mono interpreter runtime. -# Only when libraries or mono changed -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/run-test-job.yml - runtimeFlavor: mono - buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - platforms: - # - windows_x64 - #- OSX_x64 - - Linux_x64 - helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - jobParameters: - isOfficialBuild: false - isFullMatrix: ${{ variables.isFullMatrix }} - interpreter: true - runtimeDisplayName: mono_interpreter - testScope: innerloop - liveRuntimeBuildConfig: release - dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} - dependsOnTestArchitecture: x64 - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), - eq(variables['isFullMatrix'], true)) +# # +# # Libraries Release Test Execution against a release mono interpreter runtime. +# # Only when libraries or mono changed +# # +# - template: /eng/pipelines/common/platform-matrix.yml +# parameters: +# jobTemplate: /eng/pipelines/libraries/run-test-job.yml +# runtimeFlavor: mono +# buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} +# platforms: +# # - windows_x64 +# #- OSX_x64 +# - Linux_x64 +# helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml +# jobParameters: +# isOfficialBuild: false +# isFullMatrix: ${{ variables.isFullMatrix }} +# interpreter: true +# runtimeDisplayName: mono_interpreter +# testScope: innerloop +# liveRuntimeBuildConfig: release +# dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} +# dependsOnTestArchitecture: x64 +# condition: >- +# or( +# eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), +# eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), +# eq(variables['isFullMatrix'], true)) -# -# Libraries Release Test Execution against a release coreclr runtime -# Only when the PR contains a libraries change -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/run-test-job.yml - buildConfig: Release - platforms: - - windows_x86 - - ${{ if eq(variables['isFullMatrix'], true) }}: - - windows_arm64 - helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - jobParameters: - isOfficialBuild: false - isFullMatrix: ${{ variables.isFullMatrix }} - testScope: innerloop - liveRuntimeBuildConfig: release - dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} - dependsOnTestArchitecture: x64 - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(variables['isFullMatrix'], true)) +# # +# # Libraries Release Test Execution against a release coreclr runtime +# # Only when the PR contains a libraries change +# # +# - template: /eng/pipelines/common/platform-matrix.yml +# parameters: +# jobTemplate: /eng/pipelines/libraries/run-test-job.yml +# buildConfig: Release +# platforms: +# - windows_x86 +# - ${{ if eq(variables['isFullMatrix'], true) }}: +# - windows_arm64 +# helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml +# jobParameters: +# isOfficialBuild: false +# isFullMatrix: ${{ variables.isFullMatrix }} +# testScope: innerloop +# liveRuntimeBuildConfig: release +# dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} +# dependsOnTestArchitecture: x64 +# condition: >- +# or( +# eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), +# eq(variables['isFullMatrix'], true)) -# -# Libraries Debug Test Execution against a release coreclr runtime -# Only when the PR contains a libraries change -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/run-test-job.yml - buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - platforms: - - windows_x64 - - OSX_x64 - - Linux_x64 - - Linux_musl_x64 - - ${{ if eq(variables['isFullMatrix'], true) }}: - - Linux_arm64 - - ${{ if eq(variables['isFullMatrix'], false) }}: - - windows_x86 - helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - jobParameters: - isOfficialBuild: false - isFullMatrix: ${{ variables.isFullMatrix }} - testScope: innerloop - liveRuntimeBuildConfig: release - dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} - dependsOnTestArchitecture: x64 - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(variables['isFullMatrix'], true)) +# # +# # Libraries Debug Test Execution against a release coreclr runtime +# # Only when the PR contains a libraries change +# # +# - template: /eng/pipelines/common/platform-matrix.yml +# parameters: +# jobTemplate: /eng/pipelines/libraries/run-test-job.yml +# buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} +# platforms: +# - windows_x64 +# - OSX_x64 +# - Linux_x64 +# - Linux_musl_x64 +# - ${{ if eq(variables['isFullMatrix'], true) }}: +# - Linux_arm64 +# - ${{ if eq(variables['isFullMatrix'], false) }}: +# - windows_x86 +# helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml +# jobParameters: +# isOfficialBuild: false +# isFullMatrix: ${{ variables.isFullMatrix }} +# testScope: innerloop +# liveRuntimeBuildConfig: release +# dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} +# dependsOnTestArchitecture: x64 +# condition: >- +# or( +# eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), +# eq(variables['isFullMatrix'], true)) -# -# Libraries Test Execution against a checked runtime -# Only when the PR contains a coreclr change -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/run-test-job.yml - buildConfig: Release - platforms: - # - windows_arm return this when https://github.com/dotnet/runtime/issues/1097 is fixed. - - Linux_arm - - Linux_musl_arm - - Linux_musl_arm64 - - windows_x86 - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - helixQueueGroup: libraries - jobParameters: - testScope: innerloop - liveRuntimeBuildConfig: checked - dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} - dependsOnTestArchitecture: x64 - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(variables['isFullMatrix'], true)) +# # +# # Libraries Test Execution against a checked runtime +# # Only when the PR contains a coreclr change +# # +# - template: /eng/pipelines/common/platform-matrix.yml +# parameters: +# jobTemplate: /eng/pipelines/libraries/run-test-job.yml +# buildConfig: Release +# platforms: +# # - windows_arm return this when https://github.com/dotnet/runtime/issues/1097 is fixed. +# - Linux_arm +# - Linux_musl_arm +# - Linux_musl_arm64 +# - windows_x86 +# helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml +# helixQueueGroup: libraries +# jobParameters: +# testScope: innerloop +# liveRuntimeBuildConfig: checked +# dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} +# dependsOnTestArchitecture: x64 +# condition: >- +# or( +# eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), +# eq(variables['isFullMatrix'], true)) -# -# Libraries Test Execution against a checked runtime -# Only if CoreCLR or Libraries is changed -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/run-test-job.yml - buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - platforms: - - windows_x64 - - Linux_x64 - - Linux_musl_x64 - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - helixQueueGroup: libraries - jobParameters: - testScope: innerloop - liveRuntimeBuildConfig: checked - dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} - dependsOnTestArchitecture: x64 - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(variables['isFullMatrix'], true)) +# # +# # Libraries Test Execution against a checked runtime +# # Only if CoreCLR or Libraries is changed +# # +# - template: /eng/pipelines/common/platform-matrix.yml +# parameters: +# jobTemplate: /eng/pipelines/libraries/run-test-job.yml +# buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} +# platforms: +# - windows_x64 +# - Linux_x64 +# - Linux_musl_x64 +# helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml +# helixQueueGroup: libraries +# jobParameters: +# testScope: innerloop +# liveRuntimeBuildConfig: checked +# dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} +# dependsOnTestArchitecture: x64 +# condition: >- +# or( +# eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), +# eq(variables['isFullMatrix'], true)) -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/run-test-job.yml - buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - platforms: - - OSX_x64 - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - helixQueueGroup: libraries - jobParameters: - testScope: innerloop - liveRuntimeBuildConfig: checked - dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} - dependsOnTestArchitecture: x64 - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(variables['isFullMatrix'], true)) +# - template: /eng/pipelines/common/platform-matrix.yml +# parameters: +# jobTemplate: /eng/pipelines/libraries/run-test-job.yml +# buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} +# platforms: +# - OSX_x64 +# helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml +# helixQueueGroup: libraries +# jobParameters: +# testScope: innerloop +# liveRuntimeBuildConfig: checked +# dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} +# dependsOnTestArchitecture: x64 +# condition: >- +# or( +# eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), +# eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), +# eq(variables['isFullMatrix'], true)) diff --git a/eng/pipelines/runtimelab.yml b/eng/pipelines/runtimelab.yml index db73445d799874..c3827d520d38a4 100644 --- a/eng/pipelines/runtimelab.yml +++ b/eng/pipelines/runtimelab.yml @@ -53,169 +53,169 @@ stages: - stage: Build jobs: - # - # Build with Debug config and Checked runtimeConfiguration - # - - ${{ if ne(variables.isOfficialBuild, true) }}: - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: Checked - platforms: - - Linux_x64 - - windows_x64 - jobParameters: - timeoutInMinutes: 100 - testGroup: innerloop - buildArgs: -s clr+libs+host+packs -c debug -runtimeConfiguration Checked - extraStepsTemplate: /eng/pipelines/runtimelab/runtimelab-post-build-steps.yml - extraStepsParameters: - uploadRuntimeTests: true + # # + # # Build with Debug config and Checked runtimeConfiguration + # # + # - ${{ if ne(variables.isOfficialBuild, true) }}: + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # buildConfig: Checked + # platforms: + # - Linux_x64 + # - windows_x64 + # jobParameters: + # timeoutInMinutes: 100 + # testGroup: innerloop + # buildArgs: -s clr+libs+host+packs -c debug -runtimeConfiguration Checked + # extraStepsTemplate: /eng/pipelines/runtimelab/runtimelab-post-build-steps.yml + # extraStepsParameters: + # uploadRuntimeTests: true - # - # Build with Release config and Release runtimeConfiguration - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: Release - platforms: - - Linux_x64 - - windows_x64 - jobParameters: - timeoutInMinutes: 100 - isOfficialBuild: ${{ variables.isOfficialBuild }} - testGroup: innerloop - extraStepsTemplate: /eng/pipelines/runtimelab/runtimelab-post-build-steps.yml - extraStepsParameters: - uploadLibrariesTests: ${{ eq(variables.isOfficialBuild, false) }} - uploadIntermediateArtifacts: false - ${{ if eq(variables.isOfficialBuild, false) }}: - buildArgs: -s clr+libs+libs.tests+host+packs -c $(_BuildConfig) /p:ArchiveTests=true - ${{ if eq(variables.isOfficialBuild, true) }}: - buildArgs: -s clr+libs -c $(_BuildConfig) + # # + # # Build with Release config and Release runtimeConfiguration + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # buildConfig: Release + # platforms: + # - Linux_x64 + # - windows_x64 + # jobParameters: + # timeoutInMinutes: 100 + # isOfficialBuild: ${{ variables.isOfficialBuild }} + # testGroup: innerloop + # extraStepsTemplate: /eng/pipelines/runtimelab/runtimelab-post-build-steps.yml + # extraStepsParameters: + # uploadLibrariesTests: ${{ eq(variables.isOfficialBuild, false) }} + # uploadIntermediateArtifacts: false + # ${{ if eq(variables.isOfficialBuild, false) }}: + # buildArgs: -s clr+libs+libs.tests+host+packs -c $(_BuildConfig) /p:ArchiveTests=true + # ${{ if eq(variables.isOfficialBuild, true) }}: + # buildArgs: -s clr+libs -c $(_BuildConfig) - # - # Build with Release allConfigurations to produce packages - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: Release - platforms: - - windows_x64 - jobParameters: - isOfficialBuild: ${{ variables.isOfficialBuild }} - testGroup: innerloop - nameSuffix: AllConfigurations - buildArgs: -s libs -c $(_BuildConfig) -allConfigurations - ${{ if eq(variables.isOfficialBuild, true) }}: - extraStepsTemplate: /eng/pipelines/runtimelab/runtimelab-post-build-steps.yml - extraStepsParameters: - uploadIntermediateArtifacts: true - isOfficialBuild: true - librariesBinArtifactName: libraries_bin_official_allconfigurations + # # + # # Build with Release allConfigurations to produce packages + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # buildConfig: Release + # platforms: + # - windows_x64 + # jobParameters: + # isOfficialBuild: ${{ variables.isOfficialBuild }} + # testGroup: innerloop + # nameSuffix: AllConfigurations + # buildArgs: -s libs -c $(_BuildConfig) -allConfigurations + # ${{ if eq(variables.isOfficialBuild, true) }}: + # extraStepsTemplate: /eng/pipelines/runtimelab/runtimelab-post-build-steps.yml + # extraStepsParameters: + # uploadIntermediateArtifacts: true + # isOfficialBuild: true + # librariesBinArtifactName: libraries_bin_official_allconfigurations - # Installer official builds need to build installers and need the libraries all configurations build - - ${{ if eq(variables.isOfficialBuild, true) }}: - - template: /eng/pipelines/installer/installer-matrix.yml - parameters: - jobParameters: - liveRuntimeBuildConfig: Release - liveLibrariesBuildConfig: Release - isOfficialBuild: ${{ variables.isOfficialBuild }} - useOfficialAllConfigurations: true - dependsOnGlobalBuild: true - platforms: - - Linux_x64 - - windows_x64 + # # Installer official builds need to build installers and need the libraries all configurations build + # - ${{ if eq(variables.isOfficialBuild, true) }}: + # - template: /eng/pipelines/installer/installer-matrix.yml + # parameters: + # jobParameters: + # liveRuntimeBuildConfig: Release + # liveLibrariesBuildConfig: Release + # isOfficialBuild: ${{ variables.isOfficialBuild }} + # useOfficialAllConfigurations: true + # dependsOnGlobalBuild: true + # platforms: + # - Linux_x64 + # - windows_x64 - - ${{ if ne(variables.isOfficialBuild, true) }}: - # - # CoreCLR Test builds using live libraries release build - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml - buildConfig: Checked - platforms: - - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64 - jobParameters: - testGroup: innerloop - liveLibrariesBuildConfig: Release - dependsOn: - - build_Linux_x64_Checked_ - - build_Linux_x64_Release_ + # - ${{ if ne(variables.isOfficialBuild, true) }}: + # # + # # CoreCLR Test builds using live libraries release build + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml + # buildConfig: Checked + # platforms: + # - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64 + # jobParameters: + # testGroup: innerloop + # liveLibrariesBuildConfig: Release + # dependsOn: + # - build_Linux_x64_Checked_ + # - build_Linux_x64_Release_ - # - # CoreCLR Test executions using live libraries - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml - buildConfig: Checked - platforms: - - Linux_x64 - helixQueueGroup: pr - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - jobParameters: - testGroup: innerloop - liveLibrariesBuildConfig: Release - dependsOn: - - coreclr_common_test_build_p0_AnyOS_AnyCPU_Checked + # # + # # CoreCLR Test executions using live libraries + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml + # buildConfig: Checked + # platforms: + # - Linux_x64 + # helixQueueGroup: pr + # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + # jobParameters: + # testGroup: innerloop + # liveLibrariesBuildConfig: Release + # dependsOn: + # - coreclr_common_test_build_p0_AnyOS_AnyCPU_Checked - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml - buildConfig: Checked - platforms: - - windows_x64 - helixQueueGroup: pr - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - jobParameters: - testGroup: innerloop - liveLibrariesBuildConfig: Release - dependsOn: - - coreclr_common_test_build_p0_AnyOS_AnyCPU_Checked - - build_windows_x64_Checked_ - - build_windows_x64_Release_ + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml + # buildConfig: Checked + # platforms: + # - windows_x64 + # helixQueueGroup: pr + # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + # jobParameters: + # testGroup: innerloop + # liveLibrariesBuildConfig: Release + # dependsOn: + # - coreclr_common_test_build_p0_AnyOS_AnyCPU_Checked + # - build_windows_x64_Checked_ + # - build_windows_x64_Release_ - # - # Libraries Release Test Execution against a release coreclr runtime - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/run-test-job.yml - buildConfig: Release - platforms: - - Linux_x64 - helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - jobParameters: - isFullMatrix: false - isOfficialBuild: false - testScope: innerloop - liveRuntimeBuildConfig: Release - dependsOnTestBuildConfiguration: Release - dependsOnTestArchitecture: x64 - dependsOn: - - build_Linux_x64_Release_ + # # + # # Libraries Release Test Execution against a release coreclr runtime + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/libraries/run-test-job.yml + # buildConfig: Release + # platforms: + # - Linux_x64 + # helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + # jobParameters: + # isFullMatrix: false + # isOfficialBuild: false + # testScope: innerloop + # liveRuntimeBuildConfig: Release + # dependsOnTestBuildConfiguration: Release + # dependsOnTestArchitecture: x64 + # dependsOn: + # - build_Linux_x64_Release_ - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/run-test-job.yml - buildConfig: Release - platforms: - - windows_x64 - helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - jobParameters: - isFullMatrix: false - isOfficialBuild: false - testScope: innerloop - liveRuntimeBuildConfig: Release - dependsOnTestBuildConfiguration: Release - dependsOnTestArchitecture: x64 - dependsOn: - - build_windows_x64_Release_ + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/libraries/run-test-job.yml + # buildConfig: Release + # platforms: + # - windows_x64 + # helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + # jobParameters: + # isFullMatrix: false + # isOfficialBuild: false + # testScope: innerloop + # liveRuntimeBuildConfig: Release + # dependsOnTestBuildConfiguration: Release + # dependsOnTestArchitecture: x64 + # dependsOn: + # - build_windows_x64_Release_ - ${{ if eq(variables.isOfficialBuild, true) }}: - template: /eng/pipelines/official/stages/publish.yml diff --git a/src/tests/Common/testenvironment.proj b/src/tests/Common/testenvironment.proj index 4dc72fdf06d1cc..5fa56c80d75894 100644 --- a/src/tests/Common/testenvironment.proj +++ b/src/tests/Common/testenvironment.proj @@ -193,7 +193,7 @@ <_TestEnvFileLine Include="@(_COMPlusVariable->'set %(Identity)=%(Value)')" /> - <_TestEnvFileLine Include="set MONO_ENV_OPTIONS=--interpreter" Condition="'$(Scenario)' == 'interpreter'" /> + <_TestEnvFileLine Include="set MONO_ENV_OPTIONS=--interpreter" Condition="'$(RuntimeVariant)' == 'monointerpreter'" /> <_TestEnvFileLine Condition="'$(Scenario)' == 'clrinterpreter'" Include="set COMPlus_Interpret=%2A" /> @@ -208,7 +208,7 @@ <_TestEnvFileLine Include="@(_COMPlusVariable->'export %(Identity)=%(Value)')" /> - <_TestEnvFileLine Include="export MONO_ENV_OPTIONS=--interpreter" Condition="'$(Scenario)' == 'interpreter'" /> + <_TestEnvFileLine Include="export MONO_ENV_OPTIONS=--interpreter" Condition="'$(RuntimeVariant)' == 'monointerpreter'" /> <_TestEnvFileLine Condition="'$(RuntimeVariant)' == 'llvmaot'" Include="export MONO_ENV_OPTIONS=--llvm" /> From 5e68fd9cc82fdd08f336e5aad90368c1144bfe56 Mon Sep 17 00:00:00 2001 From: Fan Yang Date: Sun, 13 Jun 2021 17:19:24 -0400 Subject: [PATCH 02/18] Make variable RuntimeVariant available for testenvironment --- src/tests/Common/testenvironment.proj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/tests/Common/testenvironment.proj b/src/tests/Common/testenvironment.proj index 5fa56c80d75894..37392b57df478c 100644 --- a/src/tests/Common/testenvironment.proj +++ b/src/tests/Common/testenvironment.proj @@ -193,7 +193,7 @@ <_TestEnvFileLine Include="@(_COMPlusVariable->'set %(Identity)=%(Value)')" /> - <_TestEnvFileLine Include="set MONO_ENV_OPTIONS=--interpreter" Condition="'$(RuntimeVariant)' == 'monointerpreter'" /> + <_TestEnvFileLine Condition="'$(RuntimeVariant)' == 'monointerpreter'" Include="set MONO_ENV_OPTIONS=--interpreter" /> <_TestEnvFileLine Condition="'$(Scenario)' == 'clrinterpreter'" Include="set COMPlus_Interpret=%2A" /> @@ -208,7 +208,7 @@ <_TestEnvFileLine Include="@(_COMPlusVariable->'export %(Identity)=%(Value)')" /> - <_TestEnvFileLine Include="export MONO_ENV_OPTIONS=--interpreter" Condition="'$(RuntimeVariant)' == 'monointerpreter'" /> + <_TestEnvFileLine Condition="'$(RuntimeVariant)' == 'monointerpreter'" Include="export MONO_ENV_OPTIONS=--interpreter" /> <_TestEnvFileLine Condition="'$(RuntimeVariant)' == 'llvmaot'" Include="export MONO_ENV_OPTIONS=--llvm" /> From e2e4bf812c7dd0ffb1ecb3dafe0b38f5b8b446d9 Mon Sep 17 00:00:00 2001 From: Fan Yang Date: Sun, 13 Jun 2021 22:21:50 -0400 Subject: [PATCH 03/18] Pass down runtimeVariant --- .../templates/runtimes/android-runtime-and-send-to-helix.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/eng/pipelines/common/templates/runtimes/android-runtime-and-send-to-helix.yml b/eng/pipelines/common/templates/runtimes/android-runtime-and-send-to-helix.yml index c45d9f2f5d37b1..49e291f124abc2 100644 --- a/eng/pipelines/common/templates/runtimes/android-runtime-and-send-to-helix.yml +++ b/eng/pipelines/common/templates/runtimes/android-runtime-and-send-to-helix.yml @@ -40,6 +40,7 @@ steps: coreClrRepoRoot: $(Build.SourcesDirectory)/src/coreclr runtimeFlavorDisplayName: ${{ parameters.runtimeFlavorDisplayName }} shouldContinueOnError: ${{ parameters.shouldContinueOnError }} + runtimeVariant: ${{ parameters.runtimeVariant }} ${{ if eq(variables['System.TeamProject'], 'public') }}: creator: $(Build.DefinitionName) From ad0ab259d48f2f4d8c6b2be81f8139f07cd73be2 Mon Sep 17 00:00:00 2001 From: Fan Yang Date: Mon, 14 Jun 2021 11:21:27 -0400 Subject: [PATCH 04/18] Verify that tests are running with interpreter --- src/mono/mono/mini/interp/interp.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/mono/mono/mini/interp/interp.c b/src/mono/mono/mini/interp/interp.c index 1c7468ba3cadc7..f5d3348e1ba64d 100644 --- a/src/mono/mono/mini/interp/interp.c +++ b/src/mono/mono/mini/interp/interp.c @@ -3216,6 +3216,8 @@ interp_exec_method (InterpFrame *frame, ThreadContext *context, FrameClauseArgs }; #endif + g_assert_not_reached (); + HANDLE_FUNCTION_ENTER (); /* * GC SAFETY: From 5e09b094cf44bffbe58cbb736e7c70f309698a0e Mon Sep 17 00:00:00 2001 From: Fan Yang Date: Tue, 15 Jun 2021 08:40:42 -0400 Subject: [PATCH 05/18] Pass MONO_ENV_OPTIONS value to the app --- src/tests/Common/CLRTest.Execute.Bash.targets | 2 +- src/tests/Common/CLRTest.Execute.Batch.targets | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/tests/Common/CLRTest.Execute.Bash.targets b/src/tests/Common/CLRTest.Execute.Bash.targets index cb28cbfac5e5a1..64a8f4902ef7eb 100644 --- a/src/tests/Common/CLRTest.Execute.Bash.targets +++ b/src/tests/Common/CLRTest.Execute.Bash.targets @@ -361,7 +361,7 @@ else HARNESS_RUNNER="xharness" fi -$__Command $HARNESS_RUNNER android run --instrumentation="net.dot.MonoRunner" --package-name="net.dot.$__Category" --app="$__TestBinaryBase/$__Category.apk" --output-directory="$__OutputDir" --arg=entrypoint:libname=$(MsBuildProjectName).dll --expected-exit-code=100 -v +$__Command $HARNESS_RUNNER android run --instrumentation="net.dot.MonoRunner" --package-name="net.dot.$__Category" --app="$__TestBinaryBase/$__Category.apk" --output-directory="$__OutputDir" --arg=entrypoint:libname=$(MsBuildProjectName).dll --arg=env:MONO_ENV_OPTIONS=$MONO_ENV_OPTIONS --expected-exit-code=100 -v CLRTestExitCode=$? # Exist code of xharness is zero when tests finished successfully diff --git a/src/tests/Common/CLRTest.Execute.Batch.targets b/src/tests/Common/CLRTest.Execute.Batch.targets index bdebae3acdadf7..e38fdd7ffd8104 100644 --- a/src/tests/Common/CLRTest.Execute.Batch.targets +++ b/src/tests/Common/CLRTest.Execute.Batch.targets @@ -329,7 +329,7 @@ IF NOT "%XHARNESS_CLI_PATH%"=="" ( set HARNESS_RUNNER=xharness ) -%__Command% %HARNESS_RUNNER% android run --instrumentation="net.dot.MonoRunner" --package-name="net.dot.%__Category%" --app="%__TestBinaryBase%\%__Category%.apk" --output-directory="%__OutputDir%" --arg=entrypoint:libname=$(MsBuildProjectName).dll --expected-exit-code=100 -v +%__Command% %HARNESS_RUNNER% android run --instrumentation="net.dot.MonoRunner" --package-name="net.dot.%__Category%" --app="%__TestBinaryBase%\%__Category%.apk" --output-directory="%__OutputDir%" --arg=entrypoint:libname=$(MsBuildProjectName).dll --arg=env:MONO_ENV_OPTIONS=%MONO_ENV_OPTIONS% --expected-exit-code=100 -v set CLRTestExitCode=!ERRORLEVEL! set CLRTestExpectedExitCode=0 ]]> From 9960aad9db20dcf5e3ad7f43af4ada077bec9357 Mon Sep 17 00:00:00 2001 From: Fan Yang Date: Tue, 15 Jun 2021 19:40:25 -0400 Subject: [PATCH 06/18] Set ForceInterpreter to true --- src/mono/sample/Android/Makefile | 2 ++ src/tests/Common/CLRTest.Execute.Bash.targets | 2 +- src/tests/Common/CLRTest.Execute.Batch.targets | 2 +- src/tests/run.proj | 8 ++++++-- 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/mono/sample/Android/Makefile b/src/mono/sample/Android/Makefile index 11f1c35df9fb4d..471c6aca1ebbf7 100644 --- a/src/mono/sample/Android/Makefile +++ b/src/mono/sample/Android/Makefile @@ -3,6 +3,7 @@ MONO_ARCH?=x64 DOTNET := ../../../../dotnet.sh USE_LLVM=true AOT=false +INTERP=true DEPLOY_AND_RUN?=true #If DIAGNOSTIC_PORTS is enabled, RUNTIME_COMPONENTS must also be enabled. @@ -26,6 +27,7 @@ run: /p:Configuration=$(MONO_CONFIG) \ /p:DeployAndRun=$(DEPLOY_AND_RUN) \ /p:ForceAOT=$(AOT) \ + /p:MonoForceInterpreter=$(INTERP) \ /p:UseLLVM=$(USE_LLVM) \ /p:RunActivity=false \ '/p:RuntimeComponents="$(RUNTIME_COMPONENTS)"' \ diff --git a/src/tests/Common/CLRTest.Execute.Bash.targets b/src/tests/Common/CLRTest.Execute.Bash.targets index 64a8f4902ef7eb..cb28cbfac5e5a1 100644 --- a/src/tests/Common/CLRTest.Execute.Bash.targets +++ b/src/tests/Common/CLRTest.Execute.Bash.targets @@ -361,7 +361,7 @@ else HARNESS_RUNNER="xharness" fi -$__Command $HARNESS_RUNNER android run --instrumentation="net.dot.MonoRunner" --package-name="net.dot.$__Category" --app="$__TestBinaryBase/$__Category.apk" --output-directory="$__OutputDir" --arg=entrypoint:libname=$(MsBuildProjectName).dll --arg=env:MONO_ENV_OPTIONS=$MONO_ENV_OPTIONS --expected-exit-code=100 -v +$__Command $HARNESS_RUNNER android run --instrumentation="net.dot.MonoRunner" --package-name="net.dot.$__Category" --app="$__TestBinaryBase/$__Category.apk" --output-directory="$__OutputDir" --arg=entrypoint:libname=$(MsBuildProjectName).dll --expected-exit-code=100 -v CLRTestExitCode=$? # Exist code of xharness is zero when tests finished successfully diff --git a/src/tests/Common/CLRTest.Execute.Batch.targets b/src/tests/Common/CLRTest.Execute.Batch.targets index e38fdd7ffd8104..bdebae3acdadf7 100644 --- a/src/tests/Common/CLRTest.Execute.Batch.targets +++ b/src/tests/Common/CLRTest.Execute.Batch.targets @@ -329,7 +329,7 @@ IF NOT "%XHARNESS_CLI_PATH%"=="" ( set HARNESS_RUNNER=xharness ) -%__Command% %HARNESS_RUNNER% android run --instrumentation="net.dot.MonoRunner" --package-name="net.dot.%__Category%" --app="%__TestBinaryBase%\%__Category%.apk" --output-directory="%__OutputDir%" --arg=entrypoint:libname=$(MsBuildProjectName).dll --arg=env:MONO_ENV_OPTIONS=%MONO_ENV_OPTIONS% --expected-exit-code=100 -v +%__Command% %HARNESS_RUNNER% android run --instrumentation="net.dot.MonoRunner" --package-name="net.dot.%__Category%" --app="%__TestBinaryBase%\%__Category%.apk" --output-directory="%__OutputDir%" --arg=entrypoint:libname=$(MsBuildProjectName).dll --expected-exit-code=100 -v set CLRTestExitCode=!ERRORLEVEL! set CLRTestExpectedExitCode=0 ]]> diff --git a/src/tests/run.proj b/src/tests/run.proj index c16a18fe9f3629..35e4b6143bf39b 100644 --- a/src/tests/run.proj +++ b/src/tests/run.proj @@ -648,6 +648,8 @@ namespace $([System.String]::Copy($(Category)).Replace(".","_").Replace("\",""). armeabi-v7a x86_64 x86 + false + true @@ -683,14 +685,16 @@ namespace $([System.String]::Copy($(Category)).Replace(".","_").Replace("\",""). ProjectName="$(Category)" MonoRuntimeHeaders="$(MicrosoftNetCoreAppRuntimePackDir)/native/include/mono-2.0" StripDebugSymbols="$(StripDebugSymbols)" + ForceInterpreter="$(MonoForceInterpreter)" AppDir="$(BuildDir)" OutputDir="$(AppDir)"> - - + + + From ab4c598fde85d0b43798d15af113bc73dfa3c0e3 Mon Sep 17 00:00:00 2001 From: Fan Yang Date: Tue, 15 Jun 2021 19:42:11 -0400 Subject: [PATCH 07/18] Change default value for interp to false --- src/mono/sample/Android/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mono/sample/Android/Makefile b/src/mono/sample/Android/Makefile index 471c6aca1ebbf7..6d59ee860fe8b9 100644 --- a/src/mono/sample/Android/Makefile +++ b/src/mono/sample/Android/Makefile @@ -3,7 +3,7 @@ MONO_ARCH?=x64 DOTNET := ../../../../dotnet.sh USE_LLVM=true AOT=false -INTERP=true +INTERP=false DEPLOY_AND_RUN?=true #If DIAGNOSTIC_PORTS is enabled, RUNTIME_COMPONENTS must also be enabled. From 718240160ae00e01e517e90b57a829b0202e60de Mon Sep 17 00:00:00 2001 From: Fan Yang Date: Tue, 15 Jun 2021 22:04:37 -0400 Subject: [PATCH 08/18] dummy commit --- src/mono/mono/mini/interp/interp.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/mono/mono/mini/interp/interp.c b/src/mono/mono/mini/interp/interp.c index f5d3348e1ba64d..433e7deb0359cd 100644 --- a/src/mono/mono/mini/interp/interp.c +++ b/src/mono/mono/mini/interp/interp.c @@ -3216,6 +3216,7 @@ interp_exec_method (InterpFrame *frame, ThreadContext *context, FrameClauseArgs }; #endif + g_assert_not_reached (); HANDLE_FUNCTION_ENTER (); From 49b849050c26586a5aa2409381cb8fb2dee9c87f Mon Sep 17 00:00:00 2001 From: Fan Yang Date: Tue, 15 Jun 2021 22:23:05 -0400 Subject: [PATCH 09/18] dummy commit 2 --- src/mono/mono/mini/interp/interp.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/mono/mono/mini/interp/interp.c b/src/mono/mono/mini/interp/interp.c index 433e7deb0359cd..5447d48e78f940 100644 --- a/src/mono/mono/mini/interp/interp.c +++ b/src/mono/mono/mini/interp/interp.c @@ -3216,9 +3216,6 @@ interp_exec_method (InterpFrame *frame, ThreadContext *context, FrameClauseArgs }; #endif - - g_assert_not_reached (); - HANDLE_FUNCTION_ENTER (); /* * GC SAFETY: @@ -3237,6 +3234,8 @@ interp_exec_method (InterpFrame *frame, ThreadContext *context, FrameClauseArgs */ MonoObjectHandle tmp_handle = MONO_HANDLE_NEW (MonoObject, NULL); + g_assert_not_reached (); + if (method_entry (context, frame, #if DEBUG_INTERP &tracing, From 865b62098777396cdfb1480ea6a709e3e10bda1f Mon Sep 17 00:00:00 2001 From: Fan Yang Date: Wed, 16 Jun 2021 14:52:13 -0400 Subject: [PATCH 10/18] dummy commit --- src/mono/mono/mini/interp/interp.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/mono/mono/mini/interp/interp.c b/src/mono/mono/mini/interp/interp.c index 5447d48e78f940..f5d3348e1ba64d 100644 --- a/src/mono/mono/mini/interp/interp.c +++ b/src/mono/mono/mini/interp/interp.c @@ -3216,6 +3216,8 @@ interp_exec_method (InterpFrame *frame, ThreadContext *context, FrameClauseArgs }; #endif + g_assert_not_reached (); + HANDLE_FUNCTION_ENTER (); /* * GC SAFETY: @@ -3234,8 +3236,6 @@ interp_exec_method (InterpFrame *frame, ThreadContext *context, FrameClauseArgs */ MonoObjectHandle tmp_handle = MONO_HANDLE_NEW (MonoObject, NULL); - g_assert_not_reached (); - if (method_entry (context, frame, #if DEBUG_INTERP &tracing, From 923b8eb1f4d712303b2d93f25873b11e3cf5f9a6 Mon Sep 17 00:00:00 2001 From: Fan Yang Date: Thu, 17 Jun 2021 11:32:11 -0400 Subject: [PATCH 11/18] Configure interp for Android --- .../runtimes/android-runtime-and-send-to-helix.yml | 2 +- src/mono/mono/mini/interp/interp.c | 2 -- src/tests/build.sh | 7 ++++++- src/tests/run.proj | 10 ++++------ 4 files changed, 11 insertions(+), 10 deletions(-) diff --git a/eng/pipelines/common/templates/runtimes/android-runtime-and-send-to-helix.yml b/eng/pipelines/common/templates/runtimes/android-runtime-and-send-to-helix.yml index 49e291f124abc2..7d71a176e91e60 100644 --- a/eng/pipelines/common/templates/runtimes/android-runtime-and-send-to-helix.yml +++ b/eng/pipelines/common/templates/runtimes/android-runtime-and-send-to-helix.yml @@ -26,7 +26,7 @@ parameters: steps: - - script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) /p:LibrariesConfiguration=${{ parameters.buildConfig }} -ci -excludemonofailures os ${{ parameters.osGroup }} ${{ parameters.archType }} $(buildConfigUpper) + - script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) /p:LibrariesConfiguration=${{ parameters.buildConfig }} -ci -excludemonofailures os ${{ parameters.osGroup }} ${{ parameters.archType }} ${{ parameters.runtimeVariant }} $(buildConfigUpper) displayName: Build Tests # Send tests to Helix diff --git a/src/mono/mono/mini/interp/interp.c b/src/mono/mono/mini/interp/interp.c index f5d3348e1ba64d..1c7468ba3cadc7 100644 --- a/src/mono/mono/mini/interp/interp.c +++ b/src/mono/mono/mini/interp/interp.c @@ -3216,8 +3216,6 @@ interp_exec_method (InterpFrame *frame, ThreadContext *context, FrameClauseArgs }; #endif - g_assert_not_reached (); - HANDLE_FUNCTION_ENTER (); /* * GC SAFETY: diff --git a/src/tests/build.sh b/src/tests/build.sh index 0d15d53b53910e..a0b9c4df18184b 100755 --- a/src/tests/build.sh +++ b/src/tests/build.sh @@ -533,6 +533,10 @@ handle_arguments_local() { __Mono=1 __MonoAot=1 ;; + + monointerpreter|-monointerpreter) + __MonoInterp="true" + ;; *) __UnprocessedBuildArgs+=("$1") @@ -587,6 +591,7 @@ __CMakeArgs="" __priority1= __Mono=0 __MonoAot=0 +__MonoInterp="false" CORE_ROOT= source $__RepoRootDir/src/coreclr/_build-commons.sh @@ -650,7 +655,7 @@ echo "${__MsgPrefix}Test build successful." echo "${__MsgPrefix}Test binaries are available at ${__TestBinDir}" if [ "$__TargetOS" == "Android" ]; then - build_MSBuild_projects "Create_Android_App" "$__RepoRootDir/src/tests/run.proj" "Create Android Apps" "/t:BuildAllAndroidApp" "/p:RunWithAndroid=true" + build_MSBuild_projects "Create_Android_App" "$__RepoRootDir/src/tests/run.proj" "Create Android Apps" "/t:BuildAllAndroidApp" "/p:RunWithAndroid=true" "/p:MonoInterp=$__MonoInterp" fi if [[ "$__RunTests" -ne 0 ]]; then diff --git a/src/tests/run.proj b/src/tests/run.proj index 35e4b6143bf39b..81fe10f693479f 100644 --- a/src/tests/run.proj +++ b/src/tests/run.proj @@ -648,8 +648,6 @@ namespace $([System.String]::Copy($(Category)).Replace(".","_").Replace("\",""). armeabi-v7a x86_64 x86 - false - true @@ -685,16 +683,16 @@ namespace $([System.String]::Copy($(Category)).Replace(".","_").Replace("\",""). ProjectName="$(Category)" MonoRuntimeHeaders="$(MicrosoftNetCoreAppRuntimePackDir)/native/include/mono-2.0" StripDebugSymbols="$(StripDebugSymbols)" - ForceInterpreter="$(MonoForceInterpreter)" + ForceInterpreter="$(MonoInterp)" AppDir="$(BuildDir)" OutputDir="$(AppDir)"> - - - + + + From 033745b60f8774f1d1a0ff883d9c0db8238b8283 Mon Sep 17 00:00:00 2001 From: Fan Yang Date: Fri, 18 Jun 2021 12:17:03 -0400 Subject: [PATCH 12/18] Pass RuntimeVariant down as a parameter --- .../runtimes/android-runtime-and-send-to-helix.yml | 2 +- src/tests/build.sh | 7 +------ src/tests/run.proj | 2 ++ 3 files changed, 4 insertions(+), 7 deletions(-) diff --git a/eng/pipelines/common/templates/runtimes/android-runtime-and-send-to-helix.yml b/eng/pipelines/common/templates/runtimes/android-runtime-and-send-to-helix.yml index 7d71a176e91e60..f42787af8ebd26 100644 --- a/eng/pipelines/common/templates/runtimes/android-runtime-and-send-to-helix.yml +++ b/eng/pipelines/common/templates/runtimes/android-runtime-and-send-to-helix.yml @@ -26,7 +26,7 @@ parameters: steps: - - script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) /p:LibrariesConfiguration=${{ parameters.buildConfig }} -ci -excludemonofailures os ${{ parameters.osGroup }} ${{ parameters.archType }} ${{ parameters.runtimeVariant }} $(buildConfigUpper) + - script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) /p:LibrariesConfiguration=${{ parameters.buildConfig }} -ci -excludemonofailures os ${{ parameters.osGroup }} ${{ parameters.archType }} /p:RuntimeVariant=${{ parameters.runtimeVariant }} $(buildConfigUpper) displayName: Build Tests # Send tests to Helix diff --git a/src/tests/build.sh b/src/tests/build.sh index a0b9c4df18184b..0d15d53b53910e 100755 --- a/src/tests/build.sh +++ b/src/tests/build.sh @@ -533,10 +533,6 @@ handle_arguments_local() { __Mono=1 __MonoAot=1 ;; - - monointerpreter|-monointerpreter) - __MonoInterp="true" - ;; *) __UnprocessedBuildArgs+=("$1") @@ -591,7 +587,6 @@ __CMakeArgs="" __priority1= __Mono=0 __MonoAot=0 -__MonoInterp="false" CORE_ROOT= source $__RepoRootDir/src/coreclr/_build-commons.sh @@ -655,7 +650,7 @@ echo "${__MsgPrefix}Test build successful." echo "${__MsgPrefix}Test binaries are available at ${__TestBinDir}" if [ "$__TargetOS" == "Android" ]; then - build_MSBuild_projects "Create_Android_App" "$__RepoRootDir/src/tests/run.proj" "Create Android Apps" "/t:BuildAllAndroidApp" "/p:RunWithAndroid=true" "/p:MonoInterp=$__MonoInterp" + build_MSBuild_projects "Create_Android_App" "$__RepoRootDir/src/tests/run.proj" "Create Android Apps" "/t:BuildAllAndroidApp" "/p:RunWithAndroid=true" fi if [[ "$__RunTests" -ne 0 ]]; then diff --git a/src/tests/run.proj b/src/tests/run.proj index 81fe10f693479f..a64233555d2064 100644 --- a/src/tests/run.proj +++ b/src/tests/run.proj @@ -648,6 +648,8 @@ namespace $([System.String]::Copy($(Category)).Replace(".","_").Replace("\",""). armeabi-v7a x86_64 x86 + false + true From 4dc2791505c761bdf32977106bfd7018b8807756 Mon Sep 17 00:00:00 2001 From: Fan Yang Date: Fri, 18 Jun 2021 14:16:59 -0400 Subject: [PATCH 13/18] Add issue link --- src/tests/issues.targets | 179 +++++++++++++++++---------------------- 1 file changed, 76 insertions(+), 103 deletions(-) diff --git a/src/tests/issues.targets b/src/tests/issues.targets index 552b8b6400ffc0..a7dff541a1a647 100644 --- a/src/tests/issues.targets +++ b/src/tests/issues.targets @@ -1688,22 +1688,22 @@ needs triage - needs triage + https://github.com/dotnet/runtime/issues/54395 needs triage - needs triage + https://github.com/dotnet/runtime/issues/54396 - needs triage + https://github.com/dotnet/runtime/issues/54374 - needs triage + https://github.com/dotnet/runtime/issues/54381 - needs triage + https://github.com/dotnet/runtime/issues/54374 needs triage @@ -1721,7 +1721,7 @@ needs triage - needs triage + https://github.com/dotnet/runtime/issues/54394 needs triage @@ -1730,16 +1730,16 @@ needs triage - needs triage + https://github.com/dotnet/runtime/issues/54371 needs triage - needs triage + https://github.com/dotnet/runtime/issues/54381 - needs triage + https://github.com/dotnet/runtime/issues/54381 needs triage @@ -1751,13 +1751,13 @@ needs triage - needs triage + https://github.com/dotnet/runtime/issues/54381 - needs triage + https://github.com/dotnet/runtime/issues/54372 - needs triage + https://github.com/dotnet/runtime/issues/54381 needs triage @@ -1769,7 +1769,7 @@ needs triage - needs triage + https://github.com/dotnet/runtime/issues/54372 needs triage @@ -1778,25 +1778,25 @@ needs triage - needs triage + https://github.com/dotnet/runtime/issues/54381 - needs triage + https://github.com/dotnet/runtime/issues/54381 - needs triage + https://github.com/dotnet/runtime/issues/54371 - needs triage + https://github.com/dotnet/runtime/issues/54381 - needs triage + https://github.com/dotnet/runtime/issues/54381 - needs triage + https://github.com/dotnet/runtime/issues/54371 - needs triage + https://github.com/dotnet/runtime/issues/54372 needs triage @@ -1808,19 +1808,19 @@ needs triage - needs triage + https://github.com/dotnet/runtime/issues/54381 needs triage - needs triage + https://github.com/dotnet/runtime/issues/54374 - needs triage + https://github.com/dotnet/runtime/issues/54381 - needs triage + https://github.com/dotnet/runtime/issues/54391 needs triage @@ -1832,10 +1832,10 @@ needs triage - needs triage + https://github.com/dotnet/runtime/issues/54391 - needs triage + https://github.com/dotnet/runtime/issues/54391 needs triage @@ -1862,7 +1862,7 @@ needs triage - needs triage + https://github.com/dotnet/runtime/issues/54381 needs triage @@ -1910,13 +1910,13 @@ needs triage - needs triage + https://github.com/dotnet/runtime/issues/54392 - needs triage + https://github.com/dotnet/runtime/issues/54388 - needs triage + https://github.com/dotnet/runtime/issues/54393 needs triage @@ -1928,7 +1928,7 @@ needs triage - needs triage + https://github.com/dotnet/runtime/issues/54393 needs triage @@ -1937,10 +1937,10 @@ needs triage - needs triage + https://github.com/dotnet/runtime/issues/54393 - needs triage + https://github.com/dotnet/runtime/issues/54388 needs triage @@ -1955,13 +1955,13 @@ needs triage - needs triage + https://github.com/dotnet/runtime/issues/54392 - needs triage + https://github.com/dotnet/runtime/issues/54393 - needs triage + https://github.com/dotnet/runtime/issues/54359 needs triage @@ -1976,16 +1976,16 @@ needs triage - needs triage + https://github.com/dotnet/runtime/issues/54392 needs triage - needs triage + https://github.com/dotnet/runtime/issues/54375 - needs triage + https://github.com/dotnet/runtime/issues/54374 needs triage @@ -2020,17 +2020,11 @@ needs triage - - needs triage - needs triage - - needs triage - - needs triage + https://github.com/dotnet/runtime/issues/54388 needs triage @@ -2038,17 +2032,11 @@ needs triage - - needs triage - - needs triage + https://github.com/dotnet/runtime/issues/54388 - needs triage - - - needs triage + https://github.com/dotnet/runtime/issues/54388 needs triage @@ -2096,10 +2084,7 @@ needs triage - needs triage - - - needs triage + https://github.com/dotnet/runtime/issues/54393 needs triage @@ -2107,14 +2092,8 @@ needs triage - - needs triage - - - needs triage - - needs triage + https://github.com/dotnet/runtime/issues/54359 needs triage @@ -2128,98 +2107,86 @@ needs triage - - needs triage - needs triage - - needs triage - - - needs triage - - needs triage + https://github.com/dotnet/runtime/issues/54399 needs triage - needs triage + https://github.com/dotnet/runtime/issues/54359 - needs triage + https://github.com/dotnet/runtime/issues/54359 - needs triage + https://github.com/dotnet/runtime/issues/54376 - needs triage + https://github.com/dotnet/runtime/issues/54359 - needs triage + https://github.com/dotnet/runtime/issues/54393 - needs triage + https://github.com/dotnet/runtime/issues/54373 needs triage - needs triage + https://github.com/dotnet/runtime/issues/54373 - needs triage + https://github.com/dotnet/runtime/issues/54393 - needs triage + https://github.com/dotnet/runtime/issues/54401 - needs triage + https://github.com/dotnet/runtime/issues/54401 - needs triage + https://github.com/dotnet/runtime/issues/54392 - needs triage + https://github.com/dotnet/runtime/issues/54376 - needs triage + https://github.com/dotnet/runtime/issues/54392 - needs triage + https://github.com/dotnet/runtime/issues/54399 needs triage - needs triage + https://github.com/dotnet/runtime/issues/54376 - needs triage + https://github.com/dotnet/runtime/issues/54392 needs triage - needs triage - - - needs triage + https://github.com/dotnet/runtime/issues/54376 - needs triage + https://github.com/dotnet/runtime/issues/54376 - needs triage + https://github.com/dotnet/runtime/issues/54376 - needs triage + https://github.com/dotnet/runtime/issues/54376 - needs triage + https://github.com/dotnet/runtime/issues/54376 needs triage @@ -2228,19 +2195,25 @@ needs triage - needs triage + https://github.com/dotnet/runtime/issues/54358 needs triage - needs triage + https://github.com/dotnet/runtime/issues/54389 - needs triage + https://github.com/dotnet/runtime/issues/54389 - needs triage + https://github.com/dotnet/runtime/issues/54376 + + + https://github.com/dotnet/runtime/issues/54374e + + + https://github.com/dotnet/runtime/issues/54374 From a27691a12850c8ce363e72040755951758cef1ba Mon Sep 17 00:00:00 2001 From: Fan Yang Date: Fri, 18 Jun 2021 14:34:37 -0400 Subject: [PATCH 14/18] Enable Mono with interpreter on desktop --- eng/pipelines/runtime.yml | 46 +++++++++++++++++++-------------------- src/tests/issues.targets | 4 ++-- 2 files changed, 25 insertions(+), 25 deletions(-) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index b2e10f03dbe6a9..dd6627fb7a9e7c 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -959,29 +959,29 @@ jobs: # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), # eq(variables['isFullMatrix'], true)) -# # -# # 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/templates/runtimes/run-test-job.yml -# buildConfig: release -# runtimeFlavor: mono -# platforms: -# - OSX_x64 -# - Linux_arm64 -# helixQueueGroup: pr -# helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml -# jobParameters: -# testGroup: innerloop -# liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} -# liveRuntimeBuildConfig: release -# runtimeVariant: monointerpreter -# condition: >- -# or( -# eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), -# eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), -# eq(variables['isFullMatrix'], true)) +# +# 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/templates/runtimes/run-test-job.yml + buildConfig: release + runtimeFlavor: mono + platforms: + - OSX_x64 + - Linux_arm64 + helixQueueGroup: pr + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + jobParameters: + testGroup: innerloop + liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + liveRuntimeBuildConfig: release + runtimeVariant: monointerpreter + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(variables['isFullMatrix'], true)) # # # # Mono CoreCLR runtime Test executions using live libraries and LLVM AOT # # Only when Mono is changed diff --git a/src/tests/issues.targets b/src/tests/issues.targets index a7dff541a1a647..d4d59906971ecd 100644 --- a/src/tests/issues.targets +++ b/src/tests/issues.targets @@ -2209,12 +2209,12 @@ https://github.com/dotnet/runtime/issues/54376 - + From 03d4defb733ff1b848115a0e7c15941bdf80f3f7 Mon Sep 17 00:00:00 2001 From: Fan Yang Date: Fri, 18 Jun 2021 15:29:27 -0400 Subject: [PATCH 15/18] Disable Android x64 with JIT --- eng/pipelines/runtime.yml | 75 ++++++++++++++++++++------------------- 1 file changed, 38 insertions(+), 37 deletions(-) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index dd6627fb7a9e7c..b62b0f6ee258cc 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -407,43 +407,43 @@ jobs: # creator: dotnet-bot # testRunNamePrefixSuffix: Mono_$(_BuildConfig) -# -# Build the whole product using Mono for Android and run runtime tests with Android emulator -# -- 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: - - Android_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 - nameSuffix: AllSubsets_Mono_RuntimeTests - buildArgs: -s mono+libs -c $(_BuildConfig) - timeoutInMinutes: 240 - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), - eq(variables['isFullMatrix'], true)) - # extra steps, run tests - extraStepsTemplate: /eng/pipelines/common/templates/runtimes/android-runtime-and-send-to-helix.yml - extraStepsParameters: - creator: dotnet-bot - testRunNamePrefixSuffix: Mono_$(_BuildConfig) +# # +# # Build the whole product using Mono for Android and run runtime tests with Android emulator +# # +# - 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: +# - Android_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 +# nameSuffix: AllSubsets_Mono_RuntimeTests +# buildArgs: -s mono+libs -c $(_BuildConfig) +# timeoutInMinutes: 240 +# condition: >- +# or( +# eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), +# eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), +# eq(variables['isFullMatrix'], true)) +# # extra steps, run tests +# extraStepsTemplate: /eng/pipelines/common/templates/runtimes/android-runtime-and-send-to-helix.yml +# extraStepsParameters: +# creator: dotnet-bot +# testRunNamePrefixSuffix: Mono_$(_BuildConfig) # # # # Build Mono and Installer on LLVMJIT mode @@ -982,6 +982,7 @@ jobs: eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), eq(variables['isFullMatrix'], true)) + # # # # Mono CoreCLR runtime Test executions using live libraries and LLVM AOT # # Only when Mono is changed From c59fa6069353cee5950044661a550331e83ffb30 Mon Sep 17 00:00:00 2001 From: Fan Yang Date: Fri, 18 Jun 2021 15:40:43 -0400 Subject: [PATCH 16/18] Revert hacks to enable all lanes --- eng/pipelines/global-build.yml | 200 +-- eng/pipelines/runtime-linker-tests.yml | 68 +- eng/pipelines/runtime-staging.yml | 720 ++++---- eng/pipelines/runtime.yml | 2124 ++++++++++++------------ eng/pipelines/runtimelab.yml | 310 ++-- 5 files changed, 1711 insertions(+), 1711 deletions(-) diff --git a/eng/pipelines/global-build.yml b/eng/pipelines/global-build.yml index c37db6c31a5c80..289f7d0033e9c2 100644 --- a/eng/pipelines/global-build.yml +++ b/eng/pipelines/global-build.yml @@ -29,109 +29,109 @@ pr: - THIRD-PARTY-NOTICES.TXT jobs: -# # -# # Build with Release config and Debug runtimeConfiguration -# # -# - template: /eng/pipelines/common/platform-matrix.yml -# parameters: -# jobTemplate: /eng/pipelines/common/global-build-job.yml -# buildConfig: release -# platforms: -# - windows_x86 -# - OSX_x64 -# jobParameters: -# testGroup: innerloop -# nameSuffix: Runtime_Debug -# buildArgs: -c release -runtimeConfiguration debug -# timeoutInMinutes: 90 +# +# Build with Release config and Debug runtimeConfiguration +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: release + platforms: + - windows_x86 + - OSX_x64 + jobParameters: + testGroup: innerloop + nameSuffix: Runtime_Debug + buildArgs: -c release -runtimeConfiguration debug + timeoutInMinutes: 90 -# # -# # Build with Release config and runtimeConfiguration with MSBuild generator -# # -# - template: /eng/pipelines/common/platform-matrix.yml -# parameters: -# jobTemplate: /eng/pipelines/common/global-build-job.yml -# buildConfig: release -# platforms: -# - windows_x86 -# jobParameters: -# testGroup: innerloop -# nameSuffix: MSBuild_CMake -# buildArgs: -c Release -msbuild -# timeoutInMinutes: 90 +# +# Build with Release config and runtimeConfiguration with MSBuild generator +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: release + platforms: + - windows_x86 + jobParameters: + testGroup: innerloop + nameSuffix: MSBuild_CMake + buildArgs: -c Release -msbuild + timeoutInMinutes: 90 -# # -# # Build with Debug config and Release runtimeConfiguration -# # -# - template: /eng/pipelines/common/platform-matrix.yml -# parameters: -# jobTemplate: /eng/pipelines/common/global-build-job.yml -# buildConfig: debug -# platforms: -# - Linux_x64 -# jobParameters: -# testGroup: innerloop -# nameSuffix: Runtime_Release -# buildArgs: -c debug -runtimeConfiguration release -# timeoutInMinutes: 90 +# +# Build with Debug config and Release runtimeConfiguration +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: debug + platforms: + - Linux_x64 + jobParameters: + testGroup: innerloop + nameSuffix: Runtime_Release + buildArgs: -c debug -runtimeConfiguration release + timeoutInMinutes: 90 -# # -# # Build with RuntimeFlavor only. This excercise code paths where only RuntimeFlavor is -# # specified. Catches cases where we depend on Configuration also being specified -# # -# - template: /eng/pipelines/common/platform-matrix.yml -# parameters: -# jobTemplate: /eng/pipelines/common/global-build-job.yml -# buildConfig: debug -# platforms: -# - Linux_x64 -# jobParameters: -# testGroup: innerloop -# nameSuffix: RuntimeFlavor_Mono -# buildArgs: /p:RuntimeFlavor=Mono -# timeoutInMinutes: 90 +# +# Build with RuntimeFlavor only. This excercise code paths where only RuntimeFlavor is +# specified. Catches cases where we depend on Configuration also being specified +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: debug + platforms: + - Linux_x64 + jobParameters: + testGroup: innerloop + nameSuffix: RuntimeFlavor_Mono + buildArgs: /p:RuntimeFlavor=Mono + timeoutInMinutes: 90 -# # -# # Build Mono + Libraries. This excercises the code path where we build libraries without -# # first building CoreCLR -# # -# - template: /eng/pipelines/common/platform-matrix.yml -# parameters: -# jobTemplate: /eng/pipelines/common/global-build-job.yml -# buildConfig: debug -# platforms: -# - windows_x64 -# jobParameters: -# testGroup: innerloop -# nameSuffix: Mono_Libraries -# buildArgs: -subset mono+libs /p:RuntimeFlavor=Mono -# timeoutInMinutes: 90 +# +# Build Mono + Libraries. This excercises the code path where we build libraries without +# first building CoreCLR +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: debug + platforms: + - windows_x64 + jobParameters: + testGroup: innerloop + nameSuffix: Mono_Libraries + buildArgs: -subset mono+libs /p:RuntimeFlavor=Mono + timeoutInMinutes: 90 -# # -# # Build Libraries AllConfigurations. This exercises the code path where we build libraries for all -# # configurations on a non Windows operating system. -# # -# - template: /eng/pipelines/common/platform-matrix.yml -# parameters: -# jobTemplate: /eng/pipelines/common/global-build-job.yml -# buildConfig: debug -# platforms: -# - Linux_x64 -# jobParameters: -# nameSuffix: Libraries_AllConfigurations -# buildArgs: -subset libs -allconfigurations -# timeoutInMinutes: 90 +# +# Build Libraries AllConfigurations. This exercises the code path where we build libraries for all +# configurations on a non Windows operating system. +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: debug + platforms: + - Linux_x64 + jobParameters: + nameSuffix: Libraries_AllConfigurations + buildArgs: -subset libs -allconfigurations + timeoutInMinutes: 90 -# # -# # SourceBuild Build -# # -# - template: /eng/pipelines/common/platform-matrix.yml -# parameters: -# jobTemplate: /eng/pipelines/common/global-build-job.yml -# buildConfig: release -# platforms: -# - SourceBuild_Linux_x64 -# jobParameters: -# nameSuffix: SourceBuild -# buildArgs: -subset clr+libs+host+packs /p:DotNetBuildFromSource=true --portableBuild false -# timeoutInMinutes: 90 +# +# SourceBuild Build +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: release + platforms: + - SourceBuild_Linux_x64 + jobParameters: + nameSuffix: SourceBuild + buildArgs: -subset clr+libs+host+packs /p:DotNetBuildFromSource=true --portableBuild false + timeoutInMinutes: 90 diff --git a/eng/pipelines/runtime-linker-tests.yml b/eng/pipelines/runtime-linker-tests.yml index 4dab933fd7d097..836b54c849ab5f 100644 --- a/eng/pipelines/runtime-linker-tests.yml +++ b/eng/pipelines/runtime-linker-tests.yml @@ -44,38 +44,38 @@ pr: - THIRD-PARTY-NOTICES.TXT jobs: -# # -# # Build Release config vertical for Windows, Linux, Linux musl and OSX -# # -# - template: /eng/pipelines/common/platform-matrix.yml -# parameters: -# jobTemplate: /eng/pipelines/common/global-build-job.yml -# buildConfig: release -# platforms: -# - windows_x64 -# - OSX_x64 -# - Linux_x64 -# jobParameters: -# testGroup: innerloop -# timeoutInMinutes: 120 -# nameSuffix: Runtime_Release -# buildArgs: -s clr+libs -c $(_BuildConfig) -# extraStepsTemplate: /eng/pipelines/libraries/execute-trimming-tests-steps.yml +# +# Build Release config vertical for Windows, Linux, Linux musl and OSX +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: release + platforms: + - windows_x64 + - OSX_x64 + - Linux_x64 + jobParameters: + testGroup: innerloop + timeoutInMinutes: 120 + nameSuffix: Runtime_Release + buildArgs: -s clr+libs -c $(_BuildConfig) + extraStepsTemplate: /eng/pipelines/libraries/execute-trimming-tests-steps.yml -# # -# # 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 -c $(_BuildConfig) -p:WasmBuildNative=false -# extraStepsTemplate: /eng/pipelines/libraries/execute-trimming-tests-steps.yml -# extraStepsParameters: -# extraTestArgs: '/p:WasmBuildNative=false' +# +# 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 -c $(_BuildConfig) -p:WasmBuildNative=false + extraStepsTemplate: /eng/pipelines/libraries/execute-trimming-tests-steps.yml + extraStepsParameters: + extraTestArgs: '/p:WasmBuildNative=false' diff --git a/eng/pipelines/runtime-staging.yml b/eng/pipelines/runtime-staging.yml index 616209d4ebbb06..5def476efefd6e 100644 --- a/eng/pipelines/runtime-staging.yml +++ b/eng/pipelines/runtime-staging.yml @@ -54,252 +54,252 @@ jobs: - ${{ if eq(variables.dependOnEvaluatePaths, true) }}: - template: /eng/pipelines/common/evaluate-default-paths.yml -# # -# # 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: -# - iOSSimulator_x64 -# - tvOSSimulator_x64 -# variables: -# # map dependencies variables to local variables -# - name: librariesContainsChange -# value: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ] -# - name: monoContainsChange -# value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'] ] -# jobParameters: -# testGroup: innerloop -# nameSuffix: AllSubsets_Mono -# buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:MonoForceInterpreter=true -# timeoutInMinutes: 180 -# condition: >- -# or( -# eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), -# eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), -# eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), -# eq(variables['isFullMatrix'], true)) -# # extra steps, run tests -# extraStepsTemplate: /eng/pipelines/libraries/helix.yml -# extraStepsParameters: -# creator: dotnet-bot -# interpreter: true -# testRunNamePrefixSuffix: Mono_$(_BuildConfig) -# condition: >- -# or( -# eq(variables['librariesContainsChange'], true), -# eq(variables['monoContainsChange'], true), -# eq(variables['isFullMatrix'], true)) +# +# 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: + - iOSSimulator_x64 + - tvOSSimulator_x64 + variables: + # map dependencies variables to local variables + - name: librariesContainsChange + value: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ] + - name: monoContainsChange + value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'] ] + jobParameters: + testGroup: innerloop + nameSuffix: AllSubsets_Mono + buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:MonoForceInterpreter=true + timeoutInMinutes: 180 + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + eq(variables['isFullMatrix'], true)) + # extra steps, run tests + extraStepsTemplate: /eng/pipelines/libraries/helix.yml + extraStepsParameters: + creator: dotnet-bot + interpreter: true + testRunNamePrefixSuffix: Mono_$(_BuildConfig) + condition: >- + or( + eq(variables['librariesContainsChange'], true), + eq(variables['monoContainsChange'], true), + eq(variables['isFullMatrix'], true)) -# # -# # MacCatalyst interp - requires AOT Compilation and Interp flags -# # 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: -# - MacCatalyst_x64 -# - MacCatalyst_arm64 -# variables: -# # map dependencies variables to local variables -# - name: librariesContainsChange -# value: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ] -# - name: monoContainsChange -# value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'] ] -# jobParameters: -# testGroup: innerloop -# nameSuffix: AllSubsets_Mono -# buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:RunAOTCompilation=true /p:MonoForceInterpreter=true -# timeoutInMinutes: 180 -# condition: >- -# or( -# eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), -# eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), -# eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), -# eq(variables['isFullMatrix'], true)) -# # extra steps, run tests -# extraStepsTemplate: /eng/pipelines/libraries/helix.yml -# extraStepsParameters: -# creator: dotnet-bot -# interpreter: true -# testRunNamePrefixSuffix: Mono_$(_BuildConfig) -# condition: >- -# or( -# eq(variables['librariesContainsChange'], true), -# eq(variables['monoContainsChange'], true), -# eq(variables['isFullMatrix'], true)) +# +# MacCatalyst interp - requires AOT Compilation and Interp flags +# 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: + - MacCatalyst_x64 + - MacCatalyst_arm64 + variables: + # map dependencies variables to local variables + - name: librariesContainsChange + value: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ] + - name: monoContainsChange + value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'] ] + jobParameters: + testGroup: innerloop + nameSuffix: AllSubsets_Mono + buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:RunAOTCompilation=true /p:MonoForceInterpreter=true + timeoutInMinutes: 180 + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + eq(variables['isFullMatrix'], true)) + # extra steps, run tests + extraStepsTemplate: /eng/pipelines/libraries/helix.yml + extraStepsParameters: + creator: dotnet-bot + interpreter: true + testRunNamePrefixSuffix: Mono_$(_BuildConfig) + condition: >- + or( + eq(variables['librariesContainsChange'], true), + eq(variables['monoContainsChange'], true), + eq(variables['isFullMatrix'], true)) -# # -# # 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: -# - Android_x86 -# - Android_x64 -# variables: -# # map dependencies variables to local variables -# - name: librariesContainsChange -# value: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ] -# - name: monoContainsChange -# value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'] ] -# jobParameters: -# testGroup: innerloop -# nameSuffix: AllSubsets_Mono -# buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true -# timeoutInMinutes: 180 -# condition: >- -# or( -# eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), -# eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), -# eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), -# eq(variables['isFullMatrix'], true)) -# # extra steps, run tests -# extraStepsTemplate: /eng/pipelines/libraries/helix.yml -# extraStepsParameters: -# creator: dotnet-bot -# testRunNamePrefixSuffix: Mono_$(_BuildConfig) -# condition: >- -# or( -# eq(variables['librariesContainsChange'], true), -# eq(variables['monoContainsChange'], true), -# eq(variables['isFullMatrix'], true)) +# +# 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: + - Android_x86 + - Android_x64 + variables: + # map dependencies variables to local variables + - name: librariesContainsChange + value: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ] + - name: monoContainsChange + value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'] ] + jobParameters: + testGroup: innerloop + nameSuffix: AllSubsets_Mono + buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true + timeoutInMinutes: 180 + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + eq(variables['isFullMatrix'], true)) + # extra steps, run tests + extraStepsTemplate: /eng/pipelines/libraries/helix.yml + extraStepsParameters: + creator: dotnet-bot + testRunNamePrefixSuffix: Mono_$(_BuildConfig) + condition: >- + or( + eq(variables['librariesContainsChange'], true), + eq(variables['monoContainsChange'], true), + eq(variables['isFullMatrix'], 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: -# - Android_arm -# - Android_arm64 -# variables: -# # map dependencies variables to local variables -# - name: librariesContainsChange -# value: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ] -# - name: monoContainsChange -# value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'] ] -# jobParameters: -# testGroup: innerloop -# nameSuffix: AllSubsets_Mono -# buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true -# timeoutInMinutes: 180 -# condition: >- -# or( -# eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), -# eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), -# eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), -# eq(variables['isFullMatrix'], 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: + - Android_arm + - Android_arm64 + variables: + # map dependencies variables to local variables + - name: librariesContainsChange + value: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ] + - name: monoContainsChange + value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'] ] + jobParameters: + testGroup: innerloop + nameSuffix: AllSubsets_Mono + buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true + timeoutInMinutes: 180 + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + eq(variables['isFullMatrix'], true)) -# # don't run tests on PRs until we can get significantly more devices -# ${{ if eq(variables['isFullMatrix'], true) }}: -# # extra steps, run tests -# extraStepsTemplate: /eng/pipelines/libraries/helix.yml -# extraStepsParameters: -# creator: dotnet-bot -# testRunNamePrefixSuffix: Mono_$(_BuildConfig) -# condition: >- -# or( -# eq(variables['librariesContainsChange'], true), -# eq(variables['monoContainsChange'], true), -# eq(variables['isFullMatrix'], true)) + # don't run tests on PRs until we can get significantly more devices + ${{ if eq(variables['isFullMatrix'], true) }}: + # extra steps, run tests + extraStepsTemplate: /eng/pipelines/libraries/helix.yml + extraStepsParameters: + creator: dotnet-bot + testRunNamePrefixSuffix: Mono_$(_BuildConfig) + condition: >- + or( + eq(variables['librariesContainsChange'], true), + eq(variables['monoContainsChange'], true), + eq(variables['isFullMatrix'], true)) -# # -# # 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: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ] -# - name: monoContainsChange -# value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'] ] -# jobParameters: -# testScope: innerloop -# nameSuffix: AllSubsets_Mono -# buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true -# timeoutInMinutes: 120 -# condition: >- -# or( -# eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), -# eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), -# eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), -# eq(variables['isFullMatrix'], true)) -# # extra steps, run tests -# extraStepsTemplate: /eng/pipelines/libraries/helix.yml -# extraStepsParameters: -# creator: dotnet-bot -# testRunNamePrefixSuffix: Mono_$(_BuildConfig) -# condition: >- -# or( -# eq(variables['librariesContainsChange'], true), -# eq(variables['monoContainsChange'], true), -# eq(variables['isFullMatrix'], true)) +# +# 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: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ] + - name: monoContainsChange + value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'] ] + jobParameters: + testScope: innerloop + nameSuffix: AllSubsets_Mono + buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true + timeoutInMinutes: 120 + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + eq(variables['isFullMatrix'], true)) + # extra steps, run tests + extraStepsTemplate: /eng/pipelines/libraries/helix.yml + extraStepsParameters: + creator: dotnet-bot + testRunNamePrefixSuffix: Mono_$(_BuildConfig) + condition: >- + or( + eq(variables['librariesContainsChange'], true), + eq(variables['monoContainsChange'], true), + eq(variables['isFullMatrix'], true)) -# # -# # 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: -# - Browser_wasm -# variables: -# # map dependencies variables to local variables -# - name: librariesContainsChange -# value: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ] -# - name: monoContainsChange -# value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'] ] -# jobParameters: -# testGroup: innerloop -# nameSuffix: AllSubsets_Mono_AOT -# buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:EnableAggressiveTrimming=true /p:BuildAOTTestsOnHelix=true /p:RunAOTCompilation=true -# timeoutInMinutes: 180 -# condition: >- -# or( -# eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), -# eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), -# eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), -# eq(variables['isFullMatrix'], true)) -# # extra steps, run tests -# extraStepsTemplate: /eng/pipelines/libraries/helix.yml -# extraStepsParameters: -# creator: dotnet-bot -# testRunNamePrefixSuffix: Mono_$(_BuildConfig) -# extraHelixArguments: /p:NeedsToBuildWasmAppsOnHelix=true -# scenarios: -# - normal -# condition: >- -# or( -# eq(variables['librariesContainsChange'], true), -# eq(variables['monoContainsChange'], true), -# eq(variables['isFullMatrix'], true)) +# +# 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: + - Browser_wasm + variables: + # map dependencies variables to local variables + - name: librariesContainsChange + value: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ] + - name: monoContainsChange + value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'] ] + jobParameters: + testGroup: innerloop + nameSuffix: AllSubsets_Mono_AOT + buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:EnableAggressiveTrimming=true /p:BuildAOTTestsOnHelix=true /p:RunAOTCompilation=true + timeoutInMinutes: 180 + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + eq(variables['isFullMatrix'], true)) + # extra steps, run tests + extraStepsTemplate: /eng/pipelines/libraries/helix.yml + extraStepsParameters: + creator: dotnet-bot + testRunNamePrefixSuffix: Mono_$(_BuildConfig) + extraHelixArguments: /p:NeedsToBuildWasmAppsOnHelix=true + scenarios: + - normal + condition: >- + or( + eq(variables['librariesContainsChange'], true), + eq(variables['monoContainsChange'], true), + eq(variables['isFullMatrix'], true)) # -# Build the whole product using Mono for Android and run runtime tests with Android emulator +# Build the whole product using Mono for Android and run runtime tests with interpreter # - template: /eng/pipelines/common/platform-matrix.yml parameters: @@ -337,128 +337,128 @@ jobs: creator: dotnet-bot testRunNamePrefixSuffix: Mono_$(_BuildConfig) -# # -# # Build the whole product using Mono for Android and run runtime tests with Android devices -# # -# - 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: -# #- Android_arm64 # disabled due to https://github.com/dotnet/runtime/issues/47850 -# 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 -# nameSuffix: AllSubsets_Mono_RuntimeTests -# buildArgs: -s mono+libs -c $(_BuildConfig) -# timeoutInMinutes: 240 -# condition: >- -# or( -# eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), -# eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), -# eq(variables['isFullMatrix'], true)) -# # extra steps, run tests -# extraStepsTemplate: /eng/pipelines/common/templates/runtimes/android-runtime-and-send-to-helix.yml -# extraStepsParameters: -# creator: dotnet-bot -# testRunNamePrefixSuffix: Mono_$(_BuildConfig) +# +# Build the whole product using Mono for Android and run runtime tests with Android devices +# +- 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: + #- Android_arm64 # disabled due to https://github.com/dotnet/runtime/issues/47850 + 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 + nameSuffix: AllSubsets_Mono_RuntimeTests + buildArgs: -s mono+libs -c $(_BuildConfig) + timeoutInMinutes: 240 + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), + eq(variables['isFullMatrix'], true)) + # extra steps, run tests + extraStepsTemplate: /eng/pipelines/common/templates/runtimes/android-runtime-and-send-to-helix.yml + extraStepsParameters: + creator: dotnet-bot + testRunNamePrefixSuffix: Mono_$(_BuildConfig) -# # Run disabled installer tests on Linux x64 -# - template: /eng/pipelines/common/platform-matrix.yml -# parameters: -# jobTemplate: /eng/pipelines/common/global-build-job.yml -# buildConfig: Release -# platforms: -# - Linux_x64 -# jobParameters: -# nameSuffix: Installer_Tests -# isOfficialBuild: ${{ variables.isOfficialBuild }} -# buildArgs: -s clr+libs+host+packs -restore -build -test -c $(_BuildConfig) -lc Debug /p:PortableBuild=true /p:RunOnStaging=true -# useContinueOnErrorDuringBuild: true -# enablePublisTestResults: true -# testResultsFormat: xunit -# timeoutInMinutes: 90 +# Run disabled installer tests on Linux x64 +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: Release + platforms: + - Linux_x64 + jobParameters: + nameSuffix: Installer_Tests + isOfficialBuild: ${{ variables.isOfficialBuild }} + buildArgs: -s clr+libs+host+packs -restore -build -test -c $(_BuildConfig) -lc Debug /p:PortableBuild=true /p:RunOnStaging=true + useContinueOnErrorDuringBuild: true + enablePublisTestResults: true + testResultsFormat: xunit + timeoutInMinutes: 90 -# # -# # Build Browser_wasm, on windows -# # -# - 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_win -# variables: -# # map dependencies variables to local variables -# - name: librariesContainsChange -# value: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ] -# - name: monoContainsChange -# value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'] ] -# jobParameters: -# testGroup: innerloop -# nameSuffix: Browser_wasm_Windows -# buildArgs: -subset mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:BrowserHost=windows -# timeoutInMinutes: 120 -# condition: >- -# or( -# eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), -# eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), -# eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), -# eq(variables['isFullMatrix'], true)) -# # extra steps, run tests -# extraStepsTemplate: /eng/pipelines/libraries/helix.yml -# extraStepsParameters: -# creator: dotnet-bot -# testRunNamePrefixSuffix: Mono_$(_BuildConfig) -# extraHelixArguments: /p:BrowserHost=windows -# scenarios: -# - normal -# condition: >- -# or( -# eq(variables['librariesContainsChange'], true), -# eq(variables['monoContainsChange'], true), -# eq(variables['isFullMatrix'], true)) +# +# Build Browser_wasm, on windows +# +- 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_win + variables: + # map dependencies variables to local variables + - name: librariesContainsChange + value: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ] + - name: monoContainsChange + value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'] ] + jobParameters: + testGroup: innerloop + nameSuffix: Browser_wasm_Windows + buildArgs: -subset mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:BrowserHost=windows + timeoutInMinutes: 120 + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + eq(variables['isFullMatrix'], true)) + # extra steps, run tests + extraStepsTemplate: /eng/pipelines/libraries/helix.yml + extraStepsParameters: + creator: dotnet-bot + testRunNamePrefixSuffix: Mono_$(_BuildConfig) + extraHelixArguments: /p:BrowserHost=windows + scenarios: + - normal + condition: >- + or( + eq(variables['librariesContainsChange'], true), + eq(variables['monoContainsChange'], true), + eq(variables['isFullMatrix'], true)) -# # -# # CoreCLR Build for running Apple Silicon libraries-innerloop -# # -# - template: /eng/pipelines/common/platform-matrix.yml -# parameters: -# jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml -# buildConfig: release -# platforms: -# - ${{ if eq(variables['isFullMatrix'], true) }}: -# - OSX_arm64 -# jobParameters: -# testGroup: innerloop -# # -# # Libraries Build for running Apple Silicon libraries-innerloop -# # -# - template: /eng/pipelines/common/platform-matrix.yml -# parameters: -# jobTemplate: /eng/pipelines/libraries/build-job.yml -# buildConfig: Release -# platforms: -# - ${{ if eq(variables['isFullMatrix'], true) }}: -# - OSX_arm64 -# helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml -# jobParameters: -# isOfficialBuild: ${{ variables['isOfficialBuild'] }} -# isFullMatrix: ${{ variables['isFullMatrix'] }} -# runTests: true -# testScope: innerloop -# liveRuntimeBuildConfig: release +# +# CoreCLR Build for running Apple Silicon libraries-innerloop +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml + buildConfig: release + platforms: + - ${{ if eq(variables['isFullMatrix'], true) }}: + - OSX_arm64 + jobParameters: + testGroup: innerloop +# +# Libraries Build for running Apple Silicon libraries-innerloop +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/build-job.yml + buildConfig: Release + platforms: + - ${{ if eq(variables['isFullMatrix'], true) }}: + - OSX_arm64 + helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + jobParameters: + isOfficialBuild: ${{ variables['isOfficialBuild'] }} + isFullMatrix: ${{ variables['isFullMatrix'] }} + runTests: true + testScope: innerloop + liveRuntimeBuildConfig: release diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index b62b0f6ee258cc..4eb8efe5ea5f5c 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -56,908 +56,908 @@ jobs: - ${{ if eq(variables.dependOnEvaluatePaths, true) }}: - template: /eng/pipelines/common/evaluate-default-paths.yml -# # -# # Build CoreCLR checked -# # Only when CoreCLR is changed -# # -# - template: /eng/pipelines/common/platform-matrix.yml -# parameters: -# jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml -# buildConfig: checked -# platforms: -# - Linux_x64 -# - Linux_arm -# - Linux_arm64 -# - Linux_musl_arm -# - Linux_musl_arm64 -# - Linux_musl_x64 -# - OSX_arm64 -# - windows_x86 -# - windows_x64 -# - windows_arm -# - windows_arm64 -# jobParameters: -# testGroup: innerloop -# condition: >- -# or( -# eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), -# eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), -# eq(variables['isFullMatrix'], true)) +# +# Build CoreCLR checked +# Only when CoreCLR is changed +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml + buildConfig: checked + platforms: + - Linux_x64 + - Linux_arm + - Linux_arm64 + - Linux_musl_arm + - Linux_musl_arm64 + - Linux_musl_x64 + - OSX_arm64 + - windows_x86 + - windows_x64 + - windows_arm + - windows_arm64 + jobParameters: + testGroup: innerloop + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(variables['isFullMatrix'], true)) -# # -# # Build CoreCLR checked using GCC toolchain -# # Only when CoreCLR is changed -# # -# - template: /eng/pipelines/common/platform-matrix.yml -# parameters: -# jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml -# buildConfig: checked -# platforms: -# - Linux_x64 -# jobParameters: -# testGroup: innerloop -# compilerName: gcc -# condition: >- -# or( -# eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), -# eq(variables['isFullMatrix'], true)) +# +# Build CoreCLR checked using GCC toolchain +# Only when CoreCLR is changed +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml + buildConfig: checked + platforms: + - Linux_x64 + jobParameters: + testGroup: innerloop + compilerName: gcc + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + eq(variables['isFullMatrix'], true)) -# # -# # Build CoreCLR OSX_x64 checked -# # Only when CoreCLR or Libraries is changed -# # -# - template: /eng/pipelines/common/platform-matrix.yml -# parameters: -# jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml -# buildConfig: checked -# platforms: -# - OSX_x64 -# jobParameters: -# testGroup: innerloop -# condition: >- -# or( -# eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), -# eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), -# eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), -# eq(variables['isFullMatrix'], true)) +# +# Build CoreCLR OSX_x64 checked +# Only when CoreCLR or Libraries is changed +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml + buildConfig: checked + platforms: + - OSX_x64 + jobParameters: + testGroup: innerloop + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(variables['isFullMatrix'], true)) -# # -# # Build CoreCLR release -# # Always as they are needed by Installer and we always build and test the Installer. -# # -# - template: /eng/pipelines/common/platform-matrix.yml -# parameters: -# jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml -# buildConfig: release -# platforms: -# - OSX_arm64 -# - OSX_x64 -# - Linux_x64 -# - Linux_arm -# - Linux_arm64 -# - Linux_musl_x64 -# - Linux_musl_arm -# - Linux_musl_arm64 -# - windows_x64 -# - windows_x86 -# - windows_arm -# - windows_arm64 -# - FreeBSD_x64 -# jobParameters: -# testGroup: innerloop +# +# Build CoreCLR release +# Always as they are needed by Installer and we always build and test the Installer. +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml + buildConfig: release + platforms: + - OSX_arm64 + - OSX_x64 + - Linux_x64 + - Linux_arm + - Linux_arm64 + - Linux_musl_x64 + - Linux_musl_arm + - Linux_musl_arm64 + - windows_x64 + - windows_x86 + - windows_arm + - windows_arm64 + - FreeBSD_x64 + jobParameters: + testGroup: innerloop -# # -# # Build PGO CoreCLR release -# # -# - template: /eng/pipelines/common/platform-matrix.yml -# parameters: -# jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml -# buildConfig: release -# platforms: -# - windows_x64 -# - windows_x86 -# - Linux_x64 -# jobParameters: -# testGroup: innerloop -# pgoType: 'PGO' +# +# Build PGO CoreCLR release +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml + buildConfig: release + platforms: + - windows_x64 + - windows_x86 + - Linux_x64 + jobParameters: + testGroup: innerloop + pgoType: 'PGO' -# # -# # Build CoreCLR Formatting Job -# # Only when CoreCLR is changed, and only in the 'main' branch (no release branches; -# # both CI and PR builds). -# # -# - template: /eng/pipelines/common/platform-matrix.yml -# parameters: -# jobTemplate: /eng/pipelines/coreclr/templates/format-job.yml -# platforms: -# - Linux_x64 -# - windows_x64 -# jobParameters: -# condition: >- -# and( -# or( -# eq(variables['Build.SourceBranchName'], 'main'), -# eq(variables['System.PullRequest.TargetBranch'], 'main')), -# or( -# eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), -# eq(variables['isFullMatrix'], true))) +# +# Build CoreCLR Formatting Job +# Only when CoreCLR is changed, and only in the 'main' branch (no release branches; +# both CI and PR builds). +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/format-job.yml + platforms: + - Linux_x64 + - windows_x64 + jobParameters: + condition: >- + and( + or( + eq(variables['Build.SourceBranchName'], 'main'), + eq(variables['System.PullRequest.TargetBranch'], 'main')), + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + eq(variables['isFullMatrix'], true))) -# # Build and test clr tools -# - template: /eng/pipelines/common/platform-matrix.yml -# parameters: -# jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml -# buildConfig: checked -# platforms: -# - Linux_x64 -# jobParameters: -# testGroup: clrTools -# condition: >- -# or( -# eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), -# eq(variables['isFullMatrix'], true)) +# Build and test clr tools +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml + buildConfig: checked + platforms: + - Linux_x64 + jobParameters: + testGroup: clrTools + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + eq(variables['isFullMatrix'], true)) -# # Build Mono AOT offset headers once, for consumption elsewhere -# # Only when mono changed -# # -# - template: /eng/pipelines/common/platform-matrix.yml -# parameters: -# jobTemplate: /eng/pipelines/mono/templates/generate-offsets.yml -# buildConfig: release -# platforms: -# - Android_x64 -# - Browser_wasm -# - tvOS_arm64 -# - iOS_arm64 -# - MacCatalyst_x64 -# jobParameters: -# condition: >- -# or( -# eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), -# eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), -# eq(variables['isFullMatrix'], true)) +# Build Mono AOT offset headers once, for consumption elsewhere +# Only when mono changed +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/mono/templates/generate-offsets.yml + buildConfig: release + platforms: + - Android_x64 + - Browser_wasm + - tvOS_arm64 + - iOS_arm64 + - MacCatalyst_x64 + jobParameters: + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + eq(variables['isFullMatrix'], 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: -# - MacCatalyst_x64 -# - MacCatalyst_arm64 -# - tvOSSimulator_x64 -# - iOSSimulator_x86 -# - iOS_arm64 -# - Linux_arm -# jobParameters: -# testGroup: innerloop -# nameSuffix: AllSubsets_Mono -# buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) -# condition: >- -# or( -# eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), -# eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), -# eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), -# eq(variables['isFullMatrix'], 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: + - MacCatalyst_x64 + - MacCatalyst_arm64 + - tvOSSimulator_x64 + - iOSSimulator_x86 + - iOS_arm64 + - Linux_arm + jobParameters: + testGroup: innerloop + nameSuffix: AllSubsets_Mono + buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + eq(variables['isFullMatrix'], true)) -# - template: /eng/pipelines/common/platform-matrix.yml -# parameters: -# jobTemplate: /eng/pipelines/common/global-build-job.yml -# buildConfig: Release -# runtimeFlavor: mono -# platforms: -# - tvOS_arm64 -# - iOS_arm -# - Linux_musl_x64 -# jobParameters: -# testGroup: innerloop -# nameSuffix: AllSubsets_Mono -# buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) -# condition: >- -# or( -# eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), -# eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), -# eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), -# eq(variables['isFullMatrix'], true)) +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: Release + runtimeFlavor: mono + platforms: + - tvOS_arm64 + - iOS_arm + - Linux_musl_x64 + jobParameters: + testGroup: innerloop + nameSuffix: AllSubsets_Mono + buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + eq(variables['isFullMatrix'], true)) -# # -# # Build the whole product using Mono and run libraries tests, multi-scenario -# # -# - 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 -# variables: -# # map dependencies variables to local variables -# - name: librariesContainsChange -# value: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ] -# - name: monoContainsChange -# value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'] ] -# jobParameters: -# testGroup: innerloop -# nameSuffix: AllSubsets_Mono -# buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true -# timeoutInMinutes: 180 -# condition: >- -# or( -# eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), -# eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), -# eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), -# eq(variables['isFullMatrix'], true)) -# # extra steps, run tests -# extraStepsTemplate: /eng/pipelines/libraries/helix.yml -# extraStepsParameters: -# creator: dotnet-bot -# testRunNamePrefixSuffix: Mono_$(_BuildConfig) -# scenarios: -# - buildwasmapps -# - normal -# - wasmtestonbrowser -# condition: >- -# or( -# eq(variables['librariesContainsChange'], true), -# eq(variables['monoContainsChange'], true), -# eq(variables['isFullMatrix'], true)) +# +# Build the whole product using Mono and run libraries tests, multi-scenario +# +- 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 + variables: + # map dependencies variables to local variables + - name: librariesContainsChange + value: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ] + - name: monoContainsChange + value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'] ] + jobParameters: + testGroup: innerloop + nameSuffix: AllSubsets_Mono + buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true + timeoutInMinutes: 180 + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + eq(variables['isFullMatrix'], true)) + # extra steps, run tests + extraStepsTemplate: /eng/pipelines/libraries/helix.yml + extraStepsParameters: + creator: dotnet-bot + testRunNamePrefixSuffix: Mono_$(_BuildConfig) + scenarios: + - buildwasmapps + - normal + - wasmtestonbrowser + condition: >- + or( + eq(variables['librariesContainsChange'], true), + eq(variables['monoContainsChange'], true), + eq(variables['isFullMatrix'], true)) -# # -# # Build for Browser/wasm, with EnableAggressiveTrimming=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: -# - Browser_wasm -# variables: -# # map dependencies variables to local variables -# - name: librariesContainsChange -# value: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ] -# - name: monoContainsChange -# value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'] ] -# jobParameters: -# testGroup: innerloop -# nameSuffix: AllSubsets_Mono_EAT -# buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:EnableAggressiveTrimming=true /p:BuildAOTTestsOnHelix=true /p:RunAOTCompilation=false -# timeoutInMinutes: 180 -# condition: >- -# or( -# eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), -# eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), -# eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), -# eq(variables['isFullMatrix'], true)) -# # extra steps, run tests -# extraStepsTemplate: /eng/pipelines/libraries/helix.yml -# extraStepsParameters: -# creator: dotnet-bot -# testRunNamePrefixSuffix: Mono_$(_BuildConfig) -# extraHelixArguments: /p:NeedsToBuildWasmAppsOnHelix=true -# scenarios: -# - normal -# condition: >- -# or( -# eq(variables['librariesContainsChange'], true), -# eq(variables['monoContainsChange'], true), -# eq(variables['isFullMatrix'], true)) +# +# Build for Browser/wasm, with EnableAggressiveTrimming=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: + - Browser_wasm + variables: + # map dependencies variables to local variables + - name: librariesContainsChange + value: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ] + - name: monoContainsChange + value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'] ] + jobParameters: + testGroup: innerloop + nameSuffix: AllSubsets_Mono_EAT + buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:EnableAggressiveTrimming=true /p:BuildAOTTestsOnHelix=true /p:RunAOTCompilation=false + timeoutInMinutes: 180 + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + eq(variables['isFullMatrix'], true)) + # extra steps, run tests + extraStepsTemplate: /eng/pipelines/libraries/helix.yml + extraStepsParameters: + creator: dotnet-bot + testRunNamePrefixSuffix: Mono_$(_BuildConfig) + extraHelixArguments: /p:NeedsToBuildWasmAppsOnHelix=true + scenarios: + - normal + condition: >- + or( + eq(variables['librariesContainsChange'], true), + eq(variables['monoContainsChange'], true), + eq(variables['isFullMatrix'], true)) -# # Build and test libraries under single-file publishing -# - 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 -# platforms: -# - windows_x64 -# - Linux_x64 -# jobParameters: -# testGroup: innerloop -# isFullMatrix: ${{ variables.isFullMatrix }} -# isSingleFile: true -# nameSuffix: SingleFile -# buildArgs: -s clr+libs+libs.tests -c $(_BuildConfig) /p:TestSingleFile=true /p:ArchiveTests=true -# timeoutInMinutes: 120 -# # extra steps, run tests -# extraStepsTemplate: /eng/pipelines/libraries/helix.yml -# extraStepsParameters: -# creator: dotnet-bot -# testRunNamePrefixSuffix: SingleFile_$(_BuildConfig) +# Build and test libraries under single-file publishing +- 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 + platforms: + - windows_x64 + - Linux_x64 + jobParameters: + testGroup: innerloop + isFullMatrix: ${{ variables.isFullMatrix }} + isSingleFile: true + nameSuffix: SingleFile + buildArgs: -s clr+libs+libs.tests -c $(_BuildConfig) /p:TestSingleFile=true /p:ArchiveTests=true + timeoutInMinutes: 120 + # extra steps, run tests + extraStepsTemplate: /eng/pipelines/libraries/helix.yml + extraStepsParameters: + creator: dotnet-bot + testRunNamePrefixSuffix: SingleFile_$(_BuildConfig) -# # -# # 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: -# - Browser_wasm -# 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: 10 -# - name: timeoutPerTestCollectionInMinutes -# value: 200 -# jobParameters: -# testGroup: innerloop -# nameSuffix: AllSubsets_Mono_RuntimeTests -# buildArgs: -s mono+libs -c $(_BuildConfig) -# timeoutInMinutes: 180 -# condition: >- -# or( -# eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), -# eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), -# eq(variables['isFullMatrix'], true)) -# # extra steps, run tests -# extraStepsTemplate: /eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml -# extraStepsParameters: -# creator: dotnet-bot -# testRunNamePrefixSuffix: Mono_$(_BuildConfig) +# +# 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: + - Browser_wasm + 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: 10 + - name: timeoutPerTestCollectionInMinutes + value: 200 + jobParameters: + testGroup: innerloop + nameSuffix: AllSubsets_Mono_RuntimeTests + buildArgs: -s mono+libs -c $(_BuildConfig) + timeoutInMinutes: 180 + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), + eq(variables['isFullMatrix'], true)) + # extra steps, run tests + extraStepsTemplate: /eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml + extraStepsParameters: + creator: dotnet-bot + testRunNamePrefixSuffix: Mono_$(_BuildConfig) -# # -# # Build the whole product using Mono for Android and run runtime tests with Android emulator -# # -# - 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: -# - Android_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 -# nameSuffix: AllSubsets_Mono_RuntimeTests -# buildArgs: -s mono+libs -c $(_BuildConfig) -# timeoutInMinutes: 240 -# condition: >- -# or( -# eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), -# eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), -# eq(variables['isFullMatrix'], true)) -# # extra steps, run tests -# extraStepsTemplate: /eng/pipelines/common/templates/runtimes/android-runtime-and-send-to-helix.yml -# extraStepsParameters: -# creator: dotnet-bot -# testRunNamePrefixSuffix: Mono_$(_BuildConfig) +# +# Build the whole product using Mono for Android and run runtime tests with Android emulator +# +- 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: + - Android_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 + nameSuffix: AllSubsets_Mono_RuntimeTests + buildArgs: -s mono+libs -c $(_BuildConfig) + timeoutInMinutes: 240 + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), + eq(variables['isFullMatrix'], true)) + # extra steps, run tests + extraStepsTemplate: /eng/pipelines/common/templates/runtimes/android-runtime-and-send-to-helix.yml + extraStepsParameters: + creator: dotnet-bot + testRunNamePrefixSuffix: Mono_$(_BuildConfig) -# # -# # Build Mono and Installer on LLVMJIT mode -# # -# - template: /eng/pipelines/common/platform-matrix.yml -# parameters: -# jobTemplate: /eng/pipelines/common/global-build-job.yml -# buildConfig: Release -# runtimeFlavor: mono -# platforms: -# - OSX_x64 -# jobParameters: -# testGroup: innerloop -# nameSuffix: AllSubsets_Mono_LLVMJIT -# buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) -# /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=false -# condition: >- -# or( -# eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), -# eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), -# eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), -# eq(variables['isFullMatrix'], true)) +# +# Build Mono and Installer on LLVMJIT mode +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: Release + runtimeFlavor: mono + platforms: + - OSX_x64 + jobParameters: + testGroup: innerloop + nameSuffix: AllSubsets_Mono_LLVMJIT + buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=false + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + eq(variables['isFullMatrix'], true)) -# - 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_arm64 -# jobParameters: -# testGroup: innerloop -# nameSuffix: AllSubsets_Mono_LLVMJIT -# buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) -# /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=false -# condition: >- -# or( -# eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), -# eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), -# eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), -# eq(variables['isFullMatrix'], true)) +- 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_arm64 + jobParameters: + testGroup: innerloop + nameSuffix: AllSubsets_Mono_LLVMJIT + buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=false + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + eq(variables['isFullMatrix'], 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:MonoBundleLLVMOptimizer=true -# condition: >- -# or( -# eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), -# eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), -# eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), -# eq(variables['isFullMatrix'], 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:MonoBundleLLVMOptimizer=true + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + eq(variables['isFullMatrix'], 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:MonoBundleLLVMOptimizer=true -# condition: >- -# or( -# eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), -# eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), -# eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), -# eq(variables['isFullMatrix'], 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:MonoBundleLLVMOptimizer=true + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + eq(variables['isFullMatrix'], true)) -# # -# # Build Mono debug -# # Only when libraries or mono changed -# # -# - template: /eng/pipelines/common/platform-matrix.yml -# parameters: -# jobTemplate: /eng/pipelines/mono/templates/build-job.yml -# runtimeFlavor: mono -# buildConfig: debug -# platforms: -# - OSX_x64 -# - OSX_arm64 -# - Linux_x64 -# - Linux_arm64 -# # - Linux_musl_arm64 -# - windows_x64 -# - windows_x86 -# # - windows_arm -# # - windows_arm64 -# jobParameters: -# condition: >- -# or( -# eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), -# eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), -# eq(variables['isFullMatrix'], true)) +# +# Build Mono debug +# Only when libraries or mono changed +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/mono/templates/build-job.yml + runtimeFlavor: mono + buildConfig: debug + platforms: + - OSX_x64 + - OSX_arm64 + - Linux_x64 + - Linux_arm64 + # - Linux_musl_arm64 + - windows_x64 + - windows_x86 + # - windows_arm + # - windows_arm64 + jobParameters: + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), + eq(variables['isFullMatrix'], true)) -# # -# # Build Mono release AOT cross-compilers -# # Only when mono changed -# # -# - template: /eng/pipelines/common/platform-matrix.yml -# parameters: -# jobTemplate: /eng/pipelines/mono/templates/build-job.yml -# runtimeFlavor: mono -# buildConfig: release -# platforms: -# - Linux_x64 -# # - Linux_arm64 -# # - Linux_musl_arm64 -# - Windows_x64 -# # - windows_x86 -# # - windows_arm -# # - windows_arm64 -# jobParameters: -# runtimeVariant: crossaot -# dependsOn: -# - mono_android_offsets -# - mono_browser_offsets -# monoCrossAOTTargetOS: -# - Android -# - Browser -# condition: >- -# or( -# eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), -# eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), -# eq(variables['isFullMatrix'], true)) +# +# Build Mono release AOT cross-compilers +# Only when mono changed +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/mono/templates/build-job.yml + runtimeFlavor: mono + buildConfig: release + platforms: + - Linux_x64 + # - Linux_arm64 + # - Linux_musl_arm64 + - Windows_x64 + # - windows_x86 + # - windows_arm + # - windows_arm64 + jobParameters: + runtimeVariant: crossaot + dependsOn: + - mono_android_offsets + - mono_browser_offsets + monoCrossAOTTargetOS: + - Android + - Browser + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + eq(variables['isFullMatrix'], true)) -# - template: /eng/pipelines/common/platform-matrix.yml -# parameters: -# jobTemplate: /eng/pipelines/mono/templates/build-job.yml -# runtimeFlavor: mono -# buildConfig: release -# platforms: -# - OSX_x64 -# jobParameters: -# runtimeVariant: crossaot -# dependsOn: -# - mono_android_offsets -# - mono_browser_offsets -# - mono_tvos_offsets -# - mono_ios_offsets -# - mono_maccatalyst_offsets -# monoCrossAOTTargetOS: -# - Android -# - Browser -# - tvOS -# - iOS -# - MacCatalyst -# condition: >- -# or( -# eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), -# eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), -# eq(variables['isFullMatrix'], true)) +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/mono/templates/build-job.yml + runtimeFlavor: mono + buildConfig: release + platforms: + - OSX_x64 + jobParameters: + runtimeVariant: crossaot + dependsOn: + - mono_android_offsets + - mono_browser_offsets + - mono_tvos_offsets + - mono_ios_offsets + - mono_maccatalyst_offsets + monoCrossAOTTargetOS: + - Android + - Browser + - tvOS + - iOS + - MacCatalyst + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + eq(variables['isFullMatrix'], true)) -# # -# # Build Mono release -# # Only when libraries or mono changed -# # -# - template: /eng/pipelines/common/platform-matrix.yml -# parameters: -# jobTemplate: /eng/pipelines/mono/templates/build-job.yml -# runtimeFlavor: mono -# buildConfig: release -# platforms: -# - Linux_x64 -# # - Linux_musl_arm64 -# - windows_x64 -# - windows_x86 -# # - windows_arm -# # - windows_arm64 -# jobParameters: -# condition: >- -# or( -# eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), -# eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), -# eq(variables['isFullMatrix'], true)) +# +# Build Mono release +# Only when libraries or mono changed +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/mono/templates/build-job.yml + runtimeFlavor: mono + buildConfig: release + platforms: + - Linux_x64 + # - Linux_musl_arm64 + - windows_x64 + - windows_x86 + # - windows_arm + # - windows_arm64 + jobParameters: + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), + eq(variables['isFullMatrix'], true)) -# # -# # Build Mono release -# # Only when libraries, mono, or the runtime tests changed -# # Currently only these architectures are needed for the runtime tests. -# - template: /eng/pipelines/common/platform-matrix.yml -# parameters: -# jobTemplate: /eng/pipelines/mono/templates/build-job.yml -# runtimeFlavor: mono -# buildConfig: release -# platforms: -# - OSX_x64 -# - Linux_arm64 -# jobParameters: -# condition: >- -# or( -# eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), -# eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), -# eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), -# eq(variables['isFullMatrix'], true)) +# +# Build Mono release +# Only when libraries, mono, or the runtime tests changed +# Currently only these architectures are needed for the runtime tests. +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/mono/templates/build-job.yml + runtimeFlavor: mono + buildConfig: release + platforms: + - OSX_x64 + - Linux_arm64 + jobParameters: + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), + eq(variables['isFullMatrix'], true)) -# # -# # Build Mono release with LLVM AOT -# # Only when mono, or the runtime tests changed -# # -# - template: /eng/pipelines/common/platform-matrix.yml -# parameters: -# jobTemplate: /eng/pipelines/mono/templates/build-job.yml -# runtimeFlavor: mono -# buildConfig: release -# platforms: -# - Linux_x64 -# - Linux_arm64 -# jobParameters: -# runtimeVariant: llvmaot -# condition: >- -# or( -# eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), -# eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), -# eq(variables['isFullMatrix'], true)) +# +# Build Mono release with LLVM AOT +# Only when mono, or the runtime tests changed +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/mono/templates/build-job.yml + runtimeFlavor: mono + buildConfig: release + platforms: + - Linux_x64 + - Linux_arm64 + jobParameters: + runtimeVariant: llvmaot + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), + eq(variables['isFullMatrix'], true)) -# # -# # Build libraries using live CoreLib -# # These set of libraries are built always no matter what changed -# # The reason for that is because Corelib and Installer needs it and -# # These are part of the test matrix for Libraries changes. -# # -# - template: /eng/pipelines/common/platform-matrix.yml -# parameters: -# jobTemplate: /eng/pipelines/libraries/build-job.yml -# buildConfig: Release -# platforms: -# - Linux_arm -# - Linux_musl_arm -# - Linux_musl_arm64 -# - windows_arm -# - windows_arm64 -# - windows_x86 -# jobParameters: -# liveRuntimeBuildConfig: release +# +# Build libraries using live CoreLib +# These set of libraries are built always no matter what changed +# The reason for that is because Corelib and Installer needs it and +# These are part of the test matrix for Libraries changes. +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/build-job.yml + buildConfig: Release + platforms: + - Linux_arm + - Linux_musl_arm + - Linux_musl_arm64 + - windows_arm + - windows_arm64 + - windows_x86 + jobParameters: + liveRuntimeBuildConfig: release -# - template: /eng/pipelines/common/platform-matrix.yml -# parameters: -# jobTemplate: /eng/pipelines/libraries/build-job.yml -# buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} -# platforms: -# - Linux_arm64 -# - Linux_musl_x64 -# - Linux_x64 -# - OSX_arm64 -# - OSX_x64 -# - windows_x64 -# - FreeBSD_x64 -# jobParameters: -# testScope: innerloop -# testBuildPlatforms: -# - Linux_x64 -# - windows_x64 -# - OSX_x64 -# liveRuntimeBuildConfig: release +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/build-job.yml + buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + platforms: + - Linux_arm64 + - Linux_musl_x64 + - Linux_x64 + - OSX_arm64 + - OSX_x64 + - windows_x64 + - FreeBSD_x64 + jobParameters: + testScope: innerloop + testBuildPlatforms: + - Linux_x64 + - windows_x64 + - OSX_x64 + liveRuntimeBuildConfig: release -# # -# # Libraries Build that only run when libraries is changed -# # -# - template: /eng/pipelines/common/platform-matrix.yml -# parameters: -# jobTemplate: /eng/pipelines/libraries/build-job.yml -# buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} -# platforms: -# - ${{ if eq(variables['isFullMatrix'], false) }}: -# - windows_x86 -# jobParameters: -# liveRuntimeBuildConfig: release -# condition: >- -# or( -# eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), -# eq(variables['isFullMatrix'], true)) +# +# Libraries Build that only run when libraries is changed +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/build-job.yml + buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + platforms: + - ${{ if eq(variables['isFullMatrix'], false) }}: + - windows_x86 + jobParameters: + liveRuntimeBuildConfig: release + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(variables['isFullMatrix'], true)) -# - template: /eng/pipelines/common/platform-matrix.yml -# parameters: -# jobTemplate: /eng/pipelines/libraries/build-job.yml -# buildConfig: Release -# platforms: -# - windows_x86 -# - ${{ if eq(variables['isFullMatrix'], true) }}: -# - windows_x64 -# helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml -# jobParameters: -# isFullMatrix: ${{ variables.isFullMatrix }} -# framework: net48 -# runTests: true -# testScope: innerloop -# condition: >- -# or( -# eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), -# eq(variables['isFullMatrix'], true)) +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/build-job.yml + buildConfig: Release + platforms: + - windows_x86 + - ${{ if eq(variables['isFullMatrix'], true) }}: + - windows_x64 + helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + jobParameters: + isFullMatrix: ${{ variables.isFullMatrix }} + framework: net48 + runTests: true + testScope: innerloop + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(variables['isFullMatrix'], true)) -# - template: /eng/pipelines/common/platform-matrix.yml -# parameters: -# jobTemplate: /eng/pipelines/libraries/build-job.yml -# buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} -# platforms: -# - windows_x64 -# jobParameters: -# isFullMatrix: ${{ variables.isFullMatrix }} -# framework: allConfigurations -# runTests: true -# useHelix: false -# condition: >- -# or( -# eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), -# eq(variables['isFullMatrix'], true)) +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/build-job.yml + buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + platforms: + - windows_x64 + jobParameters: + isFullMatrix: ${{ variables.isFullMatrix }} + framework: allConfigurations + runTests: true + useHelix: false + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(variables['isFullMatrix'], true)) -# # -# # Installer Build and Test -# # These are always built since they only take like 15 minutes -# # we expect these to be done before we finish libraries or coreclr testing. -# # -# - template: /eng/pipelines/installer/installer-matrix.yml -# parameters: -# buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} -# platforms: -# - Linux_arm -# - Linux_musl_arm -# - Linux_musl_arm64 -# - windows_x86 -# - windows_arm -# - windows_arm64 -# jobParameters: -# liveRuntimeBuildConfig: release -# liveLibrariesBuildConfig: Release +# +# Installer Build and Test +# These are always built since they only take like 15 minutes +# we expect these to be done before we finish libraries or coreclr testing. +# +- template: /eng/pipelines/installer/installer-matrix.yml + parameters: + buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + platforms: + - Linux_arm + - Linux_musl_arm + - Linux_musl_arm64 + - windows_x86 + - windows_arm + - windows_arm64 + jobParameters: + liveRuntimeBuildConfig: release + liveLibrariesBuildConfig: Release -# - template: /eng/pipelines/installer/installer-matrix.yml -# parameters: -# buildConfig: Release -# platforms: -# - OSX_arm64 -# - OSX_x64 -# - Linux_x64 -# - Linux_arm64 -# - Linux_musl_x64 -# - windows_x64 -# - FreeBSD_x64 -# jobParameters: -# liveRuntimeBuildConfig: release -# liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} +- template: /eng/pipelines/installer/installer-matrix.yml + parameters: + buildConfig: Release + platforms: + - OSX_arm64 + - OSX_x64 + - Linux_x64 + - Linux_arm64 + - Linux_musl_x64 + - windows_x64 + - FreeBSD_x64 + jobParameters: + liveRuntimeBuildConfig: release + liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} -# # -# # PGO Build -# # -# - template: /eng/pipelines/installer/installer-matrix.yml -# parameters: -# buildConfig: Release -# jobParameters: -# isOfficialBuild: ${{ variables.isOfficialBuild }} -# liveRuntimeBuildConfig: release -# liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} -# pgoType: 'PGO' -# platforms: -# - windows_x64 -# - windows_x86 -# - Linux_x64 +# +# PGO Build +# +- template: /eng/pipelines/installer/installer-matrix.yml + parameters: + buildConfig: Release + jobParameters: + isOfficialBuild: ${{ variables.isOfficialBuild }} + liveRuntimeBuildConfig: release + liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + pgoType: 'PGO' + platforms: + - windows_x64 + - windows_x86 + - Linux_x64 -# # -# # Crossgen-comparison jobs -# # Only when CoreCLR is changed -# # -# - template: /eng/pipelines/common/platform-matrix.yml -# parameters: -# jobTemplate: /eng/pipelines/coreclr/templates/crossgen-comparison-job.yml -# buildConfig: checked -# platforms: -# - Linux_arm -# helixQueueGroup: pr -# helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml -# jobParameters: -# liveLibrariesBuildConfig: Release -# condition: >- -# or( -# eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), -# eq(variables['isFullMatrix'], true)) +# +# Crossgen-comparison jobs +# Only when CoreCLR is changed +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/crossgen-comparison-job.yml + buildConfig: checked + platforms: + - Linux_arm + helixQueueGroup: pr + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + jobParameters: + liveLibrariesBuildConfig: Release + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + eq(variables['isFullMatrix'], true)) -# # -# # CoreCLR Test builds using live libraries release build -# # Only when CoreCLR is changed -# # -# - template: /eng/pipelines/common/platform-matrix.yml -# parameters: -# jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml -# buildConfig: checked -# platforms: -# - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64 -# jobParameters: -# testGroup: innerloop -# liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} -# condition: >- -# or( -# eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), -# eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), -# eq(variables['isFullMatrix'], true)) +# +# CoreCLR Test builds using live libraries release build +# Only when CoreCLR is changed +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml + buildConfig: checked + platforms: + - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64 + jobParameters: + testGroup: innerloop + liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(variables['isFullMatrix'], true)) -# # -# # CoreCLR Test executions using live libraries -# # Only when CoreCLR is changed -# # -# - template: /eng/pipelines/common/platform-matrix.yml -# parameters: -# jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml -# buildConfig: checked -# platforms: -# - Linux_arm -# - windows_x86 -# - windows_arm64 -# helixQueueGroup: pr -# helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml -# jobParameters: -# testGroup: innerloop -# liveLibrariesBuildConfig: Release -# condition: >- -# or( -# eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), -# eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), -# eq(variables['isFullMatrix'], true)) +# +# CoreCLR Test executions using live libraries +# Only when CoreCLR is changed +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml + buildConfig: checked + platforms: + - Linux_arm + - windows_x86 + - windows_arm64 + helixQueueGroup: pr + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + jobParameters: + testGroup: innerloop + liveLibrariesBuildConfig: Release + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(variables['isFullMatrix'], true)) -# - template: /eng/pipelines/common/platform-matrix.yml -# parameters: -# jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml -# buildConfig: checked -# platforms: -# - OSX_x64 -# - Linux_x64 -# - Linux_arm64 -# - windows_x64 -# helixQueueGroup: pr -# helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml -# jobParameters: -# testGroup: innerloop -# liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} -# condition: >- -# or( -# eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), -# eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), -# eq(variables['isFullMatrix'], true)) +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml + buildConfig: checked + platforms: + - OSX_x64 + - Linux_x64 + - Linux_arm64 + - windows_x64 + helixQueueGroup: pr + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + jobParameters: + testGroup: innerloop + liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(variables['isFullMatrix'], true)) -# - template: /eng/pipelines/common/platform-matrix.yml -# parameters: -# jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml -# buildConfig: checked -# platforms: -# - OSX_arm64 -# helixQueueGroup: pr -# helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml -# jobParameters: -# testGroup: innerloop -# liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} -# condition: >- -# or( -# eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr_AppleSilicon.containsChange'], true), -# eq(variables['isFullMatrix'], true)) +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml + buildConfig: checked + platforms: + - OSX_arm64 + helixQueueGroup: pr + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + jobParameters: + testGroup: innerloop + liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr_AppleSilicon.containsChange'], true), + eq(variables['isFullMatrix'], true)) -# # -# # Mono Test builds with CoreCLR runtime tests using live libraries debug build -# # Only when Mono is changed -# - template: /eng/pipelines/common/platform-matrix.yml -# parameters: -# jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml -# buildConfig: release -# runtimeFlavor: mono -# platforms: -# - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64 -# jobParameters: -# testGroup: innerloop -# liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} -# liveRuntimeBuildConfig: release -# condition: >- -# or( -# eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), -# eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), -# eq(variables['isFullMatrix'], true)) +# +# Mono Test builds with CoreCLR runtime tests using live libraries debug build +# Only when Mono is changed +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml + buildConfig: release + runtimeFlavor: mono + platforms: + - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64 + jobParameters: + testGroup: innerloop + liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + liveRuntimeBuildConfig: release + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(variables['isFullMatrix'], true)) -# # -# # 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/templates/runtimes/run-test-job.yml -# buildConfig: release -# runtimeFlavor: mono -# platforms: -# - OSX_x64 -# - Linux_arm64 -# helixQueueGroup: pr -# helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml -# jobParameters: -# testGroup: innerloop -# liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} -# liveRuntimeBuildConfig: release -# runtimeVariant: minijit -# condition: >- -# or( -# eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), -# eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), -# eq(variables['isFullMatrix'], true)) +# +# 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/templates/runtimes/run-test-job.yml + buildConfig: release + runtimeFlavor: mono + platforms: + - OSX_x64 + - Linux_arm64 + helixQueueGroup: pr + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + jobParameters: + testGroup: innerloop + liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + liveRuntimeBuildConfig: release + runtimeVariant: minijit + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(variables['isFullMatrix'], true)) # # Mono CoreCLR runtime Test executions using live libraries in interpreter mode @@ -983,209 +983,209 @@ jobs: eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), eq(variables['isFullMatrix'], true)) -# # -# # 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/templates/runtimes/run-test-job.yml -# buildConfig: release -# runtimeFlavor: mono -# platforms: -# - Linux_x64 -# - Linux_arm64 -# helixQueueGroup: pr -# helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml -# jobParameters: -# testGroup: innerloop -# liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} -# liveRuntimeBuildConfig: release -# runtimeVariant: llvmaot -# condition: >- -# or( -# eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), -# eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), -# eq(variables['isFullMatrix'], true)) +# +# 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/templates/runtimes/run-test-job.yml + buildConfig: release + runtimeFlavor: mono + platforms: + - Linux_x64 + - Linux_arm64 + helixQueueGroup: pr + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + jobParameters: + testGroup: innerloop + liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + liveRuntimeBuildConfig: release + runtimeVariant: llvmaot + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(variables['isFullMatrix'], true)) -# # -# # Libraries Release Test Execution against a release mono runtime. -# # Only when libraries or mono changed -# # -# - template: /eng/pipelines/common/platform-matrix.yml -# parameters: -# jobTemplate: /eng/pipelines/libraries/run-test-job.yml -# runtimeFlavor: mono -# buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} -# platforms: -# # - windows_x64 -# - OSX_x64 -# - Linux_arm64 -# - Linux_x64 -# helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml -# jobParameters: -# isOfficialBuild: false -# isFullMatrix: ${{ variables.isFullMatrix }} -# runtimeDisplayName: mono -# testScope: innerloop -# liveRuntimeBuildConfig: release -# dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} -# dependsOnTestArchitecture: x64 -# condition: >- -# or( -# eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), -# eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), -# eq(variables['isFullMatrix'], true)) +# +# Libraries Release Test Execution against a release mono runtime. +# Only when libraries or mono changed +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/run-test-job.yml + runtimeFlavor: mono + buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + platforms: + # - windows_x64 + - OSX_x64 + - Linux_arm64 + - Linux_x64 + helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + jobParameters: + isOfficialBuild: false + isFullMatrix: ${{ variables.isFullMatrix }} + runtimeDisplayName: mono + testScope: innerloop + liveRuntimeBuildConfig: release + dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} + dependsOnTestArchitecture: x64 + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), + eq(variables['isFullMatrix'], true)) -# # -# # Libraries Release Test Execution against a release mono interpreter runtime. -# # Only when libraries or mono changed -# # -# - template: /eng/pipelines/common/platform-matrix.yml -# parameters: -# jobTemplate: /eng/pipelines/libraries/run-test-job.yml -# runtimeFlavor: mono -# buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} -# platforms: -# # - windows_x64 -# #- OSX_x64 -# - Linux_x64 -# helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml -# jobParameters: -# isOfficialBuild: false -# isFullMatrix: ${{ variables.isFullMatrix }} -# interpreter: true -# runtimeDisplayName: mono_interpreter -# testScope: innerloop -# liveRuntimeBuildConfig: release -# dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} -# dependsOnTestArchitecture: x64 -# condition: >- -# or( -# eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), -# eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), -# eq(variables['isFullMatrix'], true)) +# +# Libraries Release Test Execution against a release mono interpreter runtime. +# Only when libraries or mono changed +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/run-test-job.yml + runtimeFlavor: mono + buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + platforms: + # - windows_x64 + #- OSX_x64 + - Linux_x64 + helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + jobParameters: + isOfficialBuild: false + isFullMatrix: ${{ variables.isFullMatrix }} + interpreter: true + runtimeDisplayName: mono_interpreter + testScope: innerloop + liveRuntimeBuildConfig: release + dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} + dependsOnTestArchitecture: x64 + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), + eq(variables['isFullMatrix'], true)) -# # -# # Libraries Release Test Execution against a release coreclr runtime -# # Only when the PR contains a libraries change -# # -# - template: /eng/pipelines/common/platform-matrix.yml -# parameters: -# jobTemplate: /eng/pipelines/libraries/run-test-job.yml -# buildConfig: Release -# platforms: -# - windows_x86 -# - ${{ if eq(variables['isFullMatrix'], true) }}: -# - windows_arm64 -# helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml -# jobParameters: -# isOfficialBuild: false -# isFullMatrix: ${{ variables.isFullMatrix }} -# testScope: innerloop -# liveRuntimeBuildConfig: release -# dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} -# dependsOnTestArchitecture: x64 -# condition: >- -# or( -# eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), -# eq(variables['isFullMatrix'], true)) +# +# Libraries Release Test Execution against a release coreclr runtime +# Only when the PR contains a libraries change +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/run-test-job.yml + buildConfig: Release + platforms: + - windows_x86 + - ${{ if eq(variables['isFullMatrix'], true) }}: + - windows_arm64 + helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + jobParameters: + isOfficialBuild: false + isFullMatrix: ${{ variables.isFullMatrix }} + testScope: innerloop + liveRuntimeBuildConfig: release + dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} + dependsOnTestArchitecture: x64 + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(variables['isFullMatrix'], true)) -# # -# # Libraries Debug Test Execution against a release coreclr runtime -# # Only when the PR contains a libraries change -# # -# - template: /eng/pipelines/common/platform-matrix.yml -# parameters: -# jobTemplate: /eng/pipelines/libraries/run-test-job.yml -# buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} -# platforms: -# - windows_x64 -# - OSX_x64 -# - Linux_x64 -# - Linux_musl_x64 -# - ${{ if eq(variables['isFullMatrix'], true) }}: -# - Linux_arm64 -# - ${{ if eq(variables['isFullMatrix'], false) }}: -# - windows_x86 -# helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml -# jobParameters: -# isOfficialBuild: false -# isFullMatrix: ${{ variables.isFullMatrix }} -# testScope: innerloop -# liveRuntimeBuildConfig: release -# dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} -# dependsOnTestArchitecture: x64 -# condition: >- -# or( -# eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), -# eq(variables['isFullMatrix'], true)) +# +# Libraries Debug Test Execution against a release coreclr runtime +# Only when the PR contains a libraries change +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/run-test-job.yml + buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + platforms: + - windows_x64 + - OSX_x64 + - Linux_x64 + - Linux_musl_x64 + - ${{ if eq(variables['isFullMatrix'], true) }}: + - Linux_arm64 + - ${{ if eq(variables['isFullMatrix'], false) }}: + - windows_x86 + helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + jobParameters: + isOfficialBuild: false + isFullMatrix: ${{ variables.isFullMatrix }} + testScope: innerloop + liveRuntimeBuildConfig: release + dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} + dependsOnTestArchitecture: x64 + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(variables['isFullMatrix'], true)) -# # -# # Libraries Test Execution against a checked runtime -# # Only when the PR contains a coreclr change -# # -# - template: /eng/pipelines/common/platform-matrix.yml -# parameters: -# jobTemplate: /eng/pipelines/libraries/run-test-job.yml -# buildConfig: Release -# platforms: -# # - windows_arm return this when https://github.com/dotnet/runtime/issues/1097 is fixed. -# - Linux_arm -# - Linux_musl_arm -# - Linux_musl_arm64 -# - windows_x86 -# helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml -# helixQueueGroup: libraries -# jobParameters: -# testScope: innerloop -# liveRuntimeBuildConfig: checked -# dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} -# dependsOnTestArchitecture: x64 -# condition: >- -# or( -# eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), -# eq(variables['isFullMatrix'], true)) +# +# Libraries Test Execution against a checked runtime +# Only when the PR contains a coreclr change +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/run-test-job.yml + buildConfig: Release + platforms: + # - windows_arm return this when https://github.com/dotnet/runtime/issues/1097 is fixed. + - Linux_arm + - Linux_musl_arm + - Linux_musl_arm64 + - windows_x86 + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + helixQueueGroup: libraries + jobParameters: + testScope: innerloop + liveRuntimeBuildConfig: checked + dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} + dependsOnTestArchitecture: x64 + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + eq(variables['isFullMatrix'], true)) -# # -# # Libraries Test Execution against a checked runtime -# # Only if CoreCLR or Libraries is changed -# # -# - template: /eng/pipelines/common/platform-matrix.yml -# parameters: -# jobTemplate: /eng/pipelines/libraries/run-test-job.yml -# buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} -# platforms: -# - windows_x64 -# - Linux_x64 -# - Linux_musl_x64 -# helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml -# helixQueueGroup: libraries -# jobParameters: -# testScope: innerloop -# liveRuntimeBuildConfig: checked -# dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} -# dependsOnTestArchitecture: x64 -# condition: >- -# or( -# eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), -# eq(variables['isFullMatrix'], true)) +# +# Libraries Test Execution against a checked runtime +# Only if CoreCLR or Libraries is changed +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/run-test-job.yml + buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + platforms: + - windows_x64 + - Linux_x64 + - Linux_musl_x64 + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + helixQueueGroup: libraries + jobParameters: + testScope: innerloop + liveRuntimeBuildConfig: checked + dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} + dependsOnTestArchitecture: x64 + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + eq(variables['isFullMatrix'], true)) -# - template: /eng/pipelines/common/platform-matrix.yml -# parameters: -# jobTemplate: /eng/pipelines/libraries/run-test-job.yml -# buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} -# platforms: -# - OSX_x64 -# helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml -# helixQueueGroup: libraries -# jobParameters: -# testScope: innerloop -# liveRuntimeBuildConfig: checked -# dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} -# dependsOnTestArchitecture: x64 -# condition: >- -# or( -# eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), -# eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), -# eq(variables['isFullMatrix'], true)) +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/run-test-job.yml + buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + platforms: + - OSX_x64 + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + helixQueueGroup: libraries + jobParameters: + testScope: innerloop + liveRuntimeBuildConfig: checked + dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} + dependsOnTestArchitecture: x64 + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(variables['isFullMatrix'], true)) diff --git a/eng/pipelines/runtimelab.yml b/eng/pipelines/runtimelab.yml index c3827d520d38a4..db73445d799874 100644 --- a/eng/pipelines/runtimelab.yml +++ b/eng/pipelines/runtimelab.yml @@ -53,169 +53,169 @@ stages: - stage: Build jobs: - # # - # # Build with Debug config and Checked runtimeConfiguration - # # - # - ${{ if ne(variables.isOfficialBuild, true) }}: - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # buildConfig: Checked - # platforms: - # - Linux_x64 - # - windows_x64 - # jobParameters: - # timeoutInMinutes: 100 - # testGroup: innerloop - # buildArgs: -s clr+libs+host+packs -c debug -runtimeConfiguration Checked - # extraStepsTemplate: /eng/pipelines/runtimelab/runtimelab-post-build-steps.yml - # extraStepsParameters: - # uploadRuntimeTests: true + # + # Build with Debug config and Checked runtimeConfiguration + # + - ${{ if ne(variables.isOfficialBuild, true) }}: + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: Checked + platforms: + - Linux_x64 + - windows_x64 + jobParameters: + timeoutInMinutes: 100 + testGroup: innerloop + buildArgs: -s clr+libs+host+packs -c debug -runtimeConfiguration Checked + extraStepsTemplate: /eng/pipelines/runtimelab/runtimelab-post-build-steps.yml + extraStepsParameters: + uploadRuntimeTests: true - # # - # # Build with Release config and Release runtimeConfiguration - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # buildConfig: Release - # platforms: - # - Linux_x64 - # - windows_x64 - # jobParameters: - # timeoutInMinutes: 100 - # isOfficialBuild: ${{ variables.isOfficialBuild }} - # testGroup: innerloop - # extraStepsTemplate: /eng/pipelines/runtimelab/runtimelab-post-build-steps.yml - # extraStepsParameters: - # uploadLibrariesTests: ${{ eq(variables.isOfficialBuild, false) }} - # uploadIntermediateArtifacts: false - # ${{ if eq(variables.isOfficialBuild, false) }}: - # buildArgs: -s clr+libs+libs.tests+host+packs -c $(_BuildConfig) /p:ArchiveTests=true - # ${{ if eq(variables.isOfficialBuild, true) }}: - # buildArgs: -s clr+libs -c $(_BuildConfig) + # + # Build with Release config and Release runtimeConfiguration + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: Release + platforms: + - Linux_x64 + - windows_x64 + jobParameters: + timeoutInMinutes: 100 + isOfficialBuild: ${{ variables.isOfficialBuild }} + testGroup: innerloop + extraStepsTemplate: /eng/pipelines/runtimelab/runtimelab-post-build-steps.yml + extraStepsParameters: + uploadLibrariesTests: ${{ eq(variables.isOfficialBuild, false) }} + uploadIntermediateArtifacts: false + ${{ if eq(variables.isOfficialBuild, false) }}: + buildArgs: -s clr+libs+libs.tests+host+packs -c $(_BuildConfig) /p:ArchiveTests=true + ${{ if eq(variables.isOfficialBuild, true) }}: + buildArgs: -s clr+libs -c $(_BuildConfig) - # # - # # Build with Release allConfigurations to produce packages - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # buildConfig: Release - # platforms: - # - windows_x64 - # jobParameters: - # isOfficialBuild: ${{ variables.isOfficialBuild }} - # testGroup: innerloop - # nameSuffix: AllConfigurations - # buildArgs: -s libs -c $(_BuildConfig) -allConfigurations - # ${{ if eq(variables.isOfficialBuild, true) }}: - # extraStepsTemplate: /eng/pipelines/runtimelab/runtimelab-post-build-steps.yml - # extraStepsParameters: - # uploadIntermediateArtifacts: true - # isOfficialBuild: true - # librariesBinArtifactName: libraries_bin_official_allconfigurations + # + # Build with Release allConfigurations to produce packages + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: Release + platforms: + - windows_x64 + jobParameters: + isOfficialBuild: ${{ variables.isOfficialBuild }} + testGroup: innerloop + nameSuffix: AllConfigurations + buildArgs: -s libs -c $(_BuildConfig) -allConfigurations + ${{ if eq(variables.isOfficialBuild, true) }}: + extraStepsTemplate: /eng/pipelines/runtimelab/runtimelab-post-build-steps.yml + extraStepsParameters: + uploadIntermediateArtifacts: true + isOfficialBuild: true + librariesBinArtifactName: libraries_bin_official_allconfigurations - # # Installer official builds need to build installers and need the libraries all configurations build - # - ${{ if eq(variables.isOfficialBuild, true) }}: - # - template: /eng/pipelines/installer/installer-matrix.yml - # parameters: - # jobParameters: - # liveRuntimeBuildConfig: Release - # liveLibrariesBuildConfig: Release - # isOfficialBuild: ${{ variables.isOfficialBuild }} - # useOfficialAllConfigurations: true - # dependsOnGlobalBuild: true - # platforms: - # - Linux_x64 - # - windows_x64 + # Installer official builds need to build installers and need the libraries all configurations build + - ${{ if eq(variables.isOfficialBuild, true) }}: + - template: /eng/pipelines/installer/installer-matrix.yml + parameters: + jobParameters: + liveRuntimeBuildConfig: Release + liveLibrariesBuildConfig: Release + isOfficialBuild: ${{ variables.isOfficialBuild }} + useOfficialAllConfigurations: true + dependsOnGlobalBuild: true + platforms: + - Linux_x64 + - windows_x64 - # - ${{ if ne(variables.isOfficialBuild, true) }}: - # # - # # CoreCLR Test builds using live libraries release build - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml - # buildConfig: Checked - # platforms: - # - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64 - # jobParameters: - # testGroup: innerloop - # liveLibrariesBuildConfig: Release - # dependsOn: - # - build_Linux_x64_Checked_ - # - build_Linux_x64_Release_ + - ${{ if ne(variables.isOfficialBuild, true) }}: + # + # CoreCLR Test builds using live libraries release build + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml + buildConfig: Checked + platforms: + - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64 + jobParameters: + testGroup: innerloop + liveLibrariesBuildConfig: Release + dependsOn: + - build_Linux_x64_Checked_ + - build_Linux_x64_Release_ - # # - # # CoreCLR Test executions using live libraries - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml - # buildConfig: Checked - # platforms: - # - Linux_x64 - # helixQueueGroup: pr - # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - # jobParameters: - # testGroup: innerloop - # liveLibrariesBuildConfig: Release - # dependsOn: - # - coreclr_common_test_build_p0_AnyOS_AnyCPU_Checked + # + # CoreCLR Test executions using live libraries + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml + buildConfig: Checked + platforms: + - Linux_x64 + helixQueueGroup: pr + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + jobParameters: + testGroup: innerloop + liveLibrariesBuildConfig: Release + dependsOn: + - coreclr_common_test_build_p0_AnyOS_AnyCPU_Checked - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml - # buildConfig: Checked - # platforms: - # - windows_x64 - # helixQueueGroup: pr - # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - # jobParameters: - # testGroup: innerloop - # liveLibrariesBuildConfig: Release - # dependsOn: - # - coreclr_common_test_build_p0_AnyOS_AnyCPU_Checked - # - build_windows_x64_Checked_ - # - build_windows_x64_Release_ + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml + buildConfig: Checked + platforms: + - windows_x64 + helixQueueGroup: pr + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + jobParameters: + testGroup: innerloop + liveLibrariesBuildConfig: Release + dependsOn: + - coreclr_common_test_build_p0_AnyOS_AnyCPU_Checked + - build_windows_x64_Checked_ + - build_windows_x64_Release_ - # # - # # Libraries Release Test Execution against a release coreclr runtime - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/libraries/run-test-job.yml - # buildConfig: Release - # platforms: - # - Linux_x64 - # helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - # jobParameters: - # isFullMatrix: false - # isOfficialBuild: false - # testScope: innerloop - # liveRuntimeBuildConfig: Release - # dependsOnTestBuildConfiguration: Release - # dependsOnTestArchitecture: x64 - # dependsOn: - # - build_Linux_x64_Release_ + # + # Libraries Release Test Execution against a release coreclr runtime + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/run-test-job.yml + buildConfig: Release + platforms: + - Linux_x64 + helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + jobParameters: + isFullMatrix: false + isOfficialBuild: false + testScope: innerloop + liveRuntimeBuildConfig: Release + dependsOnTestBuildConfiguration: Release + dependsOnTestArchitecture: x64 + dependsOn: + - build_Linux_x64_Release_ - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/libraries/run-test-job.yml - # buildConfig: Release - # platforms: - # - windows_x64 - # helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - # jobParameters: - # isFullMatrix: false - # isOfficialBuild: false - # testScope: innerloop - # liveRuntimeBuildConfig: Release - # dependsOnTestBuildConfiguration: Release - # dependsOnTestArchitecture: x64 - # dependsOn: - # - build_windows_x64_Release_ + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/run-test-job.yml + buildConfig: Release + platforms: + - windows_x64 + helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + jobParameters: + isFullMatrix: false + isOfficialBuild: false + testScope: innerloop + liveRuntimeBuildConfig: Release + dependsOnTestBuildConfiguration: Release + dependsOnTestArchitecture: x64 + dependsOn: + - build_windows_x64_Release_ - ${{ if eq(variables.isOfficialBuild, true) }}: - template: /eng/pipelines/official/stages/publish.yml From 92d4920d364d4c15091b7099d60f550c79c49b29 Mon Sep 17 00:00:00 2001 From: Fan Yang Date: Fri, 18 Jun 2021 16:05:11 -0400 Subject: [PATCH 17/18] revert unintentional change --- eng/pipelines/runtime.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 4eb8efe5ea5f5c..148566ea7a262d 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -982,7 +982,6 @@ jobs: eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), eq(variables['isFullMatrix'], true)) - # # Mono CoreCLR runtime Test executions using live libraries and LLVM AOT # Only when Mono is changed From c73d7b8395b2b91a4c5440b27e4866b6a013f602 Mon Sep 17 00:00:00 2001 From: Fan Yang Date: Fri, 18 Jun 2021 18:01:36 -0400 Subject: [PATCH 18/18] Disable Vector128_1_r* --- src/tests/issues.targets | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/tests/issues.targets b/src/tests/issues.targets index d4d59906971ecd..a7dff541a1a647 100644 --- a/src/tests/issues.targets +++ b/src/tests/issues.targets @@ -2209,12 +2209,12 @@ https://github.com/dotnet/runtime/issues/54376 - +