diff --git a/eng/pipelines/common/global-build-job.yml b/eng/pipelines/common/global-build-job.yml
index d1332a2797f2f..3ac90ee3387b4 100644
--- a/eng/pipelines/common/global-build-job.yml
+++ b/eng/pipelines/common/global-build-job.yml
@@ -70,6 +70,8 @@ jobs:
- name: _osParameter
value: -os ${{ parameters.osGroup }}
+ - name: _archParameter
+ value: -arch ${{ parameters.archType }}
- ${{ if and(eq(parameters.osGroup, 'linux'), eq(parameters.osSubGroup, '_bionic')) }}:
- name: _osParameter
@@ -184,7 +186,7 @@ jobs:
- task: CodeQL3000Init@0
displayName: Initialize CodeQL (manually-injected)
- - script: $(Build.SourcesDirectory)$(dir)build$(scriptExt) -ci -arch ${{ parameters.archType }} $(_osParameter) $(crossArg) ${{ parameters.buildArgs }} $(_officialBuildParameter) $(_buildDarwinFrameworksParameter) $(_overrideTestScriptWindowsCmdParameter)
+ - script: $(Build.SourcesDirectory)$(dir)build$(scriptExt) -ci $(_archParameter) $(_osParameter) $(crossArg) ${{ parameters.buildArgs }} $(_officialBuildParameter) $(_buildDarwinFrameworksParameter) $(_overrideTestScriptWindowsCmdParameter)
displayName: Build product
${{ if eq(parameters.useContinueOnErrorDuringBuild, true) }}:
continueOnError: ${{ parameters.shouldContinueOnError }}
diff --git a/eng/pipelines/common/platform-matrix.yml b/eng/pipelines/common/platform-matrix.yml
index bae79645c0c6d..8399c82ecd769 100644
--- a/eng/pipelines/common/platform-matrix.yml
+++ b/eng/pipelines/common/platform-matrix.yml
@@ -674,7 +674,10 @@ jobs:
platform: maccatalyst_x64
shouldContinueOnError: ${{ parameters.shouldContinueOnError }}
jobParameters:
- runtimeFlavor: mono
+ ${{ if eq(parameters.runtimeFlavor, '') }}:
+ runtimeFlavor: mono
+ ${{ else }}:
+ runtimeFlavor: ${{ parameters.runtimeFlavor }}
buildConfig: ${{ parameters.buildConfig }}
helixQueueGroup: ${{ parameters.helixQueueGroup }}
${{ insert }}: ${{ parameters.jobParameters }}
@@ -693,7 +696,10 @@ jobs:
platform: maccatalyst_arm64
shouldContinueOnError: ${{ parameters.shouldContinueOnError }}
jobParameters:
- runtimeFlavor: mono
+ ${{ if eq(parameters.runtimeFlavor, '') }}:
+ runtimeFlavor: mono
+ ${{ else }}:
+ runtimeFlavor: ${{ parameters.runtimeFlavor }}
buildConfig: ${{ parameters.buildConfig }}
helixQueueGroup: ${{ parameters.helixQueueGroup }}
${{ insert }}: ${{ parameters.jobParameters }}
@@ -712,7 +718,10 @@ jobs:
platform: tvos_arm64
shouldContinueOnError: ${{ parameters.shouldContinueOnError }}
jobParameters:
- runtimeFlavor: mono
+ ${{ if eq(parameters.runtimeFlavor, '') }}:
+ runtimeFlavor: mono
+ ${{ else }}:
+ runtimeFlavor: ${{ parameters.runtimeFlavor }}
buildConfig: ${{ parameters.buildConfig }}
helixQueueGroup: ${{ parameters.helixQueueGroup }}
${{ insert }}: ${{ parameters.jobParameters }}
@@ -731,7 +740,10 @@ jobs:
platform: tvossimulator_x64
shouldContinueOnError: ${{ parameters.shouldContinueOnError }}
jobParameters:
- runtimeFlavor: mono
+ ${{ if eq(parameters.runtimeFlavor, '') }}:
+ runtimeFlavor: mono
+ ${{ else }}:
+ runtimeFlavor: ${{ parameters.runtimeFlavor }}
buildConfig: ${{ parameters.buildConfig }}
helixQueueGroup: ${{ parameters.helixQueueGroup }}
${{ insert }}: ${{ parameters.jobParameters }}
@@ -750,7 +762,10 @@ jobs:
platform: tvossimulator_arm64
shouldContinueOnError: ${{ parameters.shouldContinueOnError }}
jobParameters:
- runtimeFlavor: mono
+ ${{ if eq(parameters.runtimeFlavor, '') }}:
+ runtimeFlavor: mono
+ ${{ else }}:
+ runtimeFlavor: ${{ parameters.runtimeFlavor }}
buildConfig: ${{ parameters.buildConfig }}
helixQueueGroup: ${{ parameters.helixQueueGroup }}
${{ insert }}: ${{ parameters.jobParameters }}
@@ -769,7 +784,10 @@ jobs:
platform: ios_arm64
shouldContinueOnError: ${{ parameters.shouldContinueOnError }}
jobParameters:
- runtimeFlavor: mono
+ ${{ if eq(parameters.runtimeFlavor, '') }}:
+ runtimeFlavor: mono
+ ${{ else }}:
+ runtimeFlavor: ${{ parameters.runtimeFlavor }}
buildConfig: ${{ parameters.buildConfig }}
helixQueueGroup: ${{ parameters.helixQueueGroup }}
${{ insert }}: ${{ parameters.jobParameters }}
@@ -788,7 +806,10 @@ jobs:
platform: iossimulator_x64
shouldContinueOnError: ${{ parameters.shouldContinueOnError }}
jobParameters:
- runtimeFlavor: mono
+ ${{ if eq(parameters.runtimeFlavor, '') }}:
+ runtimeFlavor: mono
+ ${{ else }}:
+ runtimeFlavor: ${{ parameters.runtimeFlavor }}
buildConfig: ${{ parameters.buildConfig }}
helixQueueGroup: ${{ parameters.helixQueueGroup }}
${{ insert }}: ${{ parameters.jobParameters }}
@@ -807,7 +828,10 @@ jobs:
platform: iossimulator_arm64
shouldContinueOnError: ${{ parameters.shouldContinueOnError }}
jobParameters:
- runtimeFlavor: mono
+ ${{ if eq(parameters.runtimeFlavor, '') }}:
+ runtimeFlavor: mono
+ ${{ else }}:
+ runtimeFlavor: ${{ parameters.runtimeFlavor }}
buildConfig: ${{ parameters.buildConfig }}
helixQueueGroup: ${{ parameters.helixQueueGroup }}
${{ insert }}: ${{ parameters.jobParameters }}
diff --git a/eng/pipelines/common/templates/runtimes/build-test-job.yml b/eng/pipelines/common/templates/runtimes/build-test-job.yml
index 2813c45915c5e..567c1e5f99714 100644
--- a/eng/pipelines/common/templates/runtimes/build-test-job.yml
+++ b/eng/pipelines/common/templates/runtimes/build-test-job.yml
@@ -80,6 +80,10 @@ jobs:
- name: runtimeFlavorArgs
value: '-mono'
+ - ${{ if and(eq(parameters.runtimeFlavor, 'coreclr'), in(parameters.osGroup, 'ios', 'iossimulator', 'tvos', 'tvossimulator', 'maccatalyst')) }}:
+ - name: runtimeFlavorArgs
+ value: '-nativeaot'
+
- name: testTreeFilterArg
value: ''
diff --git a/eng/pipelines/common/templates/runtimes/test-variables.yml b/eng/pipelines/common/templates/runtimes/test-variables.yml
index 108b9f03ddb13..d3eb48f309df7 100644
--- a/eng/pipelines/common/templates/runtimes/test-variables.yml
+++ b/eng/pipelines/common/templates/runtimes/test-variables.yml
@@ -79,6 +79,10 @@ variables:
- name: runtimeFlavorArgs
value: '-mono'
+ - ${{ if and(eq(parameters.runtimeFlavor, 'coreclr'), in(parameters.osGroup, 'ios', 'iossimulator', 'tvos', 'tvossimulator', 'maccatalyst')) }}:
+ - name: runtimeFlavorArgs
+ value: '-nativeaot'
+
- name: runtimeVariantArg
value: ''
diff --git a/eng/pipelines/common/variables.yml b/eng/pipelines/common/variables.yml
index 2a757f82572ad..9e2a73794ff89 100644
--- a/eng/pipelines/common/variables.yml
+++ b/eng/pipelines/common/variables.yml
@@ -20,7 +20,7 @@ variables:
- name: isWasmOnlyBuild
value: ${{ in(variables['Build.DefinitionName'], 'runtime-wasm', 'runtime-wasm-libtests', 'runtime-wasm-non-libtests', 'runtime-wasm-dbgtests', 'runtime-wasm-optional') }}
- name: isiOSLikeOnlyBuild
- value: ${{ in(variables['Build.DefinitionName'], 'runtime-ioslike') }}
+ value: ${{ in(variables['Build.DefinitionName'], 'runtime-ioslike', 'runtime-ioslike-mono', 'runtime-ioslike-coreclr') }}
- name: isiOSLikeSimulatorOnlyBuild
value: ${{ in(variables['Build.DefinitionName'], 'runtime-ioslikesimulator') }}
- name: isAndroidOnlyBuild
@@ -32,14 +32,14 @@ variables:
- name: isLinuxBionicOnlyBuild
value: ${{ in(variables['Build.DefinitionName'], 'runtime-linuxbionic') }}
- name: isRunSmokeTestsOnly
- value: ${{ notin(variables['Build.DefinitionName'], 'runtime-extra-platforms', 'runtime-wasm', 'runtime-wasm-libtests', 'runtime-wasm-non-libtests', 'runtime-ioslike', 'runtime-ioslikesimulator', 'runtime-android', 'runtime-androidemulator', 'runtime-maccatalyst', 'runtime-linuxbionic') }}
+ value: ${{ notin(variables['Build.DefinitionName'], 'runtime-extra-platforms', 'runtime-wasm', 'runtime-wasm-libtests', 'runtime-wasm-non-libtests', 'runtime-ioslike', 'runtime-ioslike-mono', 'runtime-ioslike-coreclr', 'runtime-ioslikesimulator', 'runtime-android', 'runtime-androidemulator', 'runtime-maccatalyst', 'runtime-linuxbionic') }}
- name: isNotSpecificPlatformOnlyBuild
- value: ${{ notin(variables['Build.DefinitionName'], 'runtime-wasm', 'runtime-wasm-libtests', 'runtime-wasm-non-libtests', 'runtime-ioslike', 'runtime-ioslikesimulator', 'runtime-android', 'runtime-androidemulator', 'runtime-maccatalyst', 'runtime-linuxbionic') }}
+ value: ${{ notin(variables['Build.DefinitionName'], 'runtime-wasm', 'runtime-wasm-libtests', 'runtime-wasm-non-libtests', 'runtime-ioslike', 'runtime-ioslike-mono', 'runtime-ioslike-coreclr', 'runtime-ioslikesimulator', 'runtime-android', 'runtime-androidemulator', 'runtime-maccatalyst', 'runtime-linuxbionic') }}
# We only run evaluate paths on runtime and runtime-community pipelines on PRs
# keep in sync with /eng/pipelines/common/xplat-setup.yml
- name: dependOnEvaluatePaths
- value: ${{ and(eq(variables['Build.Reason'], 'PullRequest'), in(variables['Build.DefinitionName'], 'runtime', 'runtime-community', 'runtime-extra-platforms', 'runtime-wasm', 'runtime-wasm-libtests', 'runtime-wasm-non-libtests', 'runtime-ioslike', 'runtime-ioslikesimulator', 'runtime-android', 'runtime-androidemulator', 'runtime-maccatalyst', 'runtime-linuxbionic', 'dotnet-linker-tests', 'runtime-dev-innerloop', 'runtime-coreclr superpmi-replay', 'runtime-coreclr superpmi-diffs')) }}
+ value: ${{ and(eq(variables['Build.Reason'], 'PullRequest'), in(variables['Build.DefinitionName'], 'runtime', 'runtime-community', 'runtime-extra-platforms', 'runtime-wasm', 'runtime-wasm-libtests', 'runtime-wasm-non-libtests', 'runtime-ioslike', 'runtime-ioslike-mono', 'runtime-ioslike-coreclr', 'runtime-ioslikesimulator', 'runtime-android', 'runtime-androidemulator', 'runtime-maccatalyst', 'runtime-linuxbionic', 'dotnet-linker-tests', 'runtime-dev-innerloop', 'runtime-coreclr superpmi-replay', 'runtime-coreclr superpmi-diffs')) }}
- name: debugOnPrReleaseOnRolling
${{ if ne(variables['Build.Reason'], 'PullRequest') }}:
value: Release
diff --git a/eng/pipelines/common/xplat-setup.yml b/eng/pipelines/common/xplat-setup.yml
index d6b8d260f95e7..b56f65ef76ce5 100644
--- a/eng/pipelines/common/xplat-setup.yml
+++ b/eng/pipelines/common/xplat-setup.yml
@@ -1,6 +1,7 @@
parameters:
jobTemplate: ''
hostedOs: ''
+ hostedArch: ''
osGroup: ''
osSubgroup: ''
archType: ''
diff --git a/eng/pipelines/coreclr/perf-non-wasm-jobs.yml b/eng/pipelines/coreclr/perf-non-wasm-jobs.yml
index 6fac2057131eb..332492974d95b 100644
--- a/eng/pipelines/coreclr/perf-non-wasm-jobs.yml
+++ b/eng/pipelines/coreclr/perf-non-wasm-jobs.yml
@@ -107,11 +107,11 @@ jobs:
parameters:
jobTemplate: /eng/pipelines/common/global-build-job.yml
buildConfig: release
- runtimeFlavor: mono
+ runtimeFlavor: coreclr
platforms:
- ios_arm64
jobParameters:
- buildArgs: -s clr.nativeaotruntime+clr.nativeaotlibs+libs -c $(_BuildConfig)
+ buildArgs: --cross -s clr.alljits+clr.tools+clr.nativeaotruntime+clr.nativeaotlibs+libs -c $(_BuildConfig)
nameSuffix: iOSNativeAOT
isOfficialBuild: false
extraStepsTemplate: /eng/pipelines/coreclr/templates/build-perf-sample-apps.yml
@@ -223,7 +223,7 @@ jobs:
parameters:
jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml
buildConfig: release
- runtimeFlavor: mono
+ runtimeFlavor: coreclr
platforms:
- osx_x64
jobParameters:
@@ -239,7 +239,7 @@ jobs:
parameters:
jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml
buildConfig: release
- runtimeFlavor: mono
+ runtimeFlavor: coreclr
platforms:
- osx_x64
jobParameters:
diff --git a/eng/pipelines/coreclr/templates/build-perf-sample-apps.yml b/eng/pipelines/coreclr/templates/build-perf-sample-apps.yml
index de6e5137ce715..b74f22d62690a 100644
--- a/eng/pipelines/coreclr/templates/build-perf-sample-apps.yml
+++ b/eng/pipelines/coreclr/templates/build-perf-sample-apps.yml
@@ -137,7 +137,7 @@ steps:
artifactName: ${{ parameters.artifactName }}
- template: /eng/pipelines/common/upload-artifact-step.yml
parameters:
- rootFolder: $(Build.SourcesDirectory)/src/mono/sample/iOS-NativeAOT/bin/publish/app/HelloiOS/Release-iphoneos/HelloiOS.app
+ rootFolder: $(Build.SourcesDirectory)/src/mono/sample/iOS-NativeAOT/bin/ios-arm64/Bundle/HelloiOS/Release-iphoneos/HelloiOS.app
includeRootFolder: true
displayName: iOS Sample App Symbols
artifactName: iOSSampleAppSymbols
@@ -159,7 +159,7 @@ steps:
artifactName: ${{ parameters.artifactName }}
- template: /eng/pipelines/common/upload-artifact-step.yml
parameters:
- rootFolder: $(Build.SourcesDirectory)/src/mono/sample/iOS-NativeAOT/bin/publish/app/HelloiOS/Release-iphoneos/HelloiOS.app
+ rootFolder: $(Build.SourcesDirectory)/src/mono/sample/iOS-NativeAOT/bin/ios-arm64/Bundle/HelloiOS/Release-iphoneos/HelloiOS.app
includeRootFolder: true
displayName: iOS Sample App NoSymbols
artifactName: iOSSampleAppNoSymbols
diff --git a/eng/pipelines/coreclr/templates/perf-job.yml b/eng/pipelines/coreclr/templates/perf-job.yml
index d0bc486d4b404..28d3b8ef75188 100644
--- a/eng/pipelines/coreclr/templates/perf-job.yml
+++ b/eng/pipelines/coreclr/templates/perf-job.yml
@@ -279,7 +279,7 @@ jobs:
# Create Core_Root
- script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) $(buildConfig) $(archType) generatelayoutonly $(librariesOverrideArg) $(_crossBuildPropertyArg)
displayName: Create Core_Root
- condition: and(succeeded(), ne(variables.runtimeFlavorName, 'Mono'), ne('${{ parameters.runtimeType }}', 'wasm'))
+ condition: and(succeeded(), ne(variables.runtimeFlavorName, 'Mono'), ne('${{ parameters.runtimeType }}', 'wasm'), not(in('${{ parameters.runtimeType }}', 'AndroidMono', 'iOSMono', 'iOSNativeAOT')))
# Copy the runtime directory into the testhost folder to include OOBs.
- script: "build.cmd -subset libs.pretest -configuration release -ci -arch $(archType) -testscope innerloop /p:RuntimeArtifactsPath=$(librariesDownloadDir)\\bin\\mono\\$(osGroup).$(archType).$(buildConfigUpper) /p:RuntimeFlavor=mono;xcopy $(Build.SourcesDirectory)\\artifacts\\bin\\runtime\\net8.0-$(osGroup)-$(buildConfigUpper)-$(archType)\\* $(Build.SourcesDirectory)\\artifacts\\bin\\testhost\\net8.0-$(osGroup)-$(buildConfigUpper)-$(archType)\\shared\\Microsoft.NETCore.App\\$(productVersion) /E /I /Y;xcopy $(Build.SourcesDirectory)\\artifacts\\bin\\testhost\\net8.0-$(osGroup)-$(buildConfigUpper)-$(archType)\\* $(Build.SourcesDirectory)\\.dotnet-mono /E /I /Y;copy $(Build.SourcesDirectory)\\artifacts\\bin\\coreclr\\$(osGroup).$(archType).$(buildConfigUpper)\\corerun.exe $(Build.SourcesDirectory)\\.dotnet-mono\\shared\\Microsoft.NETCore.App\\$(productVersion)\\corerun.exe"
diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml
index f856d6211df25..6145d3ed0c71f 100644
--- a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml
+++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml
@@ -7,81 +7,120 @@ parameters:
isExtraPlatformsBuild: false
isiOSLikeOnlyBuild: false
isRollingBuild: false
+ isMonoOnlyBuild: false
+ isCoreclrOnlyBuild: false
jobs:
-#
-# iOS/tvOS devices - Full AOT + AggressiveTrimming to reduce size
-# 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
- isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }}
- isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }}
- platforms:
- - ios_arm64
- - tvos_arm64
- variables:
- # map dependencies variables to local variables
- - name: librariesContainsChange
- value: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ]
- - name: monoContainsChange
- value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'] ]
- jobParameters:
- testGroup: innerloop
- nameSuffix: AllSubsets_Mono
- isExtraPlatforms: ${{ parameters.isExtraPlatformsBuild }}
- buildArgs: -s mono+libs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:DevTeamProvisioning=- /p:RunAOTCompilation=true $(_runSmokeTestsOnlyArg) /p:BuildTestsOnHelix=true /p:EnableAdditionalTimezoneChecks=true /p:UsePortableRuntimePack=true /p:BuildDarwinFrameworks=true /p:IsManualOrRollingBuild=true
- timeoutInMinutes: 180
- # extra steps, run tests
- extraStepsTemplate: /eng/pipelines/libraries/helix.yml
- extraStepsParameters:
- creator: dotnet-bot
- testRunNamePrefixSuffix: Mono_$(_BuildConfig)
- extraHelixArguments: /p:NeedsToBuildAppsOnHelix=true
+- ${{ if eq(parameters.isCoreclrOnlyBuild, false) }}:
+ #
+ # iOS/tvOS devices - Full AOT + AggressiveTrimming to reduce size
+ # 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
+ isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }}
+ isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }}
+ platforms:
+ - ios_arm64
+ - tvos_arm64
+ variables:
+ # map dependencies variables to local variables
+ - name: librariesContainsChange
+ value: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ]
+ - name: monoContainsChange
+ value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'] ]
+ jobParameters:
+ testGroup: innerloop
+ nameSuffix: AllSubsets_Mono
+ isExtraPlatforms: ${{ parameters.isExtraPlatformsBuild }}
+ buildArgs: -s mono+libs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:DevTeamProvisioning=- /p:RunAOTCompilation=true $(_runSmokeTestsOnlyArg) /p:BuildTestsOnHelix=true /p:EnableAdditionalTimezoneChecks=true /p:UsePortableRuntimePack=true /p:BuildDarwinFrameworks=true /p:IsManualOrRollingBuild=true
+ timeoutInMinutes: 180
+ # extra steps, run tests
+ extraStepsTemplate: /eng/pipelines/libraries/helix.yml
+ extraStepsParameters:
+ creator: dotnet-bot
+ testRunNamePrefixSuffix: Mono_$(_BuildConfig)
+ extraHelixArguments: /p:NeedsToBuildAppsOnHelix=true
-#
-# Build the whole product using Mono for iOS/tvOS and run runtime tests with iOS/tvOS devices
-#
-- 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
- runtimeFlavor: mono
- isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }}
- isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }}
- platforms:
- - ios_arm64
- - tvos_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
- jobParameters:
- testGroup: innerloop
- nameSuffix: AllSubsets_Mono_RuntimeTests
- buildArgs: -s mono+libs -c $(_BuildConfig)
- timeoutInMinutes: 240
- # extra steps, run tests
- extraVariablesTemplates:
- - template: /eng/pipelines/common/templates/runtimes/test-variables.yml
- parameters:
- testGroup: innerloop
- extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml
- extraStepsParameters:
- creator: dotnet-bot
- # FIXME: Currently, tracing/eventpipe tests are only enabled on iOS platforms. It should be expanded to include all runtime tests. Tracking issue: https://github.com/dotnet/runtime/issues/84254
- testBuildArgs: tree tracing/eventpipe
- testRunNamePrefixSuffix: Mono_$(_BuildConfig)
+ #
+ # Build the whole product using Mono for iOS/tvOS and run runtime tests with iOS/tvOS devices
+ #
+ - 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
+ runtimeFlavor: mono
+ isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }}
+ isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }}
+ platforms:
+ - ios_arm64
+ - tvos_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
+ jobParameters:
+ testGroup: innerloop
+ nameSuffix: AllSubsets_Mono_RuntimeTests
+ buildArgs: -s mono+libs -c $(_BuildConfig)
+ timeoutInMinutes: 240
+ # extra steps, run tests
+ extraVariablesTemplates:
+ - template: /eng/pipelines/common/templates/runtimes/test-variables.yml
+ parameters:
+ testGroup: innerloop
+ extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml
+ extraStepsParameters:
+ creator: dotnet-bot
+ # FIXME: Currently, tracing/eventpipe tests are only enabled on iOS platforms. It should be expanded to include all runtime tests. Tracking issue: https://github.com/dotnet/runtime/issues/84254
+ testBuildArgs: tree tracing/eventpipe
+ testRunNamePrefixSuffix: Mono_$(_BuildConfig)
+
+- ${{ if eq(parameters.isMonoOnlyBuild, false) }}:
+ #
+ # Build the whole product using NativeAOT for iOS/tvOS and run runtime tests with iOS/tvOS devices
+ #
+ - 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
+ runtimeFlavor: coreclr
+ isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }}
+ isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }}
+ platforms:
+ - ios_arm64
+ - tvos_arm64
+ variables:
+ - name: timeoutPerTestInMinutes
+ value: 60
+ - name: timeoutPerTestCollectionInMinutes
+ value: 180
+ jobParameters:
+ testGroup: innerloop
+ nameSuffix: AllSubsets_NativeAOT_RuntimeTests
+ 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
+ extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml
+ extraStepsParameters:
+ creator: dotnet-bot
+ testBuildArgs: tree nativeaot/SmokeTests/UnitTests /p:BuildNativeAOTRuntimePack=true
+ testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig)
diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml
index 308fbd384e943..d7643974c4e3c 100644
--- a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml
+++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml
@@ -88,3 +88,45 @@ jobs:
# FIXME: Currently, tracing/eventpipe tests are only enabled on iOS platforms. It should be expanded to include all runtime tests. Tracking issue: https://github.com/dotnet/runtime/issues/84254
testBuildArgs: tree tracing/eventpipe
testRunNamePrefixSuffix: Mono_$(_BuildConfig)
+
+#
+# Build the whole product using Native AOT for iOSSimulator/tvOSSimulator and run runtime tests with iOS/tvOS simulators
+#
+- 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
+ runtimeFlavor: coreclr
+ isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }}
+ isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }}
+ platforms:
+ - iossimulator_x64
+ - tvossimulator_x64
+ - iossimulator_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
+ jobParameters:
+ testGroup: innerloop
+ nameSuffix: AllSubsets_NativeAOT_RuntimeTests
+ 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
+ extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml
+ extraStepsParameters:
+ creator: dotnet-bot
+ testBuildArgs: tree nativeaot/SmokeTests/UnitTests /p:BuildNativeAOTRuntimePack=true
+ testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig)
diff --git a/eng/pipelines/runtime-ioslike-coreclr.yml b/eng/pipelines/runtime-ioslike-coreclr.yml
new file mode 100644
index 0000000000000..dd82731364174
--- /dev/null
+++ b/eng/pipelines/runtime-ioslike-coreclr.yml
@@ -0,0 +1,19 @@
+# This is a wrapper yml for `runtime-extra-platforms-ioslike.yml`, which runs Native AOT iOS/tvOS runtime tests.
+
+trigger: none
+
+variables:
+ - template: /eng/pipelines/common/variables.yml
+
+extends:
+ template: /eng/pipelines/common/templates/pipeline-with-resources.yml
+ parameters:
+ stages:
+ - stage: Build
+ jobs:
+ - template: /eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml
+ parameters:
+ isExtraPlatformsBuild: ${{ variables.isExtraPlatformsBuild }}
+ isiOSLikeOnlyBuild: ${{ variables.isiOSLikeOnlyBuild }}
+ isRollingBuild: ${{ variables.isRollingBuild }}
+ isCoreclrOnlyBuild: true
diff --git a/eng/pipelines/runtime-ioslike-mono.yml b/eng/pipelines/runtime-ioslike-mono.yml
new file mode 100644
index 0000000000000..4e32db9c71ede
--- /dev/null
+++ b/eng/pipelines/runtime-ioslike-mono.yml
@@ -0,0 +1,19 @@
+# This is a wrapper yml for `runtime-extra-platforms-ioslike.yml`, which runs Mono AOT iOS/tvOS runtime tests.
+
+trigger: none
+
+variables:
+ - template: /eng/pipelines/common/variables.yml
+
+extends:
+ template: /eng/pipelines/common/templates/pipeline-with-resources.yml
+ parameters:
+ stages:
+ - stage: Build
+ jobs:
+ - template: /eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml
+ parameters:
+ isExtraPlatformsBuild: ${{ variables.isExtraPlatformsBuild }}
+ isiOSLikeOnlyBuild: ${{ variables.isiOSLikeOnlyBuild }}
+ isRollingBuild: ${{ variables.isRollingBuild }}
+ isMonoOnlyBuild: true
diff --git a/src/coreclr/nativeaot/BuildIntegration/Microsoft.NETCore.Native.Publish.targets b/src/coreclr/nativeaot/BuildIntegration/Microsoft.NETCore.Native.Publish.targets
index e6805c219e61b..d8cd01c2e2501 100644
--- a/src/coreclr/nativeaot/BuildIntegration/Microsoft.NETCore.Native.Publish.targets
+++ b/src/coreclr/nativeaot/BuildIntegration/Microsoft.NETCore.Native.Publish.targets
@@ -49,7 +49,7 @@
-
+
diff --git a/src/mono/msbuild/apple/build/AppleBuild.targets b/src/mono/msbuild/apple/build/AppleBuild.targets
index f54f37b7e0778..44b2f3bdf7895 100644
--- a/src/mono/msbuild/apple/build/AppleBuild.targets
+++ b/src/mono/msbuild/apple/build/AppleBuild.targets
@@ -239,6 +239,8 @@
$(TargetOS)-$(TargetArchitecture)
HelloiOS
true
- $(OutputPath)/publish
static
true
@@ -47,8 +46,7 @@
- $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'coreclr', '$(TargetOS).$(TargetArchitecture).$(CoreCLRConfiguration)', '$(BuildArchitecture)' ,'ilc'))
- $(IlcPath)
+ $(CoreCLRCrossILCompilerDir)
$(CoreCLRAotSdkDir)
$(LibrariesAllBinArtifactsPath)
$(LibrariesAllBinArtifactsPath)
@@ -60,7 +58,7 @@
DependsOnTargets="IlcCompile;CopyFilesToPublishDirectory">
- $(MSBuildThisFileDirectory)$(PublishDir)\app
+ $(MSBuildThisFileDirectory)$(OutputPath)\Bundle
True
false
adhoc
@@ -91,7 +89,7 @@
InvariantGlobalization="$(InvariantGlobalization)"
EnableAppSandbox="$(EnableAppSandbox)"
StripSymbolTable="$(StripDebugSymbols)"
- AppDir="$(MSBuildThisFileDirectory)$(PublishDir)"
+ AppDir="$(MSBuildThisFileDirectory)$(OutputPath)"
ExtraLinkerArguments="@(ExtraLinkerArguments)" >
diff --git a/src/tasks/AppleAppBuilder/Templates/main-simple.m b/src/tasks/AppleAppBuilder/Templates/main-simple.m
index f34d4c960fac9..36bf576d51397 100644
--- a/src/tasks/AppleAppBuilder/Templates/main-simple.m
+++ b/src/tasks/AppleAppBuilder/Templates/main-simple.m
@@ -48,7 +48,6 @@ - (void)viewDidLoad {
[button addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];
[button setFrame:CGRectMake(50, 300, 200, 50)];
[button setTitle:@"Click me (wire me up)" forState:UIControlStateNormal];
- [button setExclusiveTouch:YES];
[self.view addSubview:button];
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
diff --git a/src/tests/Common/CLRTest.Execute.Bash.targets b/src/tests/Common/CLRTest.Execute.Bash.targets
index 9f8ee43b3f021..d58672232a2ce 100644
--- a/src/tests/Common/CLRTest.Execute.Bash.targets
+++ b/src/tests/Common/CLRTest.Execute.Bash.targets
@@ -417,7 +417,7 @@ CLRTestExitCode=$?
CLRTestExpectedExitCode=0
]]>
-
+
true
false
- true
+ true
false
true
@@ -208,6 +208,17 @@
true
+
+ <_targetOS>$(TargetOS)
+ true
+ static
+ true
+ <_IsApplePlatform Condition="'$(TargetsAppleMobile)' == 'true'">true
+ <_IsiOSLikePlatform Condition="'$(TargetsAppleMobile)' == 'true'">true
+ --flat
+ <_SymbolPrefix Condition="'$(_IsApplePlatform)' == 'true'">_
+
+
diff --git a/src/tests/Directory.Build.targets b/src/tests/Directory.Build.targets
index e00069e87a8ff..b5bec81d6845e 100644
--- a/src/tests/Directory.Build.targets
+++ b/src/tests/Directory.Build.targets
@@ -530,7 +530,7 @@
partial
$(CoreCLRILCompilerDir)
- $(CoreCLRCrossILCompilerDir)
+ $(CoreCLRCrossILCompilerDir)
$(CoreCLRILCompilerDir)netstandard/ILCompiler.Build.Tasks.dll
$(CoreCLRAotSdkDir)
$(MicrosoftNetCoreAppRuntimePackRidLibTfmDir)
diff --git a/src/tests/build.proj b/src/tests/build.proj
index 3be95646139cf..af5f69c59bd71 100644
--- a/src/tests/build.proj
+++ b/src/tests/build.proj
@@ -3,6 +3,9 @@
+
+
+
$(BaseOutputPathWithConfig)
$(XunitTestBinBase)\TestWrappers\
@@ -55,7 +58,9 @@
+
+
@@ -267,7 +272,7 @@
-
+
$([System.IO.Path]::GetDirectoryName($([System.IO.Path]::GetDirectoryName($(_CMDDIR)))))
$([System.String]::Copy('$(_CMDDIR)').Replace("$(CMDDIR_Grandparent)/",""))
@@ -467,6 +472,59 @@
+
+
+
+
+ $([System.IO.Path]::GetDirectoryName($([System.IO.Path]::GetDirectoryName($(_CMDDIR)))))
+ $([System.IO.Path]::GetFileName($(CategoryPath)))
+ $(CategoryName)/$([System.String]::Copy('$(_CMDDIR)').Replace("$(CategoryPath)/",""))
+ $([System.IO.Path]::GetFileName($(_CMDDIR)))
+ $([System.String]::Copy('$(TestRelativePath)').Replace('/','_'))
+ $(IntermediateOutputPath)\iOSApps\$(AppName)
+ $(XUnitTestBinBase)$(TestRelativePath)\$(AppName).app
+
+
+
+ $(IntermediateOutputPath)\..\$(TestRelativePath)\$(TestName)\native\$(TestName).o
+ -
+ true
+ true
+ $(AppDir)
+ false
+ false
+
+
+
+ <_LinkerFlagsToDrop Include="@(NativeFramework->'-framework %(Identity)')" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -475,10 +533,17 @@
+ Condition="'@(TestDirectories)' != '' and '$(TestBuildMode)' != 'nativeaot'"
+ />
+
+
diff --git a/src/tests/nativeaot/SmokeTests/UnitTests/Delegates.cs b/src/tests/nativeaot/SmokeTests/UnitTests/Delegates.cs
index 2617cb57320db..9452d8700e714 100644
--- a/src/tests/nativeaot/SmokeTests/UnitTests/Delegates.cs
+++ b/src/tests/nativeaot/SmokeTests/UnitTests/Delegates.cs
@@ -51,7 +51,12 @@ public static int Run()
result = Fail;
}
- TestLinqExpressions.Run();
+ // ActiveIssue https://github.com/dotnet/runtime/issues/87924
+ if (!OperatingSystem.IsIOS() && !OperatingSystem.IsTvOS() && !OperatingSystem.IsMacCatalyst())
+ {
+ TestLinqExpressions.Run();
+ }
+
TestDefaultInterfaceMethods.Run();
return result;