From 2a99e18eedabcf1add064c099da59d9301ce45e0 Mon Sep 17 00:00:00 2001 From: Jakob Botsch Nielsen Date: Tue, 24 May 2022 10:43:13 +0200 Subject: [PATCH] Switch checked coreclr + libraries tests configs around in PRs (#69180) We previously ran checked coreclr + libraries tests only with the libraries tests in the following configuration: # ________________________________________ # | Platform | PR | Rolling | # | ---------------- | ------- | ------- | # | windows-x86 | Debug | Release | # | linux-musl-x64 | Debug | Release | # | OSX-x64 | Debug | Release | # | linux-arm | Debug | Release | # | linux-musl-arm | Debug | Release | # | linux-musl-arm64 | Debug | Release | # | linux-x64 | Debug | Release | # | windows-x64 | Debug | Release | This change swaps out linux-arm for linux-arm64 and changes the bottom 4 configurations to run in release on PRs, making the matrix # ________________________________________ # | Platform | PR | Rolling | # | ---------------- | ------- | ------- | # | windows-x86 | Debug | Release | # | linux-musl-x64 | Debug | Release | # | OSX-x64 | Debug | Release | # | linux-arm64 | Debug | Release | # | linux-musl-arm | Release | Release | # | linux-musl-arm64 | Release | Release | # | linux-x64 | Release | Release | # | windows-x64 | Release | Release | The idea is to increase the variety of testing done in PRs. --- eng/pipelines/runtime.yml | 62 +++++++++++++++++++++++++++------------ 1 file changed, 43 insertions(+), 19 deletions(-) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index d23cb3c7550a..fd1904a6f875 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -738,15 +738,11 @@ jobs: - OSX_x64 - windows_x64 - FreeBSD_x64 - - ${{ if eq(variables['isRollingBuild'], false) }}: - # we need to build windows_x86 for debug on PRs in order to test - # against a checked runtime when the PR contains coreclr changes - - windows_x86 jobParameters: testScope: innerloop # -# Libraries Build that only run when coreclr is changed +# Libraries debug build that only runs when coreclr is changed # Only do this on PR builds since we use the Release builds for these test runs in CI # and those are already built above # @@ -756,9 +752,23 @@ jobs: jobTemplate: /eng/pipelines/libraries/build-job.yml buildConfig: Debug platforms: - - Linux_arm - - Linux_musl_arm - - Linux_musl_arm64 + - windows_x86 + jobParameters: + condition: >- + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true) + +# +# Libraries release build that only runs when coreclr is changed in PRs +# We need these for checked coreclr + release libraries tests runs. +# +- ${{ if eq(variables['isRollingBuild'], false) }}: + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/build-job.yml + buildConfig: Release + platforms: + - Linux_x64 + - windows_x64 jobParameters: condition: >- eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true) @@ -803,12 +813,12 @@ jobs: parameters: buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} platforms: - - Linux_arm - Linux_musl_arm - Linux_musl_arm64 - windows_x86 - windows_arm - windows_arm64 + - Linux_arm jobParameters: liveRuntimeBuildConfig: release liveLibrariesBuildConfig: Release @@ -1115,8 +1125,23 @@ jobs: eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), eq(variables['isRollingBuild'], true)) +# The next three jobs run checked coreclr + libraries tests. +# The matrix looks like the following, where the right columns specify which configurations +# the libraries tests are built in. +# ________________________________________ +# | Platform | PR | Rolling | +# | ---------------- | ------- | ------- | +# | linux-arm64 | Debug | Release | +# | windows-x86 | Debug | Release | +# | linux-musl-x64 | Debug | Release | +# | OSX-x64 | Debug | Release | +# | linux-musl-arm | Release | Release | +# | linux-musl-arm64 | Release | Release | +# | linux-x64 | Release | Release | +# | windows-x64 | Release | Release | + # -# Libraries Test Execution against a checked runtime +# Debug (PR) / Release (rolling) Libraries Test Execution against a checked runtime # Only when the PR contains a coreclr change # - template: /eng/pipelines/common/platform-matrix.yml @@ -1124,11 +1149,9 @@ jobs: jobTemplate: /eng/pipelines/libraries/run-test-job.yml buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} platforms: - # - windows_arm return this when https://github.com/dotnet/runtime/issues/1097 is fixed. - - Linux_arm - - Linux_musl_arm - - Linux_musl_arm64 + - Linux_arm64 - windows_x86 + - Linux_musl_x64 helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml helixQueueGroup: libraries jobParameters: @@ -1140,17 +1163,18 @@ jobs: eq(variables['isRollingBuild'], true)) # -# Libraries Test Execution against a checked runtime +# Release 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 }} + buildConfig: Release platforms: - - windows_x64 + - Linux_musl_arm + - Linux_musl_arm64 - Linux_x64 - - Linux_musl_x64 + - windows_x64 helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml helixQueueGroup: libraries jobParameters: @@ -1176,4 +1200,4 @@ jobs: or( eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(variables['isRollingBuild'], true)) + eq(variables['isRollingBuild'], true)) \ No newline at end of file