Skip to content

Conversation

Copy link
Contributor

Copilot AI commented Dec 1, 2025

Apple Silicon (ARM64) is now the primary macOS architecture. This PR swaps osx-x64 and osx-arm64 in the default CI matrix so that osx-arm64 runs libraries debug tests by default, while osx-x64 falls back to priority 0 tests only.

Changes to eng/pipelines/runtime.yml

Build jobs:

  • CoreCLR_Libraries with libs.tests: osx_x64osx_arm64
  • CoreCLR_Libraries without tests (installer deps): osx_arm64osx_x64
  • Libraries_CheckedCoreCLR with libs.tests: osx_x64osx_arm64
  • Libraries_CheckedCoreCLR without tests: osx_arm64osx_x64

Test execution jobs:

  • CoreCLR runtime tests main job: osx_x64osx_arm64
  • Libraries debug test execution: osx_x64osx_arm64

Dependency updates:

  • Installer_Build_And_Test artifact dependencies swapped to match new build configurations
  • osx_x64 condition updated from AppleSilicon trigger to standard coreclr change detection

The platform matrix comment table updated to reflect osx-arm64 in the debug test configuration (using lowercase RID format for consistency).

Original prompt

This section details on the original issue you should resolve

<issue_title>Switch Default CI Focus to osx-arm64 for CoreCLR PRs</issue_title>
<issue_description>In the default CI set that runs automatically when a change is made to src/coreclr, only priority 0 test legs are executed for osx-arm64. Meanwhile, for osx-x64, the libraries debug tests are run by default alongside the priority 0 tests. Given that Apple has moved to ARM64 (Apple Silicon) as the primary architecture, it seems logical to prioritize osx-arm64 in the default CI, rather than osx-x64.

Currently, we can manually trigger the osx-arm64 libraries debug tests if needed, but they are not part of the automatic/default test set.

If expanding the CI set for osx-arm64 leads to longer test cycles, it may be worth considering the trade-off between testing time and coverage, or potentially rebalancing the priority of osx-x64 tests.</issue_description>

Comments on the Issue (you are @copilot in this section)


💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.

# | windows-x86 | Debug | Release |
# | linux-musl-x64 | Debug | Release |
# | OSX-x64 | Debug | Release |
# | OSX-arm64 | Debug | Release |
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
# | OSX-arm64 | Debug | Release |
# | osx-arm64 | Debug | Release |

Seems like this all the RIDs should be lower-case.

Copy link
Member

Choose a reason for hiding this comment

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

@copilot please fix

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Fixed in fee3e56. Changed OSX-arm64 to osx-arm64 to match the lowercase convention used by other RIDs in the table.

@richlander
Copy link
Member

Interesting. This seems like a change we should have made a while ago! Nice catch/change.

@agocke agocke marked this pull request as ready for review December 4, 2025 20:00
Copilot AI review requested due to automatic review settings December 4, 2025 20:00
@agocke agocke requested review from jkotas and removed request for agocke December 4, 2025 20:02
Copilot finished reviewing on behalf of agocke December 4, 2025 20:02
Copy link
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 switches the default CI focus from osx-x64 to osx-arm64 for CoreCLR PRs, reflecting Apple Silicon (ARM64) as the primary macOS architecture. The changes swap platform configurations so that osx-arm64 now runs libraries debug tests by default, while osx-x64 falls back to priority 0 tests only.

Key Changes:

  • Swapped osx_x64 and osx_arm64 in build job platform matrices for CoreCLR_Libraries and Libraries_CheckedCoreCLR configurations
  • Updated CoreCLR runtime test execution and libraries test execution jobs to prioritize osx-arm64
  • Changed condition triggers for osx_x64 jobs from coreclr_AppleSilicon to standard coreclr change detection

Copilot AI requested a review from agocke December 4, 2025 20:23
Copilot finished work on behalf of agocke December 4, 2025 20:23
@am11
Copy link
Member

am11 commented Dec 4, 2025

We should delete this line

so osx-arm64 doesn't get -cross on build line.

Interesting. This seems like a change we should have made a while ago! Nice catch/change.

One of the reason was Azure DevOps wasn't providing Microsoft-Hosted macOS arm64 images https://learn.microsoft.com/azure/devops/release-notes/roadmap/macos-agents-apple-silicon (while GitHub was). This changed a few weeks ago when they started previewing arm64 images: https://devblogs.microsoft.com/devops/upcoming-updates-for-azure-pipelines-agents-images/#mac-os.

cc @steveisok

@jkotas
Copy link
Member

jkotas commented Dec 4, 2025

If the runtime is complete broken on osx-x64 (e.g. "Hello world" does not work), where is the first place we are going to find out after this change?

(just asking to have a better idea how things are setup)

platforms:
- windows_x86
- osx_arm64
- osx_x64
Copy link
Member

Choose a reason for hiding this comment

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

Also here. These are the host tests which will always be built for x64

@am11
Copy link
Member

am11 commented Dec 4, 2025

We should delete this line

cherry-pick am11@63d4ae8, so we can be sure it's picking up the correct machine.

@agocke
Copy link
Member

agocke commented Dec 4, 2025

Actually @am11 this is just testing, not build, so I don't think this is necessary yet. When we start using macos ARM64 machines for build, then it will be.

@agocke agocke force-pushed the copilot/switch-ci-focus-to-osx-arm64 branch from 9b974e0 to fee3e56 Compare December 4, 2025 22:32
@am11
Copy link
Member

am11 commented Dec 4, 2025

@agocke, it is updating the build+test jobs. Those build jobs should not use -cross arg when host==target because with -cross arg, it picks up the toolchain / framework components differently (and skips some steps). It basically defeats the purpose and does not resolve #108570.

@agocke
Copy link
Member

agocke commented Dec 4, 2025

-cross arg when host==target because with -cross arg , it picks up the toolchain / framework components differently (and skips some steps)

Interesting, I didn't know that. Lemme look closer at the proposed change.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

Switch Default CI Focus to osx-arm64 for CoreCLR PRs

5 participants