Bug 1372721 - Add a "trunk" alias for run-on-projects; r?dustin draft
authorGregory Szorc <gps@mozilla.com>
Tue, 13 Jun 2017 14:42:04 -0700
changeset 593660 85ccfc533b1038a5f678228819c7d96716273861
parent 593648 13bd95360ea295ef9b322039232922afadf8eca1
child 633170 6dc0f01cee63dee6e34e7b552492f4607ddb5216
push id63762
push userbmo:gps@mozilla.com
push dateTue, 13 Jun 2017 23:26:21 +0000
reviewersdustin
bugs1372721
milestone56.0a1
Bug 1372721 - Add a "trunk" alias for run-on-projects; r?dustin {central, autoland, inbound} are logically treated as a single unit for many tasks and policies. Let's formalize that collection via a "trunk" alias. MozReview-Commit-ID: H4JPTyu2J2F
taskcluster/ci/build/linux.yml
taskcluster/ci/build/macosx.yml
taskcluster/ci/build/windows.yml
taskcluster/ci/test/tests.yml
taskcluster/docs/attributes.rst
taskcluster/taskgraph/util/attributes.py
--- a/taskcluster/ci/build/linux.yml
+++ b/taskcluster/ci/build/linux.yml
@@ -417,17 +417,17 @@ linux64-stylo/opt:
         config:
             - builds/releng_base_linux_64_builds.py
             - balrog/production.py
         script: "mozharness/scripts/fx_desktop_build.py"
         secrets: true
         custom-build-variant-cfg: stylo
         tooltool-downloads: public
         need-xvfb: true
-    run-on-projects: [ 'autoland', 'mozilla-inbound', 'mozilla-central', 'try' ]
+    run-on-projects: [ 'trunk', 'try' ]
 
 linux64-stylo/debug:
     description: "Linux64 Debug Stylo"
     index:
         product: firefox
         job-name: linux64-stylo-debug
     treeherder:
         platform: linux64-stylo/debug
@@ -444,17 +444,17 @@ linux64-stylo/debug:
         config:
             - builds/releng_base_linux_64_builds.py
             - balrog/production.py
         script: "mozharness/scripts/fx_desktop_build.py"
         secrets: true
         custom-build-variant-cfg: stylo-debug
         tooltool-downloads: public
         need-xvfb: true
-    run-on-projects: [ 'autoland', 'mozilla-inbound', 'mozilla-central', 'try' ]
+    run-on-projects: [ 'trunk', 'try' ]
 
 linux64-noopt/debug:
     description: "Linux64 No-optimize Debug"
     index:
         product: firefox
         job-name: linux64-noopt-debug
     treeherder:
         platform: linux64-noopt/debug
@@ -472,17 +472,17 @@ linux64-noopt/debug:
             - builds/releng_base_linux_64_builds.py
             - balrog/production.py
         script: "mozharness/scripts/fx_desktop_build.py"
         secrets: true
         custom-build-variant-cfg: noopt-debug
         tooltool-downloads: public
         keep-artifacts: false
         need-xvfb: true
-    run-on-projects: [ 'autoland', 'mozilla-inbound', 'mozilla-central', 'try' ]
+    run-on-projects: [ 'trunk', 'try' ]
 
 linux64-jsdcov/opt:
     description: "Linux64-JSDCov Opt"
     index:
         product: firefox
         job-name: linux64-jsdcov-opt
     treeherder:
         platform: linux64-jsdcov/opt
--- a/taskcluster/ci/build/macosx.yml
+++ b/taskcluster/ci/build/macosx.yml
@@ -64,17 +64,17 @@ macosx64-noopt/debug:
         config:
             - builds/releng_base_mac_64_cross_builds.py
             - balrog/production.py
         script: "mozharness/scripts/fx_desktop_build.py"
         secrets: true
         custom-build-variant-cfg: cross-noopt-debug
         tooltool-downloads: internal
         keep-artifacts: false
-    run-on-projects: [ 'autoland', 'mozilla-inbound', 'mozilla-central', 'try' ]
+    run-on-projects: [ 'trunk', 'try' ]
 
 macosx64-add-on-devel/opt:
     description: "MacOS X x64 add-on-devel"
     index:
         product: firefox
         job-name: macosx64-add-on-devel
     treeherder:
         platform: osx-10-7-add-on-devel/opt
