Bug 1491621 - use different priorities for different kinds of decisions r=tomprince
authorDustin J. Mitchell <dustin@mozilla.com>
Wed, 19 Sep 2018 20:41:01 +0000
changeset 437339 e92ec2f9523b01e6284c15854df35c18ae8974a3
parent 437338 0d3a741ff37cabc53dbc6255dae361af1888c65b
child 437340 a56e2ed44746ab6bfaec2026cbda83fa443a48ba
push id34678
push userbtara@mozilla.com
push dateThu, 20 Sep 2018 04:11:49 +0000
treeherdermozilla-central@5111ca226d2b [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewerstomprince
bugs1491621
milestone64.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1491621 - use different priorities for different kinds of decisions r=tomprince Differential Revision: https://phabricator.services.mozilla.com/D6193
.taskcluster.yml
--- a/.taskcluster.yml
+++ b/.taskcluster.yml
@@ -104,17 +104,32 @@ tasks:
               # when all actions are hooks, we can calculate this directly rather than using a variable
               - '${action.repo_scope}'
             else:
               - 'assume:repo:${repoUrl[8:]}:cron:${cron.job_name}'
 
         dependencies: []
         requires: all-completed
 
-        priority: lowest
+        priority:
+          # Most times, there is plenty of worker capacity so everything runs
+          # quickly, but sometimes a storm of action tasks lands.  Then we
+          # want, from highest to lowest:
+          # - cron tasks (time-sensitive) (low)
+          # - decision tasks (minimize user-visible delay) (very-low)
+          # - action tasks (avoid interfering with the other two) (lowest)
+          # SCM levels all use different workerTypes, so there is no need for priority
+          # between levels; "low" is the highest priority available at all levels, and
+          # nothing runs at any higher priority on these workerTypes.
+          $if: "tasks_for == 'cron'"
+          then: low
+          else:
+            $if: "tasks_for == 'hg-push'"
+            then: very-low
+            else: lowest  # tasks_for == 'action'
         retries: 5
 
         payload:
           env:
             # checkout-gecko uses these to check out the source; the inputs
             # to `mach taskgraph decision` are all on the command line.
             $merge:
               - GECKO_BASE_REPOSITORY: 'https://hg.mozilla.org/mozilla-unified'