From 6c5c0be523c87f7dcf85014b1be29f2cb634b84b Mon Sep 17 00:00:00 2001 From: David Wrighton Date: Wed, 25 Mar 2026 17:14:24 -0700 Subject: [PATCH] Scope installer tests to installer changes, keep osx_arm64 for coreclr Change Installer_Build_And_Test job conditions from non_mono_and_wasm.containsChange to installer.containsChange for most platforms. Previously, installer helix tests (5 platforms) ran on any non-mono change including pure coreclr or libraries changes. Split osx_arm64 into its own block with a broader condition that also includes coreclr.containsChange, per Elinor Fung's guidance that Mac ARM64 is most likely to catch single-file issues from coreclr changes. - windows_x86, osx_x64: installer OR rolling only - windows_x64, linux_x64: installer OR rolling only - osx_arm64: coreclr OR installer OR rolling Saves 4 helix jobs on coreclr-only PRs (was 5, now 1 remains). Saves 5 helix jobs on libraries-only PRs. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- eng/pipelines/runtime.yml | 41 ++++++++++++++++++++++++++++++++++----- 1 file changed, 36 insertions(+), 5 deletions(-) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 235d4387e76cb2..85c3b42f5e78a3 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -1464,8 +1464,8 @@ extends: # # 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. + # Only when installer-relevant paths change (or on rolling builds). + # osx_arm64 also runs on coreclr changes to catch single-file issues. # - template: /eng/pipelines/common/platform-matrix.yml parameters: @@ -1495,7 +1495,7 @@ extends: creator: dotnet-bot condition: or( - eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true), + eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), eq(variables['isRollingBuild'], true)) - template: /eng/pipelines/common/platform-matrix.yml @@ -1504,7 +1504,6 @@ extends: buildConfig: release platforms: - windows_x64 - - osx_arm64 - linux_x64 helixQueuesTemplate: /eng/pipelines/installer/helix-queues-setup.yml jobParameters: @@ -1527,7 +1526,39 @@ extends: creator: dotnet-bot condition: or( - eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true), + eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + # osx_arm64 installer tests also run on coreclr changes to catch single-file issues + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: release + platforms: + - osx_arm64 + helixQueuesTemplate: /eng/pipelines/installer/helix-queues-setup.yml + jobParameters: + nameSuffix: Installer_Build_And_Test + buildArgs: -s host+packs -c $(_BuildConfig) -lc ${{ variables.debugOnPrReleaseOnRolling }} -rc Release + dependsOnGlobalBuilds: + - nameSuffix: CoreCLR_Libraries + buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + preBuildSteps: + - template: /eng/pipelines/common/download-artifact-step.yml + parameters: + artifactName: CoreCLR_Libraries_BuildArtifacts_$(osGroup)$(osSubgroup)_$(archType)_$(debugOnPrReleaseOnRolling) + artifactFileName: CoreCLR_Libraries_BuildArtifacts_$(osGroup)$(osSubgroup)_$(archType)_$(debugOnPrReleaseOnRolling)$(archiveExtension) + unpackFolder: $(Build.SourcesDirectory)/artifacts/bin + displayName: 'unified artifacts' + timeoutInMinutes: 150 + postBuildSteps: + - template: /eng/pipelines/installer/helix.yml + parameters: + creator: dotnet-bot + condition: + or( + eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), eq(variables['isRollingBuild'], true)) #