[Mono] Cleans up test build when targeting iOS/tvOSSimulator on arm64. Enables arm64...
authorSteve Pfister <steveisok@users.noreply.github.com>
Fri, 23 Jul 2021 16:40:37 +0000 (12:40 -0400)
committerGitHub <noreply@github.com>
Fri, 23 Jul 2021 16:40:37 +0000 (12:40 -0400)
eng/pipelines/libraries/helix-queues-setup.yml
eng/pipelines/runtime-staging.yml
eng/testing/tests.mobile.targets
src/tasks/AppleAppBuilder/AppleAppBuilder.cs
src/tasks/AppleAppBuilder/Templates/runtime.m

index f5bb09d..63719e3 100644 (file)
@@ -99,22 +99,18 @@ jobs:
         - OSX.1014.Amd64.Open
         - OSX.1015.Amd64.Open
 
-    # Mac Catalyst arm64
-    - ${{ if eq(parameters.platform, 'MacCatalyst_arm64') }}:
-      - OSX.1100.ARM64.Open
-
-    # Mac Catalyst x64
-    - ${{ if eq(parameters.platform, 'MacCatalyst_x64') }}:
-      - OSX.1015.Amd64.Open
-
     # Android
     - ${{ if in(parameters.platform, 'Android_x86', 'Android_x64') }}:
       - Ubuntu.1804.Amd64.Android.Open
     - ${{ if in(parameters.platform, 'Android_arm', 'Android_arm64') }}:
       - Windows.10.Amd64.Android.Open
 
-    # iOS/tvOS simulator x64/x86
-    - ${{ if in(parameters.platform, 'iOSSimulator_x64', 'iOSSimulator_x86', 'tvOSSimulator_x64') }}:
+    # iOS Simulator/Mac Catalyst arm64
+    - ${{ if in(parameters.platform, 'MacCatalyst_arm64', 'iOSSimulator_arm64') }}:
+      - OSX.1100.ARM64.Open
+
+    # iOS/tvOS simulator x64/x86 & MacCatalyst x64
+    - ${{ if in(parameters.platform, 'iOSSimulator_x64', 'iOSSimulator_x86', 'tvOSSimulator_x64', 'MacCatalyst_x64') }}:
       - OSX.1015.Amd64.Open
 
     # iOS devices
index 72ddbd6..29c71fc 100644 (file)
@@ -55,6 +55,7 @@ jobs:
   - template: /eng/pipelines/common/evaluate-default-paths.yml
 
 #
+# iOS/tvOS/Catalyst interp - requires AOT Compilation and Interp flags 
 # Build the whole product using Mono and run libraries tests
 #
 - template: /eng/pipelines/common/platform-matrix.yml
@@ -64,52 +65,13 @@ jobs:
     buildConfig: Release
     runtimeFlavor: mono
     platforms:
+    - MacCatalyst_x64
     - iOSSimulator_x64
     - tvOSSimulator_x64
-    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.containsChange'] ]
-    jobParameters:
-      testGroup: innerloop
-      nameSuffix: AllSubsets_Mono
-      buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:MonoForceInterpreter=true
-      timeoutInMinutes: 180
-      condition: >-
-        or(
-          eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
-          eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true),
-          eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true),
-          eq(variables['isFullMatrix'], true))
-      # extra steps, run tests
-      extraStepsTemplate: /eng/pipelines/libraries/helix.yml
-      extraStepsParameters:
-        creator: dotnet-bot
-        interpreter: true
-        testRunNamePrefixSuffix: Mono_$(_BuildConfig)
-        condition: >-
-          or(
-          eq(variables['librariesContainsChange'], true),
-          eq(variables['monoContainsChange'], true),
-          eq(variables['isFullMatrix'], 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
-    # don't run tests on MacCatalyst_arm64 PRs until we can get significantly more devices
+    # don't run tests on arm64 PRs until we can get significantly more devices
     - ${{ if eq(variables['isFullMatrix'], true) }}:
       - MacCatalyst_arm64
+      - iOSSimulator_arm64
     variables:
       # map dependencies variables to local variables
       - name: librariesContainsChange
index 45184d7..6c01e8c 100644 (file)
 
   <Target Condition="'$(TargetOS)' == 'MacCatalyst' or '$(TargetOS)' == 'iOS' or '$(TargetOS)' == 'iOSSimulator' or '$(TargetOS)' == 'tvOS' or '$(TargetOS)' == 'tvOSSimulator'" Name="BundleTestAppleApp" DependsOnTargets="GenerateRuntimeConfig">
     <Error Condition="!Exists('$(MicrosoftNetCoreAppRuntimePackRidDir)')" Text="MicrosoftNetCoreAppRuntimePackRidDir=$(MicrosoftNetCoreAppRuntimePackRidDir) doesn't exist" />
-    <Error Condition="('$(TargetArchitecture)' == 'arm64' or '$(TargetArchitecture)' == 'arm' or '$(TargetOS)' == 'MacCatalyst') and '$(DevTeamProvisioning)' == ''"
+    <Error Condition="('$(TargetOS)' == 'iOS' or '$(TargetOS)' == 'tvOS' or '$(TargetOS)' == 'MacCatalyst') and '$(DevTeamProvisioning)' == ''"
            Text="'DevTeamProvisioning' needs to be set for device builds. Set it to 'UBF8T346G9' if you're part of the Microsoft team account, or 'adhoc' to sign with an adhoc key.." />
     <Error Condition="'$(TestArchiveTestsDir)' == ''" Text="TestArchiveTestsDir property to archive the test folder must be set." />
 
     <PropertyGroup>
       <AOTMode Condition="'$(TargetOS)' != 'MacCatalyst'">Full</AOTMode>
       <AOTMode Condition="'$(TargetOS)' == 'MacCatalyst' and '$(MonoForceInterpreter)' != 'true'">Full</AOTMode>
-      <AOTMode Condition="'$(TargetOS)' == 'MacCatalyst' and '$(MonoForceInterpreter)' == 'true'">JustInterp</AOTMode>
+      <AOTMode Condition="'$(RunAOTCompilation)' == 'true' and '$(MonoForceInterpreter)' == 'true'">JustInterp</AOTMode>
     </PropertyGroup>
     <ItemGroup>
       <_AotExcludeAssemblies Include="$(PublishDir)System.Runtime.WindowsRuntime.dll" />
index a0637d8..6183fe0 100644 (file)
@@ -204,11 +204,6 @@ public class AppleAppBuilderTask : Task
             throw new InvalidOperationException("Need list of AOT files for device builds.");
         }
 
-        if (TargetOS != TargetNames.MacCatalyst && ForceInterpreter && ForceAOT)
-        {
-            throw new InvalidOperationException("Interpreter and AOT cannot be enabled at the same time");
-        }
-
         if (!string.IsNullOrEmpty(DiagnosticPorts))
         {
             bool validDiagnosticsConfig = false;
index fa906e8..de9ca63 100644 (file)
@@ -302,7 +302,7 @@ mono_ios_runtime_init (void)
     // register modules
     register_aot_modules ();
 
-#if (FORCE_INTERPRETER && TARGET_OS_MACCATALYST)
+#if (FORCE_INTERPRETER && FORCE_AOT)
     os_log_info (OS_LOG_DEFAULT, "AOT INTERP Enabled");
     mono_jit_set_aot_mode (MONO_AOT_MODE_INTERP);
 #else