From 6b9085e3f717a66c68520b82fc4c8f66e362d143 Mon Sep 17 00:00:00 2001 From: Ankit Jain Date: Wed, 4 Aug 2021 01:59:25 -0400 Subject: [PATCH 01/12] remove unncessary builds --- eng/pipelines/global-build.yml | 202 +-- eng/pipelines/runtime-linker-tests.yml | 81 - eng/pipelines/runtime-staging.yml | 431 ----- eng/pipelines/runtime.yml | 2077 ++++++++++++------------ eng/pipelines/runtimelab.yml | 223 --- 5 files changed, 1136 insertions(+), 1878 deletions(-) delete mode 100644 eng/pipelines/runtime-linker-tests.yml delete mode 100644 eng/pipelines/runtime-staging.yml delete mode 100644 eng/pipelines/runtimelab.yml diff --git a/eng/pipelines/global-build.yml b/eng/pipelines/global-build.yml index 289f7d0033e9c2..93ba0ef83b1d72 100644 --- a/eng/pipelines/global-build.yml +++ b/eng/pipelines/global-build.yml @@ -28,110 +28,110 @@ pr: - SECURITY.md - 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 +#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 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 deleted file mode 100644 index 836b54c849ab5f..00000000000000 --- a/eng/pipelines/runtime-linker-tests.yml +++ /dev/null @@ -1,81 +0,0 @@ -# The purpose of this pipeline is to exercise local developer workflow in the consolidated -# runtime repo. In particular, it is supposed to run the root "build" script just like any -# normal developer normally would and monitor regressions w.r.t. this fundamental scenario. - -trigger: - batch: true - branches: - include: - - main - - release/*.* - paths: - include: - - '*' - exclude: - - eng/Version.Details.xml - - .github/* - - docs/* - - CODE-OF-CONDUCT.md - - CONTRIBUTING.md - - LICENSE.TXT - - PATENTS.TXT - - README.md - - SECURITY.md - - THIRD-PARTY-NOTICES.TXT - -pr: - branches: - include: - - main - - release/*.* - paths: - include: - - '*' - exclude: - - eng/Version.Details.xml - - .github/* - - docs/* - - CODE-OF-CONDUCT.md - - CONTRIBUTING.md - - LICENSE.TXT - - PATENTS.TXT - - README.md - - SECURITY.md - - 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 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 deleted file mode 100644 index 92e672c5b187ca..00000000000000 --- a/eng/pipelines/runtime-staging.yml +++ /dev/null @@ -1,431 +0,0 @@ -# Setting batch to true, triggers one build at a time. -# if there is a push while a build in progress, it will wait, -# until the running build finishes, and produce a build with all the changes -# that happened during the last build. -trigger: - batch: true - branches: - include: - - main - paths: - include: - - '*' - - docs/manpages/* - exclude: - - eng/Version.Details.xml - - .github/* - - docs/* - - CODE-OF-CONDUCT.md - - CONTRIBUTING.md - - LICENSE.TXT - - PATENTS.TXT - - README.md - - SECURITY.md - - THIRD-PARTY-NOTICES.TXT - -pr: - branches: - include: - - main - - release/*.* - paths: - include: - - '*' - - docs/manpages/* - exclude: - - eng/Version.Details.xml - - .github/* - - docs/* - - CODE-OF-CONDUCT.md - - CONTRIBUTING.md - - LICENSE.TXT - - PATENTS.TXT - - README.md - - SECURITY.md - - THIRD-PARTY-NOTICES.TXT - -variables: - - template: /eng/pipelines/common/variables.yml - -jobs: -# -# Evaluate paths -# -- ${{ if eq(variables.dependOnEvaluatePaths, true) }}: - - template: /eng/pipelines/common/evaluate-default-paths.yml - -# -# iOS/tvOS/Catalyst 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 - - iOSSimulator_x64 - - tvOSSimulator_x64 - # don't run tests on arm64 PRs until we can get significantly more devices - - ${{ if eq(variables['isFullMatrix'], true) }}: - - MacCatalyst_arm64 - - iOSSimulator_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 /p:BuildDarwinFrameworks=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)) - -- 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)) - -# -# 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 for Android and run runtime tests with interpreter -# -- 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 - runtimeVariant: monointerpreter - 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 and run runtime tests with the JIT. -# -- 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: - - iOSSimulator_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)) - # Test execution is temporarily disabled because test apps no longer launch - # and the test suite times out after two hours, even if xharness cannot - # successfully launch any tests. Re-enable once these issues have been fixed. - # - # 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 - 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)) - # 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/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 - -# -# Build Browser_wasm, on windows, run console and browser 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_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: 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:BrowserHost=windows - scenarios: - - normal - - wasmtestonbrowser - 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 2ae339930ef6bb..a06e67fbb7015b 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -60,141 +60,141 @@ jobs: # 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)) +#- 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))) +#- 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)) +#- 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 @@ -204,11 +204,11 @@ jobs: jobTemplate: /eng/pipelines/mono/templates/generate-offsets.yml buildConfig: release platforms: - - Android_x64 + #- Android_x64 - Browser_wasm - - tvOS_arm64 - - iOS_arm64 - - MacCatalyst_x64 + #- tvOS_arm64 + #- iOS_arm64 + #- MacCatalyst_x64 jobParameters: condition: >- or( @@ -219,48 +219,48 @@ jobs: # 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: ${{ 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 @@ -307,6 +307,46 @@ jobs: # # Build the whole product using Mono and run libraries tests, for Wasm.Build.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: monoContainsChange + #value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'] ] + #- name: installerContainsChange + #value: $[ dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'] ] + #jobParameters: + #testGroup: innerloop + #nameSuffix: AllSubsets_Mono_WasmBuildTests + #buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true + #timeoutInMinutes: 180 + #condition: >- + #or( + #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 + #condition: >- + #or( + #eq(variables['monoContainsChange'], true), + #eq(variables['installerContainsChange'], 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 @@ -317,17 +357,18 @@ jobs: - 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'] ] - - name: installerContainsChange - value: $[ dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'] ] jobParameters: testGroup: innerloop - nameSuffix: AllSubsets_Mono_WasmBuildTests - buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true + 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)) @@ -336,59 +377,834 @@ jobs: extraStepsParameters: creator: dotnet-bot testRunNamePrefixSuffix: Mono_$(_BuildConfig) + extraHelixArguments: /p:NeedsToBuildWasmAppsOnHelix=true scenarios: - - buildwasmapps - condition: >- - or( - eq(variables['monoContainsChange'], true), - eq(variables['installerContainsChange'], true), - eq(variables['isFullMatrix'], true)) + - 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 for Browser/wasm, with EnableAggressiveTrimming=true +# Build the whole product using Mono and run runtime tests +# +#- template: /eng/pipelines/common/platform-matrix.yml + #parameters: + #jobTemplate: /eng/pipelines/common/global-build-job.yml + #helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + #buildConfig: Release + #runtimeFlavor: mono + #platforms: + #- 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 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)) + +# +# 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)) + +# +# 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)) + - 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 + jobTemplate: /eng/pipelines/mono/templates/build-job.yml runtimeFlavor: mono + buildConfig: release 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'] ] + - OSX_x64 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 + 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_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 RunAOTCompilation=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 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 + +#- 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)) + +#- 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 + #helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + #jobParameters: + #isFullMatrix: ${{ variables.isFullMatrix }} + #framework: allConfigurations + #runTests: true + #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 + +#- 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 + +## +## 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 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_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 CoreCLR runtime Test executions using live libraries +## 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 + #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 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 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 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)) + +# Build EAT/AOT - template: /eng/pipelines/common/platform-matrix.yml parameters: jobTemplate: /eng/pipelines/common/global-build-job.yml @@ -408,12 +1224,12 @@ jobs: 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)) + #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: @@ -422,831 +1238,8 @@ jobs: 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 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 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)) - -# -# 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)) - -# -# 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)) - -- 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, 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 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 - -# -# 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: ${{ 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 - -- 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 - -# -# 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)) - -- 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)) - -# -# 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 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 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 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 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)) + #condition: >- + #or( + #eq(variables['librariesContainsChange'], true), + #eq(variables['monoContainsChange'], true), + #eq(variables['isFullMatrix'], true)) diff --git a/eng/pipelines/runtimelab.yml b/eng/pipelines/runtimelab.yml deleted file mode 100644 index db73445d799874..00000000000000 --- a/eng/pipelines/runtimelab.yml +++ /dev/null @@ -1,223 +0,0 @@ -# Setting batch to true, triggers one build at a time. -# if there is a push while a build in progress, it will wait, -# until the running build finishes, and produce a build with all the changes -# that happened during the last build. -trigger: - batch: true - branches: - include: - - feature/* - paths: - include: - - '*' - - docs/manpages/* - exclude: - - eng/Version.Details.xml - - .github/* - - docs/* - - CODE-OF-CONDUCT.md - - CONTRIBUTING.md - - LICENSE.TXT - - PATENTS.TXT - - README.md - - SECURITY.md - - THIRD-PARTY-NOTICES.TXT - -pr: - branches: - include: - - feature/* - paths: - include: - - '*' - - docs/manpages/* - exclude: - - eng/Version.Details.xml - - .github/* - - docs/* - - CODE-OF-CONDUCT.md - - CONTRIBUTING.md - - LICENSE.TXT - - PATENTS.TXT - - README.md - - SECURITY.md - - THIRD-PARTY-NOTICES.TXT - -variables: - - template: /eng/pipelines/common/variables.yml - - ${{ if and(ne(variables['System.TeamProject'], 'public'), ne(variables['Build.Reason'], 'PullRequest')) }}: - - name: TeamName - value: dotnet-core - -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 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 - - # 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_ - - # - # 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_ - - # - # 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_ - -- ${{ if eq(variables.isOfficialBuild, true) }}: - - template: /eng/pipelines/official/stages/publish.yml - parameters: - isOfficialBuild: ${{ variables.isOfficialBuild }} From 5a8f469f6e0f1015e87c4c0b76c7a205c734ea63 Mon Sep 17 00:00:00 2001 From: Ankit Jain Date: Wed, 4 Aug 2021 01:58:46 -0400 Subject: [PATCH 02/12] re-enable tests --- eng/testing/tests.wasm.targets | 3 +- .../tests/System.Collections.Tests.csproj | 1 + ...tem.ComponentModel.Primitives.Tests.csproj | 3 +- ....ComponentModel.TypeConverter.Tests.csproj | 1 + .../tests/System.ObjectModel.Tests.csproj | 1 + .../tests/DataContractSerializer.cs | 2 +- .../tests/System.Text.Encoding.Tests.csproj | 2 +- .../AsyncTaskMethodBuilderTests.cs | 4 --- src/libraries/tests.proj | 33 ++++++++++--------- .../src/ILLink/ILLink.Substitutions.wasm.xml | 3 ++ 10 files changed, 29 insertions(+), 24 deletions(-) diff --git a/eng/testing/tests.wasm.targets b/eng/testing/tests.wasm.targets index 8618fdb73e3c52..cdbc83af1209fd 100644 --- a/eng/testing/tests.wasm.targets +++ b/eng/testing/tests.wasm.targets @@ -24,6 +24,7 @@ <_XHarnessArgs Condition="'$(Scenario)' != 'WasmTestOnBrowser'">$(_XHarnessArgs) --engine=$(JSEngine) $(JSEngineArgs) --js-file=runtime.js <_XHarnessArgs Condition="'$(BrowserHost)' == 'windows'">$(_XHarnessArgs) --browser=chrome --browser-path=%HELIX_CORRELATION_PAYLOAD%\chrome-win\chrome.exe <_XHarnessArgs Condition="'$(IsFunctionalTest)' == 'true'" >$(_XHarnessArgs) --expected-exit-code=$(ExpectedExitCode) + <_XHarnessArgs >$(_XHarnessArgs) --timeout=3600 <_XHarnessArgs Condition="'$(WasmXHarnessArgs)' != ''" >$(_XHarnessArgs) $(WasmXHarnessArgs) <_AppArgs Condition="'$(IsFunctionalTest)' != 'true' and '$(Scenario)' != 'BuildWasmApps'">--run WasmTestRunner.dll $(AssemblyName).dll @@ -36,7 +37,7 @@ - <_AOTBuildCommand>dotnet msbuild publish/ProxyProjectForAOTOnHelix.proj /bl:$XHARNESS_OUT/AOTBuild.binlog + <_AOTBuildCommand>dotnet msbuild publish/ProxyProjectForAOTOnHelix.proj /v:n /bl:$XHARNESS_OUT/AOTBuild.binlog <_AOTBuildCommand Condition="'$(ContinuousIntegrationBuild)' != 'true'">$(_AOTBuildCommand) /p:RuntimeSrcDir=$(RepoRoot) /p:RuntimeConfig=$(Configuration) diff --git a/src/libraries/System.Collections/tests/System.Collections.Tests.csproj b/src/libraries/System.Collections/tests/System.Collections.Tests.csproj index 66f5dee8d5ba6d..17e189d2cb14a6 100644 --- a/src/libraries/System.Collections/tests/System.Collections.Tests.csproj +++ b/src/libraries/System.Collections/tests/System.Collections.Tests.csproj @@ -3,6 +3,7 @@ $(NetCoreAppCurrent) true true + $(WasmXHarnessArgs) --timeout=3600 diff --git a/src/libraries/System.ComponentModel.Primitives/tests/System.ComponentModel.Primitives.Tests.csproj b/src/libraries/System.ComponentModel.Primitives/tests/System.ComponentModel.Primitives.Tests.csproj index 924a2be2b6289b..20c0b2fc28020f 100644 --- a/src/libraries/System.ComponentModel.Primitives/tests/System.ComponentModel.Primitives.Tests.csproj +++ b/src/libraries/System.ComponentModel.Primitives/tests/System.ComponentModel.Primitives.Tests.csproj @@ -1,6 +1,7 @@ $(NetCoreAppCurrent) + true @@ -27,4 +28,4 @@ - \ No newline at end of file + diff --git a/src/libraries/System.ComponentModel.TypeConverter/tests/System.ComponentModel.TypeConverter.Tests.csproj b/src/libraries/System.ComponentModel.TypeConverter/tests/System.ComponentModel.TypeConverter.Tests.csproj index c710dd0aa1ae83..50cc66e3c721a7 100644 --- a/src/libraries/System.ComponentModel.TypeConverter/tests/System.ComponentModel.TypeConverter.Tests.csproj +++ b/src/libraries/System.ComponentModel.TypeConverter/tests/System.ComponentModel.TypeConverter.Tests.csproj @@ -5,6 +5,7 @@ 9.9.9.9 $(NetCoreAppCurrent) + true diff --git a/src/libraries/System.ObjectModel/tests/System.ObjectModel.Tests.csproj b/src/libraries/System.ObjectModel/tests/System.ObjectModel.Tests.csproj index 0adc822c3d1e8c..f1e71f7afc6cb2 100644 --- a/src/libraries/System.ObjectModel/tests/System.ObjectModel.Tests.csproj +++ b/src/libraries/System.ObjectModel/tests/System.ObjectModel.Tests.csproj @@ -1,6 +1,7 @@ $(NetCoreAppCurrent) + true - \ No newline at end of file + diff --git a/src/libraries/System.Threading.Tasks/tests/System.Runtime.CompilerServices/AsyncTaskMethodBuilderTests.cs b/src/libraries/System.Threading.Tasks/tests/System.Runtime.CompilerServices/AsyncTaskMethodBuilderTests.cs index d90c0685451f3a..a5c0955f68657b 100644 --- a/src/libraries/System.Threading.Tasks/tests/System.Runtime.CompilerServices/AsyncTaskMethodBuilderTests.cs +++ b/src/libraries/System.Threading.Tasks/tests/System.Runtime.CompilerServices/AsyncTaskMethodBuilderTests.cs @@ -642,10 +642,6 @@ public void AsyncTaskMethodBuilder_Completed_RemovedFromTracking() { RemoteExecutor.Invoke(() => { - // NOTE: This depends on private implementation details generally only used by the debugger. - // If those ever change, this test will need to be updated as well. - typeof(Task).GetField("s_asyncDebuggingEnabled", BindingFlags.NonPublic | BindingFlags.Static).SetValue(null, true); - for (int i = 0; i < 1000; i++) { static async Task YieldAsync(TaskCompletionSource tcs) => await tcs.Task; diff --git a/src/libraries/tests.proj b/src/libraries/tests.proj index 73f74bcc65bddd..dfa6607470a99d 100644 --- a/src/libraries/tests.proj +++ b/src/libraries/tests.proj @@ -262,31 +262,32 @@ - - - - - - - - + + + + + + + + - - - - + + + + - + + - + - - + + diff --git a/src/mono/System.Private.CoreLib/src/ILLink/ILLink.Substitutions.wasm.xml b/src/mono/System.Private.CoreLib/src/ILLink/ILLink.Substitutions.wasm.xml index 4ee64149df2f53..ba45a70ec00c1f 100644 --- a/src/mono/System.Private.CoreLib/src/ILLink/ILLink.Substitutions.wasm.xml +++ b/src/mono/System.Private.CoreLib/src/ILLink/ILLink.Substitutions.wasm.xml @@ -9,6 +9,9 @@ + + + From 4d47ab14dee63edf37e8d1a162b45d97c6c8e03e Mon Sep 17 00:00:00 2001 From: Ankit Jain Date: Wed, 4 Aug 2021 13:33:31 -0400 Subject: [PATCH 03/12] ignore IL2105 warnings --- eng/testing/tests.mobile.targets | 2 ++ src/libraries/tests.proj | 8 ++++---- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/eng/testing/tests.mobile.targets b/eng/testing/tests.mobile.targets index 3beee87d760495..ae0f9a2697a691 100644 --- a/eng/testing/tests.mobile.targets +++ b/eng/testing/tests.mobile.targets @@ -19,6 +19,8 @@ true $(NoWarn);IL2111 + + $(NoWarn);IL2105 false diff --git a/src/libraries/tests.proj b/src/libraries/tests.proj index dfa6607470a99d..12e9d848d2b359 100644 --- a/src/libraries/tests.proj +++ b/src/libraries/tests.proj @@ -278,10 +278,10 @@ - - - - + + + + From ec3007d6ea1e5fd78654cc77ee5ed836cdfc2bd3 Mon Sep 17 00:00:00 2001 From: Larry Ewing Date: Wed, 4 Aug 2021 13:06:19 -0500 Subject: [PATCH 04/12] Suppress more warnings --- eng/testing/tests.mobile.targets | 1 + src/libraries/tests.proj | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/eng/testing/tests.mobile.targets b/eng/testing/tests.mobile.targets index ae0f9a2697a691..523a16b2a21b41 100644 --- a/eng/testing/tests.mobile.targets +++ b/eng/testing/tests.mobile.targets @@ -21,6 +21,7 @@ $(NoWarn);IL2111 $(NoWarn);IL2105 + $(NoWarn);IL2103 false diff --git a/src/libraries/tests.proj b/src/libraries/tests.proj index e8af91e76894dd..0b5d1043e56e6f 100644 --- a/src/libraries/tests.proj +++ b/src/libraries/tests.proj @@ -284,13 +284,13 @@ - + - + - + From 171b131f8acce751f49b1ed701888c3423d1fdae Mon Sep 17 00:00:00 2001 From: Larry Ewing Date: Wed, 4 Aug 2021 13:09:49 -0500 Subject: [PATCH 05/12] Remove substitution that is no longer required --- .../src/ILLink/ILLink.Substitutions.wasm.xml | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/mono/System.Private.CoreLib/src/ILLink/ILLink.Substitutions.wasm.xml b/src/mono/System.Private.CoreLib/src/ILLink/ILLink.Substitutions.wasm.xml index ba45a70ec00c1f..4ee64149df2f53 100644 --- a/src/mono/System.Private.CoreLib/src/ILLink/ILLink.Substitutions.wasm.xml +++ b/src/mono/System.Private.CoreLib/src/ILLink/ILLink.Substitutions.wasm.xml @@ -9,9 +9,6 @@ - - - From 30bfab80474c263190eeea1c0ff5862e4e4f030a Mon Sep 17 00:00:00 2001 From: Larry Ewing Date: Wed, 4 Aug 2021 13:32:13 -0500 Subject: [PATCH 06/12] Also suppress IL2025 --- eng/testing/tests.mobile.targets | 1 + 1 file changed, 1 insertion(+) diff --git a/eng/testing/tests.mobile.targets b/eng/testing/tests.mobile.targets index 523a16b2a21b41..84131344317969 100644 --- a/eng/testing/tests.mobile.targets +++ b/eng/testing/tests.mobile.targets @@ -22,6 +22,7 @@ $(NoWarn);IL2105 $(NoWarn);IL2103 + $(NoWarn);IL2025 false From fdf3705fd4f189b96c56187f2cd6669cce2f872b Mon Sep 17 00:00:00 2001 From: Larry Ewing Date: Thu, 5 Aug 2021 16:36:30 -0500 Subject: [PATCH 07/12] Remove System.Dynamic.Runtime/tests/System.Dynamic.Runtime.Tests.csproj exclusion after linker fix --- src/libraries/tests.proj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libraries/tests.proj b/src/libraries/tests.proj index 0b5d1043e56e6f..39bace7bb4b244 100644 --- a/src/libraries/tests.proj +++ b/src/libraries/tests.proj @@ -287,7 +287,7 @@ - + From 9b339c52d0c745afa7324b2b3e649a792ca3a528 Mon Sep 17 00:00:00 2001 From: Larry Ewing Date: Fri, 6 Aug 2021 15:37:48 -0500 Subject: [PATCH 08/12] Flag failing AOT tests --- .../tests/AggregationManagerTests.cs | 1 + .../tests/Lambda/LambdaSubtractNullableTests.cs | 1 + 2 files changed, 2 insertions(+) diff --git a/src/libraries/System.Diagnostics.DiagnosticSource/tests/AggregationManagerTests.cs b/src/libraries/System.Diagnostics.DiagnosticSource/tests/AggregationManagerTests.cs index cd26bc55e8caea..3fe75ca05c738f 100644 --- a/src/libraries/System.Diagnostics.DiagnosticSource/tests/AggregationManagerTests.cs +++ b/src/libraries/System.Diagnostics.DiagnosticSource/tests/AggregationManagerTests.cs @@ -31,6 +31,7 @@ public void GetNoLabels() } [Fact] + [ActiveIssue("https://github.com/dotnet/runtime/issues/57003", typeof(PlatformDetection), nameof(PlatformDetection.IsBrowser), nameof(PlatformDetection.IsMonoAOT))] public void GetOneLabel() { AggregatorStore store = new AggregatorStore(() => new LastValue()); diff --git a/src/libraries/System.Linq.Expressions/tests/Lambda/LambdaSubtractNullableTests.cs b/src/libraries/System.Linq.Expressions/tests/Lambda/LambdaSubtractNullableTests.cs index 4fa166200cbe92..121ae5bd170fe3 100644 --- a/src/libraries/System.Linq.Expressions/tests/Lambda/LambdaSubtractNullableTests.cs +++ b/src/libraries/System.Linq.Expressions/tests/Lambda/LambdaSubtractNullableTests.cs @@ -62,6 +62,7 @@ public static void LambdaSubtractNullableIntTest(bool useInterpreter) } [Theory, ClassData(typeof(CompilationTypes))] + [ActiveIssue("https://github.com/dotnet/runtime/issues/57004", typeof(PlatformDetection), nameof(PlatformDetection.IsBrowser), nameof(PlatformDetection.IsMonoAOT))] public static void LambdaSubtractNullableLongTest(bool useInterpreter) { long?[] values = new long?[] { null, 0, 1, -1, long.MinValue, long.MaxValue }; From 4beb5a909c78a9a0f6ad20de9bda6aa2607a3db1 Mon Sep 17 00:00:00 2001 From: Larry Ewing Date: Mon, 23 Aug 2021 10:49:27 -0500 Subject: [PATCH 09/12] Update DataContractSerializer.cs --- .../tests/DataContractSerializer.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libraries/System.Runtime.Serialization.Xml/tests/DataContractSerializer.cs b/src/libraries/System.Runtime.Serialization.Xml/tests/DataContractSerializer.cs index 965d268b1be814..038b9130d4dc8b 100644 --- a/src/libraries/System.Runtime.Serialization.Xml/tests/DataContractSerializer.cs +++ b/src/libraries/System.Runtime.Serialization.Xml/tests/DataContractSerializer.cs @@ -1080,7 +1080,7 @@ public static void DCS_WithListOfXElement() } [Fact] -// [ActiveIssue("https://github.com/dotnet/runtime/issues/51679", typeof(PlatformDetection), nameof(PlatformDetection.IsBrowser), nameof(PlatformDetection.IsMonoAOT))] + [ActiveIssue("https://github.com/dotnet/runtime/issues/51679", typeof(PlatformDetection), nameof(PlatformDetection.IsBrowser), nameof(PlatformDetection.IsMonoAOT))] public static void DCS_DerivedTypeWithDifferentOverrides() { var x = new DerivedTypeWithDifferentOverrides() { Name1 = "Name1", Name2 = "Name2", Name3 = "Name3", Name4 = "Name4", Name5 = "Name5" }; From 9ff12cea1d6245df04c0fcde4766bdee435ceaf0 Mon Sep 17 00:00:00 2001 From: Larry Ewing Date: Wed, 25 Aug 2021 10:27:26 -0500 Subject: [PATCH 10/12] Disable GetMultiRank3Start on AOT --- .../tests/AggregationManagerTests.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/libraries/System.Diagnostics.DiagnosticSource/tests/AggregationManagerTests.cs b/src/libraries/System.Diagnostics.DiagnosticSource/tests/AggregationManagerTests.cs index 3fe75ca05c738f..a29931972eb503 100644 --- a/src/libraries/System.Diagnostics.DiagnosticSource/tests/AggregationManagerTests.cs +++ b/src/libraries/System.Diagnostics.DiagnosticSource/tests/AggregationManagerTests.cs @@ -562,6 +562,7 @@ public void GetMultiRank2Start() } [Fact] + [ActiveIssue("https://github.com/dotnet/runtime/issues/57003", typeof(PlatformDetection), nameof(PlatformDetection.IsBrowser), nameof(PlatformDetection.IsMonoAOT))] public void GetMultiRank3Start() { AggregatorStore store = new AggregatorStore(() => new LastValue()); From d177ddd81bcacb37c3658b667c006cd97857f182 Mon Sep 17 00:00:00 2001 From: Larry Ewing Date: Wed, 25 Aug 2021 13:12:48 -0500 Subject: [PATCH 11/12] Exclude GetMultiRank4Start too --- .../tests/AggregationManagerTests.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/libraries/System.Diagnostics.DiagnosticSource/tests/AggregationManagerTests.cs b/src/libraries/System.Diagnostics.DiagnosticSource/tests/AggregationManagerTests.cs index a29931972eb503..cc3dbdbd2bd7c2 100644 --- a/src/libraries/System.Diagnostics.DiagnosticSource/tests/AggregationManagerTests.cs +++ b/src/libraries/System.Diagnostics.DiagnosticSource/tests/AggregationManagerTests.cs @@ -620,6 +620,7 @@ public void GetMultiRank3Start() } [Fact] + [ActiveIssue("https://github.com/dotnet/runtime/issues/57003", typeof(PlatformDetection), nameof(PlatformDetection.IsBrowser), nameof(PlatformDetection.IsMonoAOT))] public void GetMultiRank4Start() { AggregatorStore store = new AggregatorStore(() => new LastValue()); From 891e23250c7537db910d9b34c3fcd0640f03026a Mon Sep 17 00:00:00 2001 From: Larry Ewing Date: Thu, 26 Aug 2021 14:31:10 -0500 Subject: [PATCH 12/12] Mark more tests as active issue --- .../tests/AggregationManagerTests.cs | 4 ++++ .../tests/DiagnosticSourceEventSourceBridgeTests.cs | 1 + 2 files changed, 5 insertions(+) diff --git a/src/libraries/System.Diagnostics.DiagnosticSource/tests/AggregationManagerTests.cs b/src/libraries/System.Diagnostics.DiagnosticSource/tests/AggregationManagerTests.cs index cc3dbdbd2bd7c2..e0dc4ada85d1b0 100644 --- a/src/libraries/System.Diagnostics.DiagnosticSource/tests/AggregationManagerTests.cs +++ b/src/libraries/System.Diagnostics.DiagnosticSource/tests/AggregationManagerTests.cs @@ -6,6 +6,7 @@ namespace System.Diagnostics.Metrics.Tests { + [ActiveIssue("https://github.com/dotnet/runtime/issues/57003", typeof(PlatformDetection), nameof(PlatformDetection.IsBrowser), nameof(PlatformDetection.IsMonoAOT))] public class AggregationStoreTests { [Fact] @@ -691,6 +692,7 @@ public void AggregatorLimitReached_NoLabel() } [Fact] + [ActiveIssue("https://github.com/dotnet/runtime/issues/57003", typeof(PlatformDetection), nameof(PlatformDetection.IsBrowser), nameof(PlatformDetection.IsMonoAOT))] public void AggregatorLimitReached_WithLabels() { AggregatorStore store = new AggregatorStore(() => null); @@ -703,6 +705,7 @@ public void AggregatorLimitReached_WithLabels() } [Fact] + [ActiveIssue("https://github.com/dotnet/runtime/issues/57003", typeof(PlatformDetection), nameof(PlatformDetection.IsBrowser), nameof(PlatformDetection.IsMonoAOT))] public void AggregatorLimitReached_Multisize_NoLabel() { int count = 1; @@ -728,6 +731,7 @@ public void AggregatorLimitReached_Multisize_NoLabel() } [Fact] + [ActiveIssue("https://github.com/dotnet/runtime/issues/57003", typeof(PlatformDetection), nameof(PlatformDetection.IsBrowser), nameof(PlatformDetection.IsMonoAOT))] public void AggregatorLimitReached_Multisize_TwoLabel() { int count = 1; diff --git a/src/libraries/System.Diagnostics.DiagnosticSource/tests/DiagnosticSourceEventSourceBridgeTests.cs b/src/libraries/System.Diagnostics.DiagnosticSource/tests/DiagnosticSourceEventSourceBridgeTests.cs index c6f16f634022c5..2f93ac4cdf178e 100644 --- a/src/libraries/System.Diagnostics.DiagnosticSource/tests/DiagnosticSourceEventSourceBridgeTests.cs +++ b/src/libraries/System.Diagnostics.DiagnosticSource/tests/DiagnosticSourceEventSourceBridgeTests.cs @@ -1302,6 +1302,7 @@ private void AssertActivityMatchesEvent(Activity a, DiagnosticSourceEvent e, boo } [Fact] + [ActiveIssue("https://github.com/dotnet/runtime/issues/57588", typeof(PlatformDetection), nameof(PlatformDetection.IsBuiltWithAggressiveTrimming), nameof(PlatformDetection.IsBrowser))] public void NoExceptionThrownWhenProcessingStaticActivityProperties() { // Ensures that no exception is thrown when static properties on the Activity type are passed to EventListener.