diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml
index d5a9d77ac0b842..7225d486c18abf 100644
--- a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml
+++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml
@@ -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
@@ -23,7 +23,6 @@ jobs:
isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }}
isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }}
platforms:
- - ios_arm64
- tvos_arm64
variables:
# map dependencies variables to local variables
@@ -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
@@ -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')) }}:
@@ -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
@@ -108,7 +106,6 @@ jobs:
isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }}
isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }}
platforms:
- - ios_arm64
- tvos_arm64
variables:
# map dependencies variables to local variables
@@ -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:
@@ -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')) }}:
@@ -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
@@ -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:
diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml
index f5044b5d50630f..6dda7c36796007 100644
--- a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml
+++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml
@@ -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
@@ -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
@@ -25,7 +25,6 @@ jobs:
platforms:
- iossimulator_x64
- iossimulator_arm64
- - tvossimulator_arm64
variables:
# map dependencies variables to local variables
- name: librariesContainsChange
@@ -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:
@@ -57,9 +57,7 @@ jobs:
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,12 +88,13 @@ 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 }}
@@ -103,39 +102,64 @@ jobs:
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'] ]
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:
@@ -146,9 +170,7 @@ jobs:
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
@@ -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
@@ -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
diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml
index 92cba45048e616..62878649e0ca9a 100644
--- a/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml
+++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml
@@ -56,7 +56,6 @@ jobs:
isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }}
isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }}
platforms:
- - maccatalyst_x64
- maccatalyst_arm64
variables:
# map dependencies variables to local variables
@@ -105,7 +104,6 @@ jobs:
isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }}
isMacCatalystOnlyBuild: ${{ parameters.isMacCatalystOnlyBuild }}
platforms:
- - maccatalyst_x64
- maccatalyst_arm64
variables:
# map dependencies variables to local variables
@@ -127,12 +125,13 @@ jobs:
testRunNamePrefixSuffix: Mono_$(_BuildConfig)
#
-# Build the whole product using Native AOT and run runtime tests
+# MacCatalyst
+# 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 }}
@@ -144,68 +143,93 @@ jobs:
# 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'] ]
+ - name: coreclrContainsChange
+ value: $[ stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'] ]
jobParameters:
testGroup: innerloop
- nameSuffix: AllSubsets_NativeAOT_RuntimeTests
- buildArgs: --cross -s clr.alljits+clr.tools+clr.nativeaotruntime+clr.nativeaotlibs+libs -c $(_BuildConfig)
+ 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=adhoc /p:BuildTestsOnHelix=true /p:UseNativeAOTRuntime=true /p:RunAOTCompilation=false /p:ContinuousIntegrationBuild=true
timeoutInMinutes: 180
# 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
- buildAllTestsAsStandalone: true
- testBuildArgs: tree nativeaot/MobileSmokeTest /p:BuildNativeAOTRuntimePack=true
testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig)
+ extraHelixArguments: /p:NeedsToBuildAppsOnHelix=true
#
-# Build the whole product using Native AOT with the App Sandbox entitlement and run runtime tests
+# MacCatalyst
+# Build the whole product using Native AOT with the App Sandbox entitlement 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 }}
isMacCatalystOnlyBuild: ${{ parameters.isMacCatalystOnlyBuild }}
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'] ]
+ - name: coreclrContainsChange
+ value: $[ stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'] ]
jobParameters:
testGroup: innerloop
- nameSuffix: AllSubsets_NativeAOT_RuntimeTests_AppSandbox
- buildArgs: --cross -s clr.alljits+clr.tools+clr.nativeaotruntime+clr.nativeaotlibs+libs -c $(_BuildConfig)
+ nameSuffix: AllSubsets_NativeAOT_Smoke_AppSandbox
+ buildArgs: --cross -s clr.alljits+clr.tools+clr.nativeaotruntime+clr.nativeaotlibs+libs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:RunSmokeTestsOnly=true /p:DevTeamProvisioning=adhoc /p:BuildTestsOnHelix=true /p:UseNativeAOTRuntime=true /p:RunAOTCompilation=false /p:ContinuousIntegrationBuild=true /p:EnableAppSandbox=true
timeoutInMinutes: 180
# 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
- buildAllTestsAsStandalone: true
- testBuildArgs: tree nativeaot/MobileSmokeTest /p:BuildNativeAOTRuntimePack=true /p:DevTeamProvisioning=adhoc /p:EnableAppSandbox=true
testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig)
+ extraHelixArguments: /p:NeedsToBuildAppsOnHelix=true
#
-# Build the whole product using CoreCLR R2R and run runtime tests
+# MacCatalyst
+# 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 }}
+ isMacCatalystOnlyBuild: ${{ parameters.isMacCatalystOnlyBuild }}
+ platforms:
+ - maccatalyst_x64
+ - 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
+ buildArgs: -s clr+clr.runtime+libs+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:DevTeamProvisioning=adhoc /p:UseMonoRuntime=false /p:UseNativeAOTRuntime=false /p:BuildTestsOnHelix=true /p:EnableAdditionalTimezoneChecks=true /p:UsePortableRuntimePack=false /p:EnableAggressiveTrimming=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
+
+#
+# MacCatalyst
+# Build the whole product using CoreCLR and run runtime tests
#
- template: /eng/pipelines/common/platform-matrix.yml
parameters:
@@ -216,8 +240,6 @@ jobs:
isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }}
isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }}
platforms:
- # Tracking issue: https://github.com/dotnet/runtime/issues/124344
- # - maccatalyst_x64
- maccatalyst_arm64
variables:
- ${{ if and(eq(variables['System.TeamProject'], 'public'), eq(variables['Build.Reason'], 'PullRequest')) }}:
@@ -249,7 +271,9 @@ jobs:
extraHelixArguments: /p:NeedsToBuildAppsOnHelix=true
#
-# Build the whole product using CoreCLR R2R and run libraries tests
+# MacCatalyst
+# Build the whole product using CoreCLR and run libraries tests
+# The test app is built with the App Sandbox entitlement
#
- template: /eng/pipelines/common/platform-matrix.yml
parameters:
@@ -260,8 +284,6 @@ jobs:
isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }}
isMacCatalystOnlyBuild: ${{ parameters.isMacCatalystOnlyBuild }}
platforms:
- # Tracking issue: https://github.com/dotnet/runtime/issues/124344
- # - maccatalyst_x64
- maccatalyst_arm64
variables:
# map dependencies variables to local variables
@@ -273,7 +295,42 @@ jobs:
value: $[ stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_tools_illink.containsChange'] ]
jobParameters:
testGroup: innerloop
- nameSuffix: AllSubsets_CoreCLR_Smoke
+ nameSuffix: AllSubsets_CoreCLR_AppSandbox
+ 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 /p:EnableAppSandbox=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
+
+#
+# MacCatalyst
+# 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: 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
diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml
index 8bf8ffe3f5314a..cc52b790b8c9d3 100644
--- a/eng/pipelines/runtime.yml
+++ b/eng/pipelines/runtime.yml
@@ -1141,7 +1141,7 @@ extends:
eq(variables['isRollingBuild'], true))
#
- # iOS/tvOS devices - Full AOT + AggressiveTrimming to reduce size
+ # iOS devices - Full AOT + AggressiveTrimming to reduce size
# Build the whole product using Mono and run libraries tests
#
- template: /eng/pipelines/common/platform-matrix.yml
@@ -1188,6 +1188,51 @@ extends:
eq(variables['isRollingBuild'], true))
#
+ # iOS devices
+ # 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/libraries/helix-queues-setup.yml
+ buildConfig: Release
+ runtimeFlavor: coreclr
+ platforms:
+ # Tracking issue: https://github.com/dotnet/runtime/issues/125522
+ - 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'] ]
+ jobParameters:
+ testGroup: innerloop
+ 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
+ useNativeAOTRuntime: true
+ 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: NativeAOT_$(_BuildConfig)
+ extraHelixArguments: /p:NeedsToBuildAppsOnHelix=true
+ condition: >-
+ or(
+ eq(variables['librariesContainsChange'], true),
+ eq(variables['coreclrContainsChange'], true),
+ eq(variables['isRollingBuild'], true))
+
+ #
+ # iOS devices
# Build the whole product using CoreCLR and run libraries tests
#
- template: /eng/pipelines/common/platform-matrix.yml
@@ -1233,7 +1278,48 @@ extends:
eq(variables['isRollingBuild'], true))
#
- # iOS/tvOS devices
+ # 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 Native AOT and run libraries tests
#
- template: /eng/pipelines/common/platform-matrix.yml
@@ -1243,8 +1329,7 @@ extends:
buildConfig: Release
runtimeFlavor: coreclr
platforms:
- # Tracking issue: https://github.com/dotnet/runtime/issues/125522
- - iossimulator_arm64
+ - maccatalyst_arm64
variables:
# map dependencies variables to local variables
- name: librariesContainsChange
@@ -1254,7 +1339,7 @@ extends:
jobParameters:
testGroup: innerloop
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
+ buildArgs: --cross -s clr.alljits+clr.tools+clr.nativeaotruntime+clr.nativeaotlibs+libs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:RunSmokeTestsOnly=true /p:DevTeamProvisioning=adhoc /p:BuildTestsOnHelix=true /p:UseNativeAOTRuntime=true /p:RunAOTCompilation=false /p:ContinuousIntegrationBuild=true
timeoutInMinutes: 180
useNativeAOTRuntime: true
condition: >-
@@ -1277,33 +1362,32 @@ extends:
eq(variables['isRollingBuild'], true))
#
- # MacCatalyst interp - requires AOT Compilation and Interp flags
- # Build the whole product using Mono and run libraries tests
+ # 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: mono
+ runtimeFlavor: coreclr
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'] ]
+ - name: coreclrContainsChange
+ value: $[ stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_coreclr.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
+ 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_mono_excluding_wasm.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
@@ -1311,12 +1395,13 @@ extends:
- template: /eng/pipelines/libraries/helix.yml
parameters:
creator: dotnet-bot
- testRunNamePrefixSuffix: Mono_$(_BuildConfig)
+ testRunNamePrefixSuffix: CoreCLR_$(_BuildConfig)
+ extraHelixArguments: /p:NeedsToBuildAppsOnHelix=true
condition: >-
or(
- eq(variables['librariesContainsChange'], true),
- eq(variables['monoContainsChange'], true),
- eq(variables['isRollingBuild'], true))
+ eq(variables['librariesContainsChange'], true),
+ eq(variables['coreclrContainsChange'], true),
+ eq(variables['isRollingBuild'], true))
#
# Build Mono and Installer on LLVMAOT mode
diff --git a/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/TransitionBlock.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/TransitionBlock.cs
index 9a097ae6f1a18d..a19658e7e9e98a 100644
--- a/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/TransitionBlock.cs
+++ b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/TransitionBlock.cs
@@ -39,7 +39,7 @@ public static TransitionBlock FromTarget(TargetDetails target)
}
case TargetArchitecture.ARM64:
- return target.OperatingSystem == TargetOS.OSX ?
+ return target.IsApplePlatform ?
AppleArm64TransitionBlock.Instance :
Arm64TransitionBlock.Instance;
diff --git a/src/coreclr/tools/aot/ILCompiler.ReadyToRun/IL/ReadyToRunILProvider.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/IL/ReadyToRunILProvider.cs
index 5460cad265c0d6..d782df202a8f5a 100644
--- a/src/coreclr/tools/aot/ILCompiler.ReadyToRun/IL/ReadyToRunILProvider.cs
+++ b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/IL/ReadyToRunILProvider.cs
@@ -196,9 +196,13 @@ public bool NeedsCrossModuleInlineableTokens(MethodDesc method)
{
bool regularCrossModuleInlineable = (!_compilationModuleGroup.VersionsWithMethodBody(method)
&& _compilationModuleGroup.CrossModuleInlineable(method));
- bool requiredCrossModuleInliningForAsync = (NeedsTaskReturningThunk(method) || NeedsAsyncThunk(method) || method is AsyncResumptionStub)
+ bool requiredCrossModuleInliningForAsync = (NeedsTaskReturningThunk(method) || NeedsAsyncThunk(method))
&& !_compilationModuleGroup.VersionsWithModule(method.Context.SystemModule);
- if ((regularCrossModuleInlineable || requiredCrossModuleInliningForAsync)
+ // AsyncResumptionStub always uses synthetic faux IL with tokens that reference
+ // ParameterizedType/InstantiatedType. These tokens must be wrapped in manifest
+ // module tokens regardless of whether CoreLib is in the version bubble.
+ bool resumptionStubNeedsTokens = method is AsyncResumptionStub;
+ if ((regularCrossModuleInlineable || requiredCrossModuleInliningForAsync || resumptionStubNeedsTokens)
&& !_manifestModuleWrappedMethods.ContainsKey(method))
{
return true;
diff --git a/src/libraries/System.IO.MemoryMappedFiles/tests/MemoryMappedFile.CreateFromFile.Tests.cs b/src/libraries/System.IO.MemoryMappedFiles/tests/MemoryMappedFile.CreateFromFile.Tests.cs
index 894eaf4bc2b6da..fead66f0362ed9 100644
--- a/src/libraries/System.IO.MemoryMappedFiles/tests/MemoryMappedFile.CreateFromFile.Tests.cs
+++ b/src/libraries/System.IO.MemoryMappedFiles/tests/MemoryMappedFile.CreateFromFile.Tests.cs
@@ -1206,6 +1206,7 @@ public void MapHandleMatchesSafeFileHandle()
[InlineData(1)]
[SkipOnPlatform(TestPlatforms.Browser, "mkfifo is not supported on WASM")]
[SkipOnPlatform(TestPlatforms.LinuxBionic, "SElinux blocks fifo")]
+ [SkipOnPlatform(TestPlatforms.iOS | TestPlatforms.tvOS | TestPlatforms.MacCatalyst, "mkfifo is not supported on Apple mobile platforms")]
public async Task OpeningMemoryMappedFileFromFileStreamThatWrapsPipeThrowsNotSupportedException(long capacity)
{
(string pipePath, NamedPipeServerStream? serverStream) = CreatePipe();
@@ -1226,6 +1227,7 @@ public async Task OpeningMemoryMappedFileFromFileStreamThatWrapsPipeThrowsNotSup
[InlineData(1)]
[SkipOnPlatform(TestPlatforms.Browser, "mkfifo is not supported on WASM")]
[SkipOnPlatform(TestPlatforms.LinuxBionic, "SElinux blocks fifo")]
+ [SkipOnPlatform(TestPlatforms.iOS | TestPlatforms.tvOS | TestPlatforms.MacCatalyst, "mkfifo is not supported on Apple mobile platforms")]
public void OpeningMemoryMappedFileFromPipePathThrowsNotSupportedException(long capacity)
{
(string pipePath, NamedPipeServerStream? serverStream) = CreatePipe();
diff --git a/src/libraries/tests.proj b/src/libraries/tests.proj
index de549614e8ac00..3bbf424f11e50e 100644
--- a/src/libraries/tests.proj
+++ b/src/libraries/tests.proj
@@ -295,7 +295,6 @@
-
+