Bug 1429998 - Exclude toolchain and package tasks from the target task set. r?dustin draft
authorMike Hommey <mh+mozilla@glandium.org>
Wed, 17 Jan 2018 14:30:57 +0900
changeset 721348 a67f99a93fc4df9e1406924e2557dd4f438fe0bf
parent 720739 a3887394965f161d011eebc74e8987a653366e4b
child 746314 3e22f6f30dbdd767954f199a89ccc91c6c9aa9a6
push id95815
push userbmo:mh+mozilla@glandium.org
push dateWed, 17 Jan 2018 06:37:41 +0000
reviewersdustin
bugs1429998, 1360609
milestone59.0a1
Bug 1429998 - Exclude toolchain and package tasks from the target task set. r?dustin Back in bug 1360609, we added `run-on-projects` to a list so that the toolchain tasks wouldn't run on every push on release branches. Fast forward to now, and they're depended upon by other tasks, meaning they are triggered when appropriate, without resorting to that trick. In fact, the commit message for bug 1360609 said we could switch to an empty list once the jobs have dependencies. The same is true from package tasks, which, in fact, I suspect would happen on every push on release branches. The only exception is for a few toolchains that are depended upon by nothing, and that are produced for developer consumption with e.g. mach artifact toolchain.
taskcluster/ci/packages/kind.yml
taskcluster/ci/toolchain/kind.yml
taskcluster/ci/toolchain/linux.yml
taskcluster/ci/toolchain/macosx.yml
taskcluster/ci/toolchain/windows.yml
taskcluster/taskgraph/transforms/job/toolchain.py
--- a/taskcluster/ci/packages/kind.yml
+++ b/taskcluster/ci/packages/kind.yml
@@ -12,16 +12,17 @@ transforms:
 job-defaults:
   treeherder:
     kind: build
     platform: packages/opt
     tier: 1
   worker-type: aws-provisioner-v1/gecko-{level}-b-linux
   worker:
     max-run-time: 1800
+  run-on-projects: []
 
 jobs:
   deb7-python:
     description: "Python backport for Debian wheezy"
     treeherder:
       symbol: Deb7(python)
     run:
       using: debian-package
--- a/taskcluster/ci/toolchain/kind.yml
+++ b/taskcluster/ci/toolchain/kind.yml
@@ -5,12 +5,15 @@
 loader: taskgraph.loader.transform:loader
 
 transforms:
    - taskgraph.transforms.try_job:transforms
    - taskgraph.transforms.use_toolchains:transforms
    - taskgraph.transforms.job:transforms
    - taskgraph.transforms.task:transforms
 
+job-defaults:
+   run-on-projects: []
+
 jobs-from:
    - linux.yml
    - macosx.yml
    - windows.yml
--- a/taskcluster/ci/toolchain/linux.yml
+++ b/taskcluster/ci/toolchain/linux.yml
@@ -108,16 +108,19 @@ linux64-clang-tidy:
         using: toolchain-script
         script: build-clang-tidy-linux.sh
         resources:
             - 'build/clang-plugin/**'
             - 'build/build-clang/build-clang.py'
             - 'build/build-clang/clang-tidy-linux64.json'
             - 'taskcluster/scripts/misc/tooltool-download.sh'
         toolchain-artifact: public/build/clang-tidy.tar.xz
+    run-on-projects:
+        - trunk
+        - try
     toolchains:
         - linux64-gcc-4.9
 
 linux64-gcc-4.9:
     description: "GCC 4.9 toolchain build"
     treeherder:
         kind: build
         platform: toolchains/opt
@@ -443,16 +446,19 @@ linux64-gn:
     run:
         using: toolchain-script
         script: build-gn-linux.sh
         tooltool-downloads: public
         resources:
             - 'taskcluster/scripts/misc/tooltool-download.sh'
             - 'taskcluster/scripts/misc/build-gn-common.sh'
         toolchain-artifact: public/build/gn.tar.xz
+    run-on-projects:
+        - trunk
+        - try
     toolchains:
         - linux64-gcc-4.9
 
 linux64-upx:
     description: "UPX build for MinGW32 Cross Compile"
     treeherder:
         kind: build
         platform: toolchains/opt
--- a/taskcluster/ci/toolchain/macosx.yml
+++ b/taskcluster/ci/toolchain/macosx.yml
@@ -1,15 +1,18 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 job-defaults:
     worker:
         docker-image: {in-tree: toolchain-build}
+    run-on-projects:
+        - trunk
+        - try
 
 macosx64-clang:
     description: "Clang toolchain build"
     treeherder:
         kind: build
         platform: toolchains/opt
         symbol: TM(clang)
         tier: 1
--- a/taskcluster/ci/toolchain/windows.yml
+++ b/taskcluster/ci/toolchain/windows.yml
@@ -63,16 +63,19 @@ win32-clang-tidy:
         using: toolchain-script
         script: build-clang-tidy32-windows.sh
         resources:
             - 'build/clang-plugin/**'
             - 'build/build-clang/build-clang.py'
             - 'build/build-clang/clang-tidy-win32.json'
             - 'taskcluster/scripts/misc/build-clang-windows-helper32.sh'
         toolchain-artifact: public/build/clang-tidy.tar.bz2
+    run-on-projects:
+        - trunk
+        - try
 
 win64-clang-tidy:
     description: "Clang-tidy toolchain build"
     index:
         product: static-analysis
         job-name: win64-clang-tidy
     treeherder:
         kind: build
@@ -227,8 +230,11 @@ win32-gn:
             TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win32/gn-build.manifest"
     run:
         using: toolchain-script
         script: build-gn-win32.sh
         resources:
             - 'taskcluster/scripts/misc/tooltool-download.sh'
             - 'taskcluster/scripts/misc/build-gn-common.sh'
         toolchain-artifact: public/build/gn.tar.bz2
+    run-on-projects:
+        - trunk
+        - try
--- a/taskcluster/taskgraph/transforms/job/toolchain.py
+++ b/taskcluster/taskgraph/transforms/job/toolchain.py
@@ -111,17 +111,16 @@ toolchain_defaults = {
     'sparse-profile': 'toolchain-build',
 }
 
 
 @run_job_using("docker-worker", "toolchain-script",
                schema=toolchain_run_schema, defaults=toolchain_defaults)
 def docker_worker_toolchain(config, job, taskdesc):
     run = job['run']
-    taskdesc['run-on-projects'] = ['trunk', 'try']
 
     worker = taskdesc['worker']
     worker['chain-of-trust'] = True
 
     # Allow the job to specify where artifacts come from, but add
     # public/build if it's not there already.
     artifacts = worker.setdefault('artifacts', [])
     if not any(artifact.get('name') == 'public/build' for artifact in artifacts):
@@ -183,17 +182,16 @@ def docker_worker_toolchain(config, job,
             digest_data=get_digest_data(config, run, taskdesc),
         )
 
 
 @run_job_using("generic-worker", "toolchain-script",
                schema=toolchain_run_schema, defaults=toolchain_defaults)
 def windows_toolchain(config, job, taskdesc):
     run = job['run']
-    taskdesc['run-on-projects'] = ['trunk', 'try']
 
     worker = taskdesc['worker']
 
     worker['artifacts'] = [{
         'path': r'public\build',
         'type': 'directory',
     }]
     worker['chain-of-trust'] = True