Skip to content

Scope installer helix tests to installer changes (keep osx_arm64 for coreclr)#126140

Open
davidwrighton wants to merge 2 commits intodotnet:mainfrom
davidwrighton:reduce-installer-tests
Open

Scope installer helix tests to installer changes (keep osx_arm64 for coreclr)#126140
davidwrighton wants to merge 2 commits intodotnet:mainfrom
davidwrighton:reduce-installer-tests

Conversation

@davidwrighton
Copy link
Copy Markdown
Member

@davidwrighton davidwrighton commented Mar 26, 2026

Note

This PR was generated with the assistance of GitHub Copilot.

Summary

Scope the Installer_Build_And_Test helix jobs to only run when installer-relevant paths change, instead of on any non-mono/non-wasm change. Previously these 5 helix jobs ran on every coreclr and libraries PR even though installer tests (host+packs) are unaffected by JIT, GC, or library code changes.

Exception: osx_arm64 retains a broader trigger that also includes coreclr.containsChange, per @elinor-fung's guidance that Mac ARM64 installer tests are most likely to catch single-file issues from coreclr changes.

Changes

Split the second Installer_Build_And_Test block into two:

Block 1 (windows_x86, osx_x64, windows_x64, linux_x64):

  • Condition changed from non_mono_and_wasm.containsChange to installer.containsChange
  • Still runs on rolling/CI builds

Block 2 (osx_arm64):

  • Condition: coreclr.containsChange OR installer.containsChange OR rolling
  • Continues to catch single-file issues on coreclr changes

Impact

PR Type Before After Savings
CoreCLR-only 5 installer helix jobs 1 (osx_arm64 only) 4 jobs
Libraries-only 5 installer helix jobs 0 5 jobs
Installer changes 5 installer helix jobs 5 unchanged
Rolling/CI 5 installer helix jobs 5 unchanged

The installer path subset covers: src/installer/, src/native/corehost/, general eng/ infrastructure — everything except coreclr, mono, libraries, tests, and tools. It is an existing subset already used by 20+ other job conditions in the pipeline.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR narrows when the Installer_Build_And_Test Helix jobs run in eng/pipelines/runtime.yml, so installer validation is triggered primarily by installer-relevant path changes, while keeping osx_arm64 installer tests running on CoreCLR changes to help catch single-file issues.

Changes:

  • Updated installer Helix job conditions from non_mono_and_wasm.containsChange to installer.containsChange for most installer platforms.
  • Split out osx_arm64 installer testing into its own block, triggered by coreclr.containsChange OR installer.containsChange OR rolling builds.
  • Removed osx_arm64 from the general (windows_x64/linux_x64) installer job platform list.

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>
@davidwrighton davidwrighton force-pushed the reduce-installer-tests branch from 68b6089 to 6c5c0be Compare March 26, 2026 21:06
Copilot AI review requested due to automatic review settings March 27, 2026 22:53
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 1 out of 1 changed files in this pull request and generated 1 comment.

Comment on lines +1529 to +1539
# 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
Copy link

Copilot AI Mar 27, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The new osx_arm64 installer job block largely duplicates the preceding Installer_Build_And_Test configuration (same buildArgs, artifact download, helix step, etc.). This increases the chance the blocks drift over time (e.g., one gets updated and the other doesn’t). Consider factoring the shared jobParameters into a small shared template (or otherwise centralizing the common parameters) so only the condition/platform list differs.

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants