Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
ce99125
Reduce Apple mobile CI matrix to alleviate macOS queue congestion
kotlarmilos Mar 11, 2026
25affcc
Rename build parameters for iOS/tvOS simulator and MacCatalyst config…
kotlarmilos Mar 12, 2026
f0439a4
Refactor MacCatalyst CI configurations and remove unnecessary project…
kotlarmilos Mar 12, 2026
0bfee88
Remove project exclusion for System.Formats.Cbor.Tests due to mysteri…
kotlarmilos Mar 12, 2026
8607492
Merge branch 'main' into reduce-apple-ci-matrix
kotlarmilos Mar 12, 2026
31bac4d
Add maccatalyst_x64 platform to MacCatalyst CI jobs
kotlarmilos Mar 12, 2026
0eb6958
Address review feedback: reorder entries, update coverage matrix
kotlarmilos Mar 12, 2026
bedaf5d
Merge remote-tracking branch 'origin/reduce-apple-ci-matrix' into red…
kotlarmilos Mar 12, 2026
caea0f5
Merge branch 'main' into reduce-apple-ci-matrix
kotlarmilos Mar 13, 2026
580f048
Add support for ArchiveTests in maccatalyst with native AOT runtime
kotlarmilos Mar 13, 2026
b876cd5
Merge branch 'main' into reduce-apple-ci-matrix
kotlarmilos Mar 16, 2026
912dffd
Add platform exclusions for Apple mobile platforms in MemoryMappedFil…
kotlarmilos Mar 18, 2026
091a1fb
Fix crossgen2 Apple mobile failures: TransitionBlock and async RESUME…
kotlarmilos Mar 18, 2026
304c9c1
Update eng/pipelines/runtime.yml
kotlarmilos Mar 19, 2026
56b206e
Change build configuration from Debug to Release for iOS/tvOS simulat…
kotlarmilos Mar 19, 2026
78a977b
Merge branch 'reduce-apple-ci-matrix' of github.com:kotlarmilos/runti…
kotlarmilos Mar 19, 2026
54e1ece
Restructure iossimulator/ioslike/maccatalyst CI matrix
kotlarmilos Mar 19, 2026
bf6ea90
Revert flag renames to match main branch convention
kotlarmilos Mar 20, 2026
a83708e
Merge branch 'main' into reduce-apple-ci-matrix
kotlarmilos Mar 20, 2026
5edabf5
Update test project conditions for maccatalyst and ios simulator in t…
kotlarmilos Mar 23, 2026
768f767
Update iOS/tvOS platform configurations to include specific architect…
kotlarmilos Mar 23, 2026
3966348
Merge branch 'main' into reduce-apple-ci-matrix
kotlarmilos Mar 24, 2026
3f9d0da
Flip iossimulator Debug/Release per Rolf's feedback
kotlarmilos Mar 24, 2026
cd64783
Revert ioslikesimulator to Release (keep one Debug), revert ios on ru…
kotlarmilos Mar 25, 2026
9e646eb
runtime.yml: ios/tvos Mono+NativeAOT+CoreCLR smoke, remove maccatalyst
kotlarmilos Mar 25, 2026
955f471
runtime.yml: Add maccatalyst arm64 Mono+NativeAOT+CoreCLR smoke
kotlarmilos Mar 25, 2026
a9deec1
Restore descriptive comments above jobs in extra-platforms yml
kotlarmilos Mar 25, 2026
ebb69cb
runtime.yml: Remove tvOS device jobs
kotlarmilos Mar 25, 2026
b128067
Merge branch 'main' into reduce-apple-ci-matrix
kotlarmilos Mar 27, 2026
dda2a12
Merge branch 'main' into reduce-apple-ci-matrix
kotlarmilos Mar 30, 2026
4080702
Update platform exclusions for Apple mobile platforms in tests
kotlarmilos Mar 31, 2026
4e60a20
Refactor iOS rolling build test references to improve clarity
kotlarmilos Mar 31, 2026
5ed7372
Revert "Update platform exclusions for Apple mobile platforms in tests"
kotlarmilos Mar 31, 2026
71a925e
Exclude tests that cause crashes on tvOS from the build matrix
kotlarmilos Mar 31, 2026
f456cae
Merge branch 'main' into reduce-apple-ci-matrix
kotlarmilos Apr 1, 2026
bb027c0
Remove unnecessary ItemGroup for maccatalyst and ios simulator in tes…
kotlarmilos Apr 1, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 25 additions & 31 deletions eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ parameters:
jobs:

#
# iOS/tvOS devices - Full AOT + AggressiveTrimming to reduce size
# tvOS - Full AOT + AggressiveTrimming to reduce size
# Build the whole product using Mono and run libraries tests
#
- template: /eng/pipelines/common/platform-matrix.yml
Expand All @@ -23,7 +23,6 @@ jobs:
isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }}
isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }}
platforms:
- ios_arm64
- tvos_arm64
variables:
# map dependencies variables to local variables
Expand Down Expand Up @@ -52,7 +51,7 @@ jobs:
extraHelixArguments: /p:NeedsToBuildAppsOnHelix=true

#
# iOS/tvOS devices
# tvOS
# Build the whole product using Mono and run runtime tests
#
- template: /eng/pipelines/common/platform-matrix.yml
Expand All @@ -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')) }}:
Expand Down Expand Up @@ -96,7 +94,7 @@ jobs:
extraHelixArguments: /p:NeedsToBuildAppsOnHelix=true

#
# iOS/tvOS devices
# tvOS
# Build the whole product using Native AOT and run libraries tests
#
- template: /eng/pipelines/common/platform-matrix.yml
Expand All @@ -108,7 +106,6 @@ jobs:
isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }}
isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }}
platforms:
- ios_arm64
- tvos_arm64
variables:
# map dependencies variables to local variables
Expand All @@ -130,45 +127,43 @@ jobs:
extraHelixArguments: /p:NeedsToBuildAppsOnHelix=true

#
# Build the whole product using NativeAOT for iOS/tvOS and run runtime tests with iOS/tvOS devices
# tvOS
# Build the whole product using CoreCLR 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
helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml
buildConfig: Release
runtimeFlavor: coreclr
isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }}
isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }}
platforms:
- ios_arm64
- tvos_arm64
variables:
- 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_NativeAOT_RuntimeTests
nameSuffix: AllSubsets_CoreCLR
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:EnableAdditionalTimezoneChecks=true /p:UsePortableRuntimePack=false /p:EnableAggressiveTrimming=true
timeoutInMinutes: 240
buildArgs: --cross -s clr.alljits+clr.tools+clr.nativeaotruntime+clr.nativeaotlibs+libs -c $(_BuildConfig)
# 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
- template: /eng/pipelines/libraries/helix.yml
parameters:
creator: dotnet-bot
testBuildArgs: tree nativeaot/MobileSmokeTest /p:BuildNativeAOTRuntimePack=true
testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig)
buildAllTestsAsStandalone: true
testRunNamePrefixSuffix: CoreCLR_$(_BuildConfig)
extraHelixArguments: /p:NeedsToBuildAppsOnHelix=true

#
# Build the whole product using CoreCLR R2R and run runtime tests
# tvOS
# Build the whole product using CoreCLR and run runtime tests
#
- template: /eng/pipelines/common/platform-matrix.yml
parameters:
Expand All @@ -179,7 +174,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')) }}:
Expand Down Expand Up @@ -211,18 +205,18 @@ jobs:
extraHelixArguments: /p:NeedsToBuildAppsOnHelix=true

#
# Build the whole product using CoreCLR R2R and run library tests
# tvOS
# Build the whole product using CoreCLR 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: Release
buildConfig: Debug
runtimeFlavor: coreclr
isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }}
isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }}
platforms:
- ios_arm64
- tvos_arm64
variables:
# map dependencies variables to local variables
Expand All @@ -234,8 +228,8 @@ jobs:
value: $[ stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_tools_illink.containsChange'] ]
jobParameters:
testGroup: innerloop
nameSuffix: AllSubsets_CoreCLR
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:EnableAdditionalTimezoneChecks=true /p:UsePortableRuntimePack=false /p:EnableAggressiveTrimming=true
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:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# This contains only iOS/tvOS-simulator-specific jobs
# This contains only iOS-simulator-specific jobs
# These are run as part of runtime-extra-platforms by default.
# But can also be triggered manually via `runtime-ioslikesimulator` name
# /azp run runtime-ioslikesimulator
Expand All @@ -11,7 +11,7 @@ parameters:
jobs:

#
# iOS/tvOS interp - requires AOT Compilation and Interp flags
# iOSSimulator interp - requires AOT Compilation and Interp flags
# Build the whole product using Mono and run libraries tests
#
- template: /eng/pipelines/common/platform-matrix.yml
Expand All @@ -25,7 +25,6 @@ jobs:
platforms:
- iossimulator_x64
Comment thread
kotlarmilos marked this conversation as resolved.
- iossimulator_arm64
- tvossimulator_arm64
variables:
# map dependencies variables to local variables
- name: librariesContainsChange
Expand All @@ -46,7 +45,8 @@ jobs:
testRunNamePrefixSuffix: Mono_$(_BuildConfig)

#
# Build the whole product using Mono for iOSSimulator/tvOSSimulator and run runtime tests with iOS/tvOS simulators
# iOSSimulator
# Build the whole product using Mono and run runtime tests
#
- template: /eng/pipelines/common/platform-matrix.yml
parameters:
Expand All @@ -57,9 +57,7 @@ jobs:
isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }}
isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }}
Comment thread
kotlarmilos marked this conversation as resolved.
platforms:
- iossimulator_x64
- iossimulator_arm64
- tvossimulator_arm64
variables:
- ${{ if and(eq(variables['System.TeamProject'], 'public'), eq(variables['Build.Reason'], 'PullRequest')) }}:
- name: _HelixSource
Expand Down Expand Up @@ -90,52 +88,78 @@ jobs:
extraHelixArguments: /p:NeedsToBuildAppsOnHelix=true

#
# Build the whole product using Native AOT for iOSSimulator/tvOSSimulator and run runtime tests with iOS/tvOS simulators
# iOSSimulator
# Build the whole product using Native AOT 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
helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml
buildConfig: Release
runtimeFlavor: coreclr
isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }}
isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }}
platforms:
Comment thread
kotlarmilos marked this conversation as resolved.
- iossimulator_x64
- iossimulator_arm64
Comment thread
kotlarmilos marked this conversation as resolved.
- 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'] ]
jobParameters:
testGroup: innerloop
nameSuffix: AllSubsets_NativeAOT_RuntimeTests
nameSuffix: AllSubsets_NativeAOT_Smoke
buildArgs: --cross -s clr.alljits+clr.tools+clr.nativeaotruntime+clr.nativeaotlibs+libs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:RunSmokeTestsOnly=true /p:DevTeamProvisioning=- /p:BuildTestsOnHelix=true /p:UseNativeAOTRuntime=true /p:RunAOTCompilation=false /p:ContinuousIntegrationBuild=true
timeoutInMinutes: 180
buildArgs: --cross -s clr.alljits+clr.tools+clr.nativeaotruntime+clr.nativeaotlibs+libs -c $(_BuildConfig)
# 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
- template: /eng/pipelines/libraries/helix.yml
parameters:
creator: dotnet-bot
testBuildArgs: tree nativeaot/MobileSmokeTest /p:BuildNativeAOTRuntimePack=true
testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig)
buildAllTestsAsStandalone: true
extraHelixArguments: /p:NeedsToBuildAppsOnHelix=true

#
# Build the whole product using CoreCLR R2R and run runtime tests
# iOSSimulator
# Build the whole product using CoreCLR 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: coreclr
isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }}
isiOSLikeSimulatorOnlyBuild: ${{ parameters.isiOSLikeSimulatorOnlyBuild }}
platforms:
- iossimulator_x64
- iossimulator_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
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
postBuildSteps:
- template: /eng/pipelines/libraries/helix.yml
parameters:
creator: dotnet-bot
testRunNamePrefixSuffix: CoreCLR_$(_BuildConfig)
extraHelixArguments: /p:NeedsToBuildAppsOnHelix=true

#
# iOSSimulator
# Build the whole product using CoreCLR and run runtime tests
#
- template: /eng/pipelines/common/platform-matrix.yml
parameters:
Expand All @@ -146,9 +170,7 @@ jobs:
isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }}
isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }}
Comment thread
kotlarmilos marked this conversation as resolved.
platforms:
- iossimulator_x64
- iossimulator_arm64
- tvossimulator_arm64
variables:
- ${{ if and(eq(variables['System.TeamProject'], 'public'), eq(variables['Build.Reason'], 'PullRequest')) }}:
- name: _HelixSource
Expand Down Expand Up @@ -179,20 +201,19 @@ jobs:
extraHelixArguments: /p:NeedsToBuildAppsOnHelix=true

#
# Build the whole product using CoreCLR R2R and run libraries tests
# iOSSimulator
# Build the whole product using CoreCLR 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: Release
buildConfig: Debug
runtimeFlavor: coreclr
isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }}
isiOSLikeSimulatorOnlyBuild: ${{ parameters.isiOSLikeSimulatorOnlyBuild }}
platforms:
- iossimulator_x64
- iossimulator_arm64
- tvossimulator_arm64
variables:
# map dependencies variables to local variables
- name: librariesContainsChange
Expand All @@ -203,7 +224,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
Expand Down
Loading
Loading