Refine Linux arm64 "limited hardware" designation
authorBruce Forstall <Bruce_Forstall@msn.com>
Thu, 20 Sep 2018 06:51:50 +0000 (23:51 -0700)
committerBruce Forstall <Bruce_Forstall@msn.com>
Thu, 20 Sep 2018 06:51:50 +0000 (23:51 -0700)
Add Linux arm64 to the limited hardware category, meaning non-PR jobs
only run in the master branch.

However, allow non-corefx JIT stress jobs to be scheduled daily,
as they are fast. If corefx jobs are changes to run in parallel
(and thus are faster), they can also possibly be made to run daily.

netci.groovy

index 5a854c4..2f16ada 100755 (executable)
@@ -47,7 +47,8 @@ def static getCrossArchitectures(def os, def architecture, def scenario) {
 // We use this class (vs variables) so that the static functions can access data here.
 class Constants {
 
-    // We have very limited ARM64 hardware (used for ARM/ARM64 testing). So only allow certain branches to use it.
+    // We have very limited Windows ARM64 hardware (used for ARM/ARM64 testing) and Linux/arm32 and Linux/arm64 hardware.
+    // So only allow certain branches to use it.
     def static LimitedHardwareBranches = [
                'master']
 
@@ -1220,14 +1221,8 @@ def static jobRequiresLimitedHardware(def architecture, def os) {
         return true
     }
     else if (architecture == 'arm64') {
-        if (os == 'Windows_NT') {
-            // arm64 Windows hardware is limited.
-            return true
-        }
-        else {
-            // arm64 Linux hardware is fast enough to allow more frequent jobs
-            return false
-        }
+        // arm64 Windows and Linux hardware is limited.
+        return true
     }
     else {
         return false
@@ -1565,7 +1560,15 @@ def static addNonPRTriggers(def job, def branch, def isPR, def architecture, def
                 break
             }
             if (jobRequiresLimitedHardware(architecture, os)) {
-                addPeriodicTriggerHelper(job, '@weekly')
+                if ((architecture == 'arm64') && !isCoreFxScenario(scenario)) {
+                    // These jobs are very fast on Linux/arm64 hardware, so run them daily.
+                    // TODO: When the corefx jobs are made to run in parallel, run those
+                    // jobs daily as well.
+                    addPeriodicTriggerHelper(job, '@daily')
+                }
+                else {
+                    addPeriodicTriggerHelper(job, '@weekly')
+                }
             }
             else {
                 addPeriodicTriggerHelper(job, '@daily')