From: Steve Pfister Date: Fri, 29 Oct 2021 18:33:42 +0000 (-0700) Subject: Alter amount of tests that run per PR for mono mobile configurations (#60727) X-Git-Tag: accepted/tizen/unified/riscv/20231226.055536~12450 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=0cff4a2d79bf207b6da65549ee9a9bb50a097e53;p=platform%2Fupstream%2Fdotnet%2Fruntime.git Alter amount of tests that run per PR for mono mobile configurations (#60727) In an effort to better utilize CI resources, this change will only run the System.Runtime library test per PR for Android and Wasm configurations. The full libraries and runtime tests will move to only run on the post-PR validation pipeline. The summary of changes are: - System.Runtime tests will only trigger per PR for Android x86/x64 and Wasm AOT / EAT - All mono runtime builds will only run on the post PR validation build (rolling build) - WasmBuildTests will only run on the post PR validation build (rolling build) - Wasm on Windows will only build Note: iOS/tvOS/MacCatalyst are excluded until #59503 lands --- diff --git a/eng/pipelines/common/xplat-setup.yml b/eng/pipelines/common/xplat-setup.yml index f12f781..85c27e6 100644 --- a/eng/pipelines/common/xplat-setup.yml +++ b/eng/pipelines/common/xplat-setup.yml @@ -47,6 +47,12 @@ jobs: - name: _BuildConfig value: $(buildConfigUpper) + + - name: _runSmokeTestsOnlyArg + ${{ if ne(parameters.variables['isFullMatrix'], true) }}: + value: /p:RunSmokeTestsOnly=true + ${{ if eq(parameters.variables['isFullMatrix'], true) }}: + value: '' - ${{ if or(eq(parameters.osGroup, 'windows'), eq(parameters.hostedOs, 'windows')) }}: - name: archiveExtension diff --git a/eng/pipelines/runtime-staging.yml b/eng/pipelines/runtime-staging.yml index 5235da8..b9c723e 100644 --- a/eng/pipelines/runtime-staging.yml +++ b/eng/pipelines/runtime-staging.yml @@ -212,7 +212,7 @@ jobs: jobParameters: testGroup: innerloop nameSuffix: AllSubsets_Mono - buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true + buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true $(_runSmokeTestsOnlyArg) timeoutInMinutes: 180 condition: >- or( @@ -249,7 +249,7 @@ jobs: jobParameters: testGroup: innerloop nameSuffix: AllSubsets_Mono - buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true + buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true $(_runSmokeTestsOnlyArg) timeoutInMinutes: 180 condition: >- or( @@ -257,8 +257,7 @@ jobs: 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 + # Device tests are rolling build only ${{ if eq(variables['isFullMatrix'], true) }}: # extra steps, run tests extraStepsTemplate: /eng/pipelines/libraries/helix.yml @@ -320,7 +319,7 @@ jobs: buildConfig: Release runtimeFlavor: mono platforms: - - Android_x64 + - Android_x64 variables: - ${{ if and(eq(variables['System.TeamProject'], 'public'), eq(variables['Build.Reason'], 'PullRequest')) }}: - name: _HelixSource @@ -343,11 +342,13 @@ jobs: 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) + # NOTE: Per PR test execution is not recommended for runtime tests + ${{ 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) # # Build the whole product using Mono and run runtime tests with the JIT. @@ -359,7 +360,7 @@ jobs: buildConfig: Release runtimeFlavor: mono platforms: - - iOSSimulator_x64 + - iOSSimulator_x64 variables: - ${{ if and(eq(variables['System.TeamProject'], 'public'), eq(variables['Build.Reason'], 'PullRequest')) }}: - name: _HelixSource @@ -398,7 +399,7 @@ jobs: buildConfig: Release runtimeFlavor: mono platforms: - - Android_arm64 + - Android_arm64 variables: - ${{ if and(eq(variables['System.TeamProject'], 'public'), eq(variables['Build.Reason'], 'PullRequest')) }}: - name: _HelixSource @@ -457,20 +458,21 @@ jobs: 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)) + ${{ if 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 diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 77b1cfb..fefc647 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -292,7 +292,7 @@ jobs: jobParameters: testGroup: innerloop nameSuffix: AllSubsets_Mono - buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true + buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true $(_runSmokeTestsOnlyArg) timeoutInMinutes: 180 condition: >- or( @@ -305,6 +305,7 @@ jobs: extraStepsParameters: creator: dotnet-bot testRunNamePrefixSuffix: Mono_$(_BuildConfig) + extraHelixArguments: $(_runSmokeTestsOnlyArg) scenarios: - normal - wasmtestonbrowser @@ -324,7 +325,9 @@ jobs: buildConfig: Release runtimeFlavor: mono platforms: - - Browser_wasm + # BuildWasmApps should only happen on the rolling build. No need to duplicate the build on PR's + - ${{ if eq(variables['isFullMatrix'], true) }}: + - Browser_wasm variables: # map dependencies variables to local variables - name: monoContainsChange @@ -374,7 +377,7 @@ jobs: 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 + buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true $(_runSmokeTestsOnlyArg) /p:EnableAggressiveTrimming=true /p:BuildAOTTestsOnHelix=true /p:RunAOTCompilation=false timeoutInMinutes: 180 condition: >- or( @@ -387,7 +390,7 @@ jobs: extraStepsParameters: creator: dotnet-bot testRunNamePrefixSuffix: Mono_$(_BuildConfig) - extraHelixArguments: /p:NeedsToBuildWasmAppsOnHelix=true + extraHelixArguments: /p:NeedsToBuildWasmAppsOnHelix=true $(_runSmokeTestsOnlyArg) scenarios: - normal condition: >- @@ -416,7 +419,7 @@ jobs: jobParameters: testGroup: innerloop nameSuffix: AllSubsets_Mono_AOT - buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:EnableAggressiveTrimming=true /p:BuildAOTTestsOnHelix=true /p:RunAOTCompilation=true + buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true $(_runSmokeTestsOnlyArg) /p:EnableAggressiveTrimming=true /p:BuildAOTTestsOnHelix=true /p:RunAOTCompilation=true timeoutInMinutes: 180 condition: >- or( @@ -429,7 +432,7 @@ jobs: extraStepsParameters: creator: dotnet-bot testRunNamePrefixSuffix: Mono_$(_BuildConfig) - extraHelixArguments: /p:NeedsToBuildWasmAppsOnHelix=true + extraHelixArguments: /p:NeedsToBuildWasmAppsOnHelix=true $(_runSmokeTestsOnlyArg) scenarios: - normal condition: >- @@ -488,10 +491,8 @@ jobs: 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)) + eq(variables['isFullMatrix'], true) + # NOTE: Per PR test execution is not recommended for mobile runtime tests # extra steps, run tests extraStepsTemplate: /eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml extraStepsParameters: @@ -526,10 +527,8 @@ jobs: 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)) + eq(variables['isFullMatrix'], true) + # NOTE: Per PR test execution is not recommended for mobile runtime tests # extra steps, run tests extraStepsTemplate: /eng/pipelines/common/templates/runtimes/android-runtime-and-send-to-helix.yml extraStepsParameters: @@ -1042,10 +1041,7 @@ jobs: 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)) + eq(variables['isFullMatrix'], true) # # Mono CoreCLR runtime Test executions using live libraries in interpreter mode @@ -1066,10 +1062,7 @@ jobs: 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)) + eq(variables['isFullMatrix'], true) # # Mono CoreCLR runtime Test executions using live libraries and LLVM AOT # Only when Mono is changed @@ -1091,10 +1084,7 @@ jobs: 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)) + eq(variables['isFullMatrix'], true) # # Mono CoreCLR runtime Test executions using live libraries and LLVM Full AOT @@ -1117,10 +1107,7 @@ jobs: liveRuntimeBuildConfig: release runtimeVariant: llvmfullaot condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isFullMatrix'], true)) + eq(variables['isFullMatrix'], true) # # Libraries Release Test Execution against a release mono runtime. @@ -1288,4 +1275,4 @@ jobs: or( eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(variables['isFullMatrix'], true)) + eq(variables['isFullMatrix'], true)) \ No newline at end of file diff --git a/src/libraries/sendtohelixhelp.proj b/src/libraries/sendtohelixhelp.proj index 90baea4..5eda5fb 100644 --- a/src/libraries/sendtohelixhelp.proj +++ b/src/libraries/sendtohelixhelp.proj @@ -392,7 +392,7 @@ - + diff --git a/src/libraries/tests.proj b/src/libraries/tests.proj index 8d09437..f2fdeeb 100644 --- a/src/libraries/tests.proj +++ b/src/libraries/tests.proj @@ -292,7 +292,11 @@ - + + + + + @@ -351,7 +355,7 @@ BuildInParallel="false" /> - + - +