From ce99125d86de852049990c06db506c9f3f83b8e5 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Wed, 11 Mar 2026 14:51:21 +0100 Subject: [PATCH 1/7] Reduce Apple mobile CI matrix to alleviate macOS queue congestion Reduce the Apple mobile test matrix from 47 to 24 jobs (-23 per run), restructured around real user scenarios: - runtime.yml: iOS-only smoke tests (8 -> 3 jobs) Remove tvos_arm64 from smoke tests, remove maccatalyst Mono_Smoke - ioslike.yml: tvOS devices only in Release (12 -> 6 jobs) Remove ios_arm64 (covered by runtime.yml smoke) - ioslikesimulator.yml: iossimulator only in Debug (15 -> 8 jobs) Remove tvossimulator, change Release to Debug, drop NativeAOT - maccatalyst.yml: arm64 only (12 -> 7 jobs) Remove maccatalyst_x64 (Intel Macs EOL) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .../runtime-extra-platforms-ioslike.yml | 42 ++++++++++-- ...ntime-extra-platforms-ioslikesimulator.yml | 67 +++++++------------ .../runtime-extra-platforms-maccatalyst.yml | 39 +++++++++-- eng/pipelines/runtime.yml | 45 ------------- 4 files changed, 96 insertions(+), 97 deletions(-) diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml index da7fff53452b34..96e6f8b43faa5f 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml @@ -23,7 +23,6 @@ jobs: isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }} platforms: - - ios_arm64 - tvos_arm64 variables: # map dependencies variables to local variables @@ -64,7 +63,6 @@ jobs: isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }} platforms: - - ios_arm64 - tvos_arm64 variables: - ${{ if and(eq(variables['System.TeamProject'], 'public'), eq(variables['Build.Reason'], 'PullRequest')) }}: @@ -108,7 +106,6 @@ jobs: isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }} platforms: - - ios_arm64 - tvos_arm64 variables: # map dependencies variables to local variables @@ -141,7 +138,6 @@ jobs: isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }} platforms: - - ios_arm64 - tvos_arm64 variables: - name: timeoutPerTestInMinutes @@ -179,7 +175,6 @@ jobs: isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }} platforms: - - ios_arm64 - tvos_arm64 variables: - ${{ if and(eq(variables['System.TeamProject'], 'public'), eq(variables['Build.Reason'], 'PullRequest')) }}: @@ -222,7 +217,6 @@ jobs: isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }} platforms: - - ios_arm64 - tvos_arm64 variables: # map dependencies variables to local variables @@ -244,3 +238,39 @@ jobs: creator: dotnet-bot testRunNamePrefixSuffix: CoreCLR_$(_BuildConfig) extraHelixArguments: /p:NeedsToBuildAppsOnHelix=true + +# +# iOS/tvOS devices Debug +# Build the whole product using CoreCLR R2R and run libraries smoke tests +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + buildConfig: Debug + runtimeFlavor: coreclr + isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} + isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }} + platforms: + - ios_arm64 + - tvos_arm64 + variables: + # map dependencies variables to local variables + - name: librariesContainsChange + value: $[ stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ] + - name: coreclrContainsChange + value: $[ stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'] ] + - name: illinkContainsChange + value: $[ stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_tools_illink.containsChange'] ] + jobParameters: + testGroup: innerloop + nameSuffix: AllSubsets_CoreCLR_Smoke + buildArgs: -s clr+clr.runtime+libs+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:DevTeamProvisioning=- /p:UseMonoRuntime=false /p:UseNativeAOTRuntime=false $(_runSmokeTestsOnlyArg) /p:BuildTestsOnHelix=true /p:UsePortableRuntimePack=false + timeoutInMinutes: 240 + # extra steps, run tests + postBuildSteps: + - template: /eng/pipelines/libraries/helix.yml + parameters: + creator: dotnet-bot + testRunNamePrefixSuffix: CoreCLR_$(_BuildConfig) + extraHelixArguments: /p:NeedsToBuildAppsOnHelix=true diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml index 9a5d8939d1f06a..b9b4cf7f939ae2 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml @@ -18,14 +18,13 @@ jobs: parameters: jobTemplate: /eng/pipelines/common/global-build-job.yml helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - buildConfig: Release + buildConfig: Debug runtimeFlavor: mono isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} isiOSLikeSimulatorOnlyBuild: ${{ parameters.isiOSLikeSimulatorOnlyBuild }} platforms: - iossimulator_x64 - iossimulator_arm64 - - tvossimulator_arm64 variables: # map dependencies variables to local variables - name: librariesContainsChange @@ -52,14 +51,13 @@ jobs: parameters: jobTemplate: /eng/pipelines/common/global-build-job.yml helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - buildConfig: Release + buildConfig: Debug runtimeFlavor: mono isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }} platforms: - iossimulator_x64 - iossimulator_arm64 - - tvossimulator_arm64 variables: - ${{ if and(eq(variables['System.TeamProject'], 'public'), eq(variables['Build.Reason'], 'PullRequest')) }}: - name: _HelixSource @@ -90,20 +88,19 @@ jobs: extraHelixArguments: /p:NeedsToBuildAppsOnHelix=true # -# Build the whole product using Native AOT for iOSSimulator/tvOSSimulator and run runtime tests with iOS/tvOS simulators +# Build the whole product using CoreCLR R2R and run runtime tests # - template: /eng/pipelines/common/platform-matrix.yml parameters: jobTemplate: /eng/pipelines/common/global-build-job.yml helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - buildConfig: Release + buildConfig: Debug runtimeFlavor: coreclr isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }} platforms: - iossimulator_x64 - iossimulator_arm64 - - tvossimulator_arm64 variables: - ${{ if and(eq(variables['System.TeamProject'], 'public'), eq(variables['Build.Reason'], 'PullRequest')) }}: - name: _HelixSource @@ -117,69 +114,59 @@ jobs: value: 180 jobParameters: testGroup: innerloop - nameSuffix: AllSubsets_NativeAOT_RuntimeTests - timeoutInMinutes: 180 - buildArgs: --cross -s clr.alljits+clr.tools+clr.nativeaotruntime+clr.nativeaotlibs+libs -c $(_BuildConfig) + nameSuffix: AllSubsets_CoreCLR_RuntimeTests + buildArgs: -s clr+libs -c $(_BuildConfig) + timeoutInMinutes: 240 # extra steps, run tests extraVariablesTemplates: - template: /eng/pipelines/common/templates/runtimes/test-variables.yml parameters: testGroup: innerloop - useNativeAOTRuntime: true postBuildSteps: - template: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml parameters: creator: dotnet-bot - testBuildArgs: tree nativeaot/SmokeTests /p:BuildNativeAOTRuntimePack=true - testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) - buildAllTestsAsStandalone: true + testBuildArgs: /p:DevTeamProvisioning=- /p:UseMonoRuntime=false /p:UseNativeAOTRuntime=false /p:BuildTestsOnHelix=true + testRunNamePrefixSuffix: CoreCLR_$(_BuildConfig) + extraHelixArguments: /p:NeedsToBuildAppsOnHelix=true # -# Build the whole product using CoreCLR R2R and run runtime tests +# Build the whole product using CoreCLR R2R and run libraries tests # - template: /eng/pipelines/common/platform-matrix.yml parameters: jobTemplate: /eng/pipelines/common/global-build-job.yml - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - buildConfig: Release + helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + buildConfig: Debug runtimeFlavor: coreclr isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} - isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }} + isiOSLikeSimulatorOnlyBuild: ${{ parameters.isiOSLikeSimulatorOnlyBuild }} platforms: - iossimulator_x64 - iossimulator_arm64 - - tvossimulator_arm64 variables: - - ${{ if and(eq(variables['System.TeamProject'], 'public'), eq(variables['Build.Reason'], 'PullRequest')) }}: - - name: _HelixSource - value: pr/dotnet/runtime/$(Build.SourceBranch) - - ${{ if and(eq(variables['System.TeamProject'], 'public'), ne(variables['Build.Reason'], 'PullRequest')) }}: - - name: _HelixSource - value: ci/dotnet/runtime/$(Build.SourceBranch) - - name: timeoutPerTestInMinutes - value: 60 - - name: timeoutPerTestCollectionInMinutes - value: 180 + # map dependencies variables to local variables + - name: librariesContainsChange + value: $[ stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ] + - name: coreclrContainsChange + value: $[ stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'] ] + - name: illinkContainsChange + value: $[ stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_tools_illink.containsChange'] ] jobParameters: testGroup: innerloop - nameSuffix: AllSubsets_CoreCLR_RuntimeTests - buildArgs: -s clr+libs -c $(_BuildConfig) + nameSuffix: AllSubsets_CoreCLR + buildArgs: -s clr+clr.runtime+libs+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true $(_runSmokeTestsOnlyArg) /p:UseMonoRuntime=false /p:UseNativeAOTRuntime=false /p:BuildTestsOnHelix=true timeoutInMinutes: 240 # extra steps, run tests - extraVariablesTemplates: - - template: /eng/pipelines/common/templates/runtimes/test-variables.yml - parameters: - testGroup: innerloop postBuildSteps: - - template: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml + - template: /eng/pipelines/libraries/helix.yml parameters: creator: dotnet-bot - testBuildArgs: /p:DevTeamProvisioning=- /p:UseMonoRuntime=false /p:UseNativeAOTRuntime=false /p:BuildTestsOnHelix=true testRunNamePrefixSuffix: CoreCLR_$(_BuildConfig) extraHelixArguments: /p:NeedsToBuildAppsOnHelix=true # -# Build the whole product using CoreCLR R2R and run libraries tests +# Build the whole product using CoreCLR R2R and run libraries smoke tests (Release) # - template: /eng/pipelines/common/platform-matrix.yml parameters: @@ -190,9 +177,7 @@ jobs: isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} isiOSLikeSimulatorOnlyBuild: ${{ parameters.isiOSLikeSimulatorOnlyBuild }} platforms: - - iossimulator_x64 - iossimulator_arm64 - - tvossimulator_arm64 variables: # map dependencies variables to local variables - name: librariesContainsChange @@ -203,7 +188,7 @@ jobs: value: $[ stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_tools_illink.containsChange'] ] jobParameters: testGroup: innerloop - nameSuffix: AllSubsets_CoreCLR + nameSuffix: AllSubsets_CoreCLR_Smoke buildArgs: -s clr+clr.runtime+libs+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true $(_runSmokeTestsOnlyArg) /p:UseMonoRuntime=false /p:UseNativeAOTRuntime=false /p:BuildTestsOnHelix=true timeoutInMinutes: 240 # extra steps, run tests diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml index cd2bba5421b151..572344233d6a81 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml @@ -23,7 +23,6 @@ jobs: isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} isMacCatalystOnlyBuild: ${{ parameters.isMacCatalystOnlyBuild }} platforms: - - maccatalyst_x64 - maccatalyst_arm64 variables: # map dependencies variables to local variables @@ -56,7 +55,6 @@ jobs: isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }} platforms: - - maccatalyst_x64 - maccatalyst_arm64 variables: # map dependencies variables to local variables @@ -105,7 +103,6 @@ jobs: isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} isMacCatalystOnlyBuild: ${{ parameters.isMacCatalystOnlyBuild }} platforms: - - maccatalyst_x64 - maccatalyst_arm64 variables: # map dependencies variables to local variables @@ -138,7 +135,6 @@ jobs: isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} isMacCatalystOnlyBuild: ${{ parameters.isMacCatalystOnlyBuild }} platforms: - - maccatalyst_x64 - maccatalyst_arm64 variables: # map dependencies variables to local variables @@ -177,7 +173,6 @@ jobs: isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} isMacCatalystOnlyBuild: ${{ parameters.isMacCatalystOnlyBuild }} platforms: - - maccatalyst_x64 - maccatalyst_arm64 variables: # map dependencies variables to local variables @@ -283,3 +278,37 @@ jobs: creator: dotnet-bot testRunNamePrefixSuffix: CoreCLR_$(_BuildConfig) extraHelixArguments: /p:NeedsToBuildAppsOnHelix=true + +# +# Build the whole product using CoreCLR R2R and run libraries smoke tests (Debug) +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + buildConfig: Debug + runtimeFlavor: coreclr + isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} + isMacCatalystOnlyBuild: ${{ parameters.isMacCatalystOnlyBuild }} + platforms: + - maccatalyst_arm64 + variables: + # map dependencies variables to local variables + - name: librariesContainsChange + value: $[ stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ] + - name: coreclrContainsChange + value: $[ stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'] ] + - name: illinkContainsChange + value: $[ stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_tools_illink.containsChange'] ] + jobParameters: + testGroup: innerloop + nameSuffix: AllSubsets_CoreCLR_Smoke_Debug + buildArgs: -s clr+clr.runtime+libs+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true $(_runSmokeTestsOnlyArg) /p:DevTeamProvisioning=adhoc /p:UseMonoRuntime=false /p:UseNativeAOTRuntime=false /p:BuildTestsOnHelix=true + timeoutInMinutes: 240 + # extra steps, run tests + postBuildSteps: + - template: /eng/pipelines/libraries/helix.yml + parameters: + creator: dotnet-bot + testRunNamePrefixSuffix: CoreCLR_$(_BuildConfig) + extraHelixArguments: /p:NeedsToBuildAppsOnHelix=true diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index d134bae969bba6..c39623ebd18f30 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -1143,7 +1143,6 @@ extends: runtimeFlavor: mono platforms: - ios_arm64 - - tvos_arm64 variables: # map dependencies variables to local variables - name: librariesContainsChange @@ -1189,7 +1188,6 @@ extends: runtimeFlavor: coreclr platforms: - ios_arm64 - - tvos_arm64 variables: # map dependencies variables to local variables - name: librariesContainsChange @@ -1235,7 +1233,6 @@ extends: runtimeFlavor: coreclr platforms: - ios_arm64 - - tvos_arm64 variables: # map dependencies variables to local variables - name: librariesContainsChange @@ -1267,48 +1264,6 @@ extends: eq(variables['coreclrContainsChange'], true), eq(variables['isRollingBuild'], true)) - # - # MacCatalyst interp - requires AOT Compilation and Interp flags - # Build the whole product using Mono and run libraries tests - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - buildConfig: Release - runtimeFlavor: mono - platforms: - - maccatalyst_x64 - - maccatalyst_arm64 - variables: - # map dependencies variables to local variables - - name: librariesContainsChange - value: $[ stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ] - - name: monoContainsChange - value: $[ stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'] ] - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono_Smoke - buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:RunSmokeTestsOnly=true /p:DevTeamProvisioning=adhoc /p:RunAOTCompilation=true /p:MonoForceInterpreter=true - timeoutInMinutes: 180 - condition: >- - or( - eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isRollingBuild'], true)) - # extra steps, run tests - postBuildSteps: - - template: /eng/pipelines/libraries/helix.yml - parameters: - creator: dotnet-bot - testRunNamePrefixSuffix: Mono_$(_BuildConfig) - condition: >- - or( - eq(variables['librariesContainsChange'], true), - eq(variables['monoContainsChange'], true), - eq(variables['isRollingBuild'], true)) - # # Build Mono and Installer on LLVMAOT mode # From 25affccec8b64a4357ae787d388bfd981ba18fdb Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 12 Mar 2026 11:01:44 +0100 Subject: [PATCH 2/7] Rename build parameters for iOS/tvOS simulator and MacCatalyst configurations for clarity --- .../runtime-extra-platforms-ioslikesimulator.yml | 4 ++-- .../runtime-extra-platforms-maccatalyst.yml | 4 ++-- src/libraries/tests.proj | 7 ------- 3 files changed, 4 insertions(+), 11 deletions(-) diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml index b9b4cf7f939ae2..9a936040994493 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml @@ -54,7 +54,7 @@ jobs: buildConfig: Debug runtimeFlavor: mono isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} - isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }} + isiOSLikeSimulatorOnlyBuild: ${{ parameters.isiOSLikeSimulatorOnlyBuild }} platforms: - iossimulator_x64 - iossimulator_arm64 @@ -97,7 +97,7 @@ jobs: buildConfig: Debug runtimeFlavor: coreclr isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} - isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }} + isiOSLikeSimulatorOnlyBuild: ${{ parameters.isiOSLikeSimulatorOnlyBuild }} platforms: - iossimulator_x64 - iossimulator_arm64 diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml index 572344233d6a81..815f8eee0e09c0 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml @@ -53,7 +53,7 @@ jobs: buildConfig: Release runtimeFlavor: mono isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} - isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }} + isMacCatalystOnlyBuild: ${{ parameters.isMacCatalystOnlyBuild }} platforms: - maccatalyst_arm64 variables: @@ -209,7 +209,7 @@ jobs: buildConfig: Release runtimeFlavor: coreclr isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} - isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }} + isMacCatalystOnlyBuild: ${{ parameters.isMacCatalystOnlyBuild }} platforms: # Tracking issue: https://github.com/dotnet/runtime/issues/124344 # - maccatalyst_x64 diff --git a/src/libraries/tests.proj b/src/libraries/tests.proj index 419c4d011cb1af..490ed9645f8a41 100644 --- a/src/libraries/tests.proj +++ b/src/libraries/tests.proj @@ -750,13 +750,6 @@ BuildInParallel="false" /> - - - - - - - Date: Thu, 12 Mar 2026 11:15:41 +0100 Subject: [PATCH 3/7] Refactor MacCatalyst CI configurations and remove unnecessary project exclusions from tests --- .../runtime-extra-platforms-maccatalyst.yml | 3 +- eng/pipelines/runtime.yml | 83 +++++++++++++++++++ src/libraries/tests.proj | 3 - 3 files changed, 84 insertions(+), 5 deletions(-) diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml index 815f8eee0e09c0..6ce1f6c66fea8a 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml @@ -255,8 +255,7 @@ jobs: isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} isMacCatalystOnlyBuild: ${{ parameters.isMacCatalystOnlyBuild }} platforms: - # Tracking issue: https://github.com/dotnet/runtime/issues/124344 - # - maccatalyst_x64 + - maccatalyst_x64 - maccatalyst_arm64 variables: # map dependencies variables to local variables diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index c39623ebd18f30..c7b76186837b20 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -1264,6 +1264,89 @@ extends: eq(variables['coreclrContainsChange'], true), eq(variables['isRollingBuild'], true)) + # + # MacCatalyst interp - requires AOT Compilation and Interp flags + # Build the whole product using Mono and run libraries tests + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + buildConfig: Release + runtimeFlavor: mono + platforms: + - maccatalyst_arm64 + variables: + # map dependencies variables to local variables + - name: librariesContainsChange + value: $[ stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ] + - name: monoContainsChange + value: $[ stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'] ] + jobParameters: + testGroup: innerloop + nameSuffix: AllSubsets_Mono_Smoke + buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:RunSmokeTestsOnly=true /p:DevTeamProvisioning=adhoc /p:RunAOTCompilation=true /p:MonoForceInterpreter=true + timeoutInMinutes: 180 + condition: >- + or( + eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + eq(variables['isRollingBuild'], true)) + # extra steps, run tests + postBuildSteps: + - template: /eng/pipelines/libraries/helix.yml + parameters: + creator: dotnet-bot + testRunNamePrefixSuffix: Mono_$(_BuildConfig) + condition: >- + or( + eq(variables['librariesContainsChange'], true), + eq(variables['monoContainsChange'], true), + eq(variables['isRollingBuild'], true)) + + # + # MacCatalyst + # Build the whole product using CoreCLR and run libraries smoke tests + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + buildConfig: Release + runtimeFlavor: coreclr + platforms: + - maccatalyst_arm64 + variables: + # map dependencies variables to local variables + - name: librariesContainsChange + value: $[ stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ] + - name: coreclrContainsChange + value: $[ stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'] ] + jobParameters: + testGroup: innerloop + nameSuffix: AllSubsets_CoreCLR_Smoke + buildArgs: -s clr+clr.runtime+libs+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:RunSmokeTestsOnly=true /p:DevTeamProvisioning=adhoc /p:UseMonoRuntime=false /p:UseNativeAOTRuntime=false /p:BuildTestsOnHelix=true + timeoutInMinutes: 180 + condition: >- + or( + eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + eq(variables['isRollingBuild'], true)) + # extra steps, run tests + postBuildSteps: + - template: /eng/pipelines/libraries/helix.yml + parameters: + creator: dotnet-bot + testRunNamePrefixSuffix: CoreCLR_$(_BuildConfig) + extraHelixArguments: /p:NeedsToBuildAppsOnHelix=true + condition: >- + or( + eq(variables['librariesContainsChange'], true), + eq(variables['coreclrContainsChange'], true), + eq(variables['isRollingBuild'], true)) + # # Build Mono and Installer on LLVMAOT mode # diff --git a/src/libraries/tests.proj b/src/libraries/tests.proj index 490ed9645f8a41..27f4e2792f06b4 100644 --- a/src/libraries/tests.proj +++ b/src/libraries/tests.proj @@ -253,9 +253,6 @@ Mysterious crashes on tvOS --> - - - - -