Bug 1491621 - use different priorities for different kinds of decisions r=tomprince a=tomprince
authorDustin J. Mitchell <dustin@mozilla.com>
Wed, 19 Sep 2018 20:41:01 +0000
changeset 481185 aa7b44bb25aa6c67b91f5dd93fee2116f4c0e659
parent 481184 908e8968c5c7fb731c9438f944fb9594e1f3ff86
child 481186 49b9303f687d8f41b80739bdb9657bda866a1ce6
child 481190 d7a52857cd862b4e2f8305baddc119f4e9a47146
push id1799
push usermozilla@hocat.ca
push dateFri, 21 Sep 2018 21:40:19 +0000
treeherdermozilla-release@aa7b44bb25aa [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewerstomprince, tomprince
bugs1491621
milestone62.0.3
Bug 1491621 - use different priorities for different kinds of decisions r=tomprince a=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'