--- a/taskcluster/ci/build/windows.yml
+++ b/taskcluster/ci/build/windows.yml
@@ -204,17 +204,17 @@ win64-noopt/debug:
         max-run-time: 7200
         env:
             TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win64/releng.manifest"
     run:
         using: mozharness
         script: mozharness/scripts/fx_desktop_build.py
         config:
             - builds/taskcluster_firefox_win64_noopt_debug.py
-    run-on-projects: [ 'autoland', 'mozilla-inbound', 'mozilla-central', 'try' ]
+    run-on-projects: [ 'trunk', 'try' ]
 
 win32-noopt/debug:
     description: "Win32 No-optimize Debug"
     index:
         product: firefox
         job-name: win32-noopt-debug
     treeherder:
         platform: windows2012-32-noopt/debug
@@ -225,17 +225,17 @@ win32-noopt/debug:
         max-run-time: 7200
         env:
             TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win32/releng.manifest"
     run:
         using: mozharness
         script: mozharness/scripts/fx_desktop_build.py
         config:
             - builds/taskcluster_firefox_win32_noopt_debug.py
-    run-on-projects: [ 'autoland', 'mozilla-inbound', 'mozilla-central', 'try' ]
+    run-on-projects: [ 'trunk', 'try' ]
 
 win64-asan/debug:
     description: "Win64 Debug ASAN"
     index:
         product: firefox
         job-name: win64-asan-debug
     treeherder:
         platform: windows2012-64/asan
--- a/taskcluster/ci/test/tests.yml
+++ b/taskcluster/ci/test/tests.yml
@@ -4,17 +4,17 @@
 # for a description of the fields used here.
 
 # Note that these are in lexical order, as enforced by the task loader.
 
 awsy:
     description: "Are we slim yet"
     suite: awsy
     treeherder-symbol: tc-SY(sy)
-    run-on-projects: ['mozilla-beta', 'mozilla-aurora', 'mozilla-central', 'mozilla-inbound', 'autoland', 'try']
+    run-on-projects: ['release', 'trunk', 'try']
     docker-image: {"in-tree": "desktop1604-test"}
     max-run-time: 7200
     e10s: true
     instance-size: xlarge
     allow-software-gl-layers: false
     mozharness:
         script: awsy_script.py
         config:
--- a/taskcluster/docs/attributes.rst
+++ b/taskcluster/docs/attributes.rst
@@ -21,18 +21,19 @@ A task's ``kind`` attribute gives the na
 
 run_on_projects
 ===============
 
 The projects where this task should be in the target task set.  This is how
 requirements like "only run this on inbound" get implemented.  These are
 either project names or the aliases
 
- * `integration` -- integration branches
- * `release` -- release branches including mozilla-central
+ * `integration` -- integration repositories (autoland, inbound, etc)
+ * `trunk` -- integration repositories plus mozilla-central
+ * `release` -- release repositories including mozilla-central
  * `all` -- everywhere (the default)
 
 For try, this attribute applies only if ``-p all`` is specified.  All jobs can
 be specified by name regardless of ``run_on_projects``.
 
 If ``run_on_projects`` is set to an empty list, then the task will not run
 anywhere, unless its build platform is specified explicitly in try syntax.
 
--- a/taskcluster/taskgraph/util/attributes.py
+++ b/taskcluster/taskgraph/util/attributes.py
@@ -5,16 +5,18 @@
 import re
 
 
 INTEGRATION_PROJECTS = {
     'mozilla-inbound',
     'autoland',
 }
 
+TRUNK_PROJECTS = INTEGRATION_PROJECTS | {'mozilla-central',}
+
 RELEASE_PROJECTS = {
     'mozilla-central',
     'mozilla-aurora',
     'mozilla-beta',
     'mozilla-release',
 }
 
 
@@ -69,9 +71,13 @@ def match_run_on_projects(project, run_o
     if 'all' in run_on_projects:
         return True
     if 'integration' in run_on_projects:
         if project in INTEGRATION_PROJECTS:
             return True
     if 'release' in run_on_projects:
         if project in RELEASE_PROJECTS:
             return True
+    if 'trunk' in run_on_projects:
+        if project in TRUNK_PROJECTS:
+            return True
+
     return project in run_on_projects