Bug 1524454 - Use per-type defaults to make toolchain task definitions simpler. r=nalexander
authorMike Hommey <mh+mozilla@glandium.org>
Fri, 01 Feb 2019 12:19:47 +0900
changeset 456689 46d325c1eab58562430609be9250dbc1d1d15ca6
parent 456688 234ec0e4b971d17a0f54d731dcfbfdf8ff28d0a3
child 456690 39b16de621b00fcda7756abc508b2d97576f8359
push id35503
push userrmaries@mozilla.com
push dateTue, 05 Feb 2019 16:48:51 +0000
treeherdermozilla-central@c4f1b630a481 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersnalexander
bugs1524454
milestone67.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 1524454 - Use per-type defaults to make toolchain task definitions simpler. r=nalexander This change makes no practical modifications, as verified by comparing the output of `mach taskgraph full -J`. Differential Revision: https://phabricator.services.mozilla.com/D18307
taskcluster/ci/toolchain/android.yml
taskcluster/ci/toolchain/cbindgen.yml
taskcluster/ci/toolchain/cctools-port.yml
taskcluster/ci/toolchain/clang-tidy.yml
taskcluster/ci/toolchain/clang.yml
taskcluster/ci/toolchain/gcc.yml
taskcluster/ci/toolchain/gn.yml
taskcluster/ci/toolchain/grcov.yml
taskcluster/ci/toolchain/kind.yml
taskcluster/ci/toolchain/mingw.yml
taskcluster/ci/toolchain/minidump_stackwalk.yml
taskcluster/ci/toolchain/misc.yml
taskcluster/ci/toolchain/node.yml
taskcluster/ci/toolchain/rust-size.yml
taskcluster/ci/toolchain/rust.yml
taskcluster/ci/toolchain/sccache.yml
--- a/taskcluster/ci/toolchain/android.yml
+++ b/taskcluster/ci/toolchain/android.yml
@@ -1,73 +1,58 @@
 # 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-type: aws-provisioner-v1/gecko-{level}-b-linux
+    worker:
+        docker-image: {in-tree: android-build}
+        max-run-time: 1800
+
 linux64-android-sdk-linux-repack:
     description: "Android SDK (Linux) repack toolchain build"
     treeherder:
-        kind: build
-        platform: toolchains/opt
         symbol: TL(android-sdk-linux)
-        tier: 1
-    worker-type: aws-provisioner-v1/gecko-{level}-b-linux
     worker:
-        docker-image: {in-tree: android-build}
-        max-run-time: 1800
         artifacts:
             - name: project/gecko/android-sdk
               path: /builds/worker/project/gecko/android-sdk/
               type: directory
     run:
-        using: toolchain-script
         script: repack-android-sdk-linux.sh
         resources:
             - 'python/mozboot/**/*android*'
         toolchain-artifact: project/gecko/android-sdk/android-sdk-linux.tar.xz
         toolchain-alias: android-sdk-linux
 
 linux64-android-ndk-linux-repack:
     description: "Android NDK (Linux) repack toolchain build"
     treeherder:
-        kind: build
-        platform: toolchains/opt
         symbol: TL(android-ndk-linux)
-        tier: 1
-    worker-type: aws-provisioner-v1/gecko-{level}-b-linux
     worker:
-        docker-image: {in-tree: android-build}
-        max-run-time: 1800
         artifacts:
             - name: project/gecko/android-ndk
               path: /builds/worker/project/gecko/android-ndk/
               type: directory
     run:
-        using: toolchain-script
         script: repack-android-ndk-linux.sh
         resources:
             - 'python/mozboot/**/*android*'
         toolchain-artifact: project/gecko/android-ndk/android-ndk.tar.xz
         toolchain-alias: android-ndk-linux
 
 linux64-android-gradle-dependencies:
     description: "Android Gradle dependencies toolchain task"
     treeherder:
-        kind: build
-        platform: toolchains/opt
         symbol: TL(gradle-dependencies)
-        tier: 1
-    worker-type: aws-provisioner-v1/gecko-{level}-b-linux
     worker:
-        docker-image: {in-tree: android-build}
         env:
             GRADLE_USER_HOME: "/builds/worker/workspace/build/src/mobile/android/gradle/dotgradle-online"
-        max-run-time: 1800
     run:
-        using: toolchain-script
         script: android-gradle-dependencies.sh
         sparse-profile: null
         resources:
             - 'taskcluster/scripts/misc/tooltool-download.sh'
             - 'taskcluster/scripts/misc/android-gradle-dependencies/**'
             - '*.gradle'
             - 'mobile/android/**/*.gradle'
             - 'mobile/android/config/mozconfigs/android-api-16-gradle-dependencies/**'
--- a/taskcluster/ci/toolchain/cbindgen.yml
+++ b/taskcluster/ci/toolchain/cbindgen.yml
@@ -1,74 +1,55 @@
 # 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:
+    description: "cbindgen toolchain build"
+    worker-type: aws-provisioner-v1/gecko-{level}-b-linux
+    worker:
+        max-run-time: 3600
+    run:
+        script: build-cbindgen.sh
+        resources:
+            - 'taskcluster/scripts/misc/tooltool-download.sh'
+        toolchain-artifact: public/build/cbindgen.tar.xz
+
 linux64-cbindgen:
-    description: "cbindgen toolchain build"
     treeherder:
-        kind: build
-        platform: toolchains/opt
         symbol: TL(cbindgen)
-        tier: 1
-    worker-type: aws-provisioner-v1/gecko-{level}-b-linux
     worker:
         max-run-time: 1800
     run:
-        using: toolchain-script
-        script: build-cbindgen.sh
         arguments: ['x86_64-unknown-linux-gnu']
-        resources:
-            - 'taskcluster/scripts/misc/tooltool-download.sh'
-        toolchain-artifact: public/build/cbindgen.tar.xz
     toolchains:
         - linux64-rust-1.28
 
 macosx64-cbindgen:
-    description: "cbindgen toolchain build"
     treeherder:
-        kind: build
-        platform: toolchains/opt
         symbol: TM(cbindgen)
-        tier: 1
-    worker-type: aws-provisioner-v1/gecko-{level}-b-linux
     worker:
-        max-run-time: 3600
         env:
             TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/macosx64/cross-clang.manifest"
     run-on-projects:
         - trunk
         - try
     run:
-        using: toolchain-script
-        script: build-cbindgen.sh
         arguments: ['x86_64-apple-darwin']
         tooltool-downloads: internal
-        resources:
-            - 'taskcluster/scripts/misc/tooltool-download.sh'
-        toolchain-artifact: public/build/cbindgen.tar.xz
     toolchains:
         - linux64-cctools-port
         - linux64-clang-7
         - linux64-llvm-dsymutil
         - linux64-rust-macos-1.31
 
 win64-cbindgen:
-    description: "cbindgen toolchain build"
     treeherder:
-        kind: build
-        platform: toolchains/opt
         symbol: TW64(cbindgen)
-        tier: 1
     worker-type: aws-provisioner-v1/gecko-{level}-b-win2012
     worker:
-        max-run-time: 3600
         env:
             TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win64/sccache-build.manifest"
     run:
-        using: toolchain-script
-        script: build-cbindgen.sh
         arguments: ['x86_64-pc-windows-msvc']
-        resources:
-            - 'taskcluster/scripts/misc/tooltool-download.sh'
         toolchain-artifact: public/build/cbindgen.tar.bz2
     toolchains:
         - win64-rust-1.28
--- a/taskcluster/ci/toolchain/cctools-port.yml
+++ b/taskcluster/ci/toolchain/cctools-port.yml
@@ -1,49 +1,40 @@
 # 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/.
 
-linux64-cctools-port:
+job-defaults:
     description: "cctools-port toolchain build"
-    treeherder:
-        kind: build
-        platform: toolchains/opt
-        symbol: TL(cctools)
-        tier: 1
     worker-type: aws-provisioner-v1/gecko-{level}-b-linux
     worker:
         max-run-time: 1800
     run:
-        using: toolchain-script
-        script: build-cctools-port.sh
         resources:
             - 'taskcluster/scripts/misc/tooltool-download.sh'
+
+linux64-cctools-port:
+    treeherder:
+        symbol: TL(cctools)
+    run:
+        script: build-cctools-port.sh
         toolchain-artifact: public/build/cctools.tar.xz
     toolchains:
         - linux64-clang-7
 
 macosx64-cctools-port:
     description: "cctools-port toolchain build"
     treeherder:
-        kind: build
-        platform: toolchains/opt
         symbol: TM(cctools)
-        tier: 1
-    worker-type: aws-provisioner-v1/gecko-{level}-b-linux
     worker:
-        max-run-time: 1800
         env:
             TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/macosx64/cross-clang.manifest"
     run-on-projects:
         - trunk
         - try
     run:
-        using: toolchain-script
         script: build-cctools-port-macosx.sh
         tooltool-downloads: internal
-        resources:
-            - 'taskcluster/scripts/misc/tooltool-download.sh'
         toolchain-artifact: public/build/cctools.tar.bz2
     toolchains:
         - linux64-cctools-port
         - linux64-clang-7
         - linux64-node
--- a/taskcluster/ci/toolchain/clang-tidy.yml
+++ b/taskcluster/ci/toolchain/clang-tidy.yml
@@ -1,138 +1,103 @@
 # 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/.
 
-linux64-clang-tidy:
+job-defaults:
     description: "Clang-tidy build"
     index:
         product: static-analysis
-        job-name: linux64-clang-tidy
-    treeherder:
-        kind: build
-        platform: toolchains/opt
-        symbol: TL(clang-tidy)
-        tier: 1
     worker-type: aws-provisioner-v1/gecko-{level}-b-linux-large
     worker:
         max-run-time: 3600
     run:
-        using: toolchain-script
-        script: build-clang-tidy-linux.sh
+        toolchain-artifact: public/build/clang-tidy.tar.xz
         resources:
             - 'build/clang-plugin/**/*.cpp'
             - 'build/clang-plugin/**/*.h'
             - 'build/clang-plugin/*.inc'
             - 'build/clang-plugin/*.py'
             - 'build/clang-plugin/moz.build'
             - 'build/clang-plugin/Makefile.in'
             - 'build/build-clang/build-clang.py'
+
+linux64-clang-tidy:
+    index:
+        job-name: linux64-clang-tidy
+    treeherder:
+        symbol: TL(clang-tidy)
+    run:
+        script: build-clang-tidy-linux.sh
+        resources:
             - '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
 
 macosx64-clang-tidy:
-    description: "Clang-tidy build"
     index:
-        product: static-analysis
         job-name: macosx64-clang-tidy
     treeherder:
-        kind: build
-        platform: toolchains/opt
         symbol: TM(clang-tidy)
-        tier: 1
     worker-type: aws-provisioner-v1/gecko-{level}-b-linux-large
     worker:
-        max-run-time: 3600
         env:
             TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/macosx64/cross-clang.manifest"
     run-on-projects:
         - trunk
         - try
     run:
         using: toolchain-script
         script: build-clang-tidy-macosx.sh
         tooltool-downloads: internal
         resources:
-            - 'build/clang-plugin/**/*.cpp'
-            - 'build/clang-plugin/**/*.h'
-            - 'build/clang-plugin/*.inc'
-            - 'build/clang-plugin/*.py'
-            - 'build/clang-plugin/moz.build'
-            - 'build/clang-plugin/Makefile.in'
-            - 'build/build-clang/build-clang.py'
             - 'build/build-clang/clang-tidy-macosx64.json'
             - 'taskcluster/scripts/misc/tooltool-download.sh'
-        toolchain-artifact: public/build/clang-tidy.tar.xz
     toolchains:
         - linux64-cctools-port
         - linux64-clang-7
         - linux64-gcc-4.9
         - linux64-node
 
 win32-clang-tidy:
     description: "Clang-tidy toolchain build"
     index:
-        product: static-analysis
         job-name: win32-clang-tidy
     treeherder:
-        kind: build
-        platform: toolchains/opt
         symbol: TW32(clang-tidy)
         tier: 2
     worker-type: aws-provisioner-v1/gecko-{level}-b-win2012
     worker:
         max-run-time: 7200
         env:
             TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win32/build-clang-cl.manifest"
     run:
-        using: toolchain-script
         script: build-clang-tidy32-windows.sh
         resources:
-            - 'build/clang-plugin/**/*.cpp'
-            - 'build/clang-plugin/**/*.h'
-            - 'build/clang-plugin/*.inc'
-            - 'build/clang-plugin/*.py'
-            - 'build/clang-plugin/moz.build'
-            - 'build/clang-plugin/Makefile.in'
-            - '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
-        platform: toolchains/opt
         symbol: TW64(clang-tidy)
         tier: 2
     worker-type: aws-provisioner-v1/gecko-{level}-b-win2012
     worker:
         max-run-time: 7200
         env:
             TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win32/build-clang-cl.manifest"
     run:
-        using: toolchain-script
         script: build-clang-tidy64-windows.sh
         resources:
-            - 'build/clang-plugin/**/*.cpp'
-            - 'build/clang-plugin/**/*.h'
-            - 'build/clang-plugin/*.inc'
-            - 'build/clang-plugin/*.py'
-            - 'build/clang-plugin/moz.build'
-            - 'build/clang-plugin/Makefile.in'
-            - 'build/build-clang/build-clang.py'
             - 'build/build-clang/clang-tidy-win32.json'
             - 'taskcluster/scripts/misc/build-clang-windows-helper64.sh'
         toolchain-artifact: public/build/clang-tidy.tar.bz2
--- a/taskcluster/ci/toolchain/clang.yml
+++ b/taskcluster/ci/toolchain/clang.yml
@@ -1,195 +1,152 @@
 # 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-type: aws-provisioner-v1/gecko-{level}-b-linux-xlarge
+    worker:
+        max-run-time: 7200
+    run:
+        resources:
+            - 'build/build-clang/build-clang.py'
+
 linux64-clang-3.9:
     description: "Clang 3.9 toolchain build"
     treeherder:
-        kind: build
-        platform: toolchains/opt
         symbol: TL(clang3.9)
-        tier: 1
     worker-type: aws-provisioner-v1/gecko-{level}-b-linux-large
-    worker:
-        max-run-time: 7200
     run:
-        using: toolchain-script
         script: build-clang-3.9-linux.sh
         resources:
-            - 'build/build-clang/build-clang.py'
             - 'build/build-clang/clang-3.9-linux64.json'
             - 'taskcluster/scripts/misc/tooltool-download.sh'
         toolchain-artifact: public/build/clang.tar.xz
     toolchains:
         - linux64-gcc-4.9
 
 linux64-clang-7:
     description: "Clang 7 toolchain build"
     treeherder:
-        kind: build
-        platform: toolchains/opt
         symbol: TL(clang7)
-        tier: 1
-    worker-type: aws-provisioner-v1/gecko-{level}-b-linux-xlarge
-    worker:
-        max-run-time: 7200
     run:
         using: toolchain-script
         script: build-clang-7-linux.sh
         resources:
             - 'build/build-clang/build-clang.py'
             - 'build/build-clang/clang-7-linux64.json'
             - 'taskcluster/scripts/misc/tooltool-download.sh'
         toolchain-alias: linux64-clang
         toolchain-artifact: public/build/clang.tar.xz
     toolchains:
         - linux64-gcc-4.9
 
 linux64-clang-trunk-mingw-x86:
     description: "MinGW-Clang Trunk x86 toolchain build"
     treeherder:
-        kind: build
-        platform: toolchains/opt
         symbol: TMW(clang-x86)
-        tier: 1
-    worker-type: aws-provisioner-v1/gecko-{level}-b-linux-xlarge
-    worker:
-        max-run-time: 7200
     run:
-        using: toolchain-script
         script: build-clang-trunk-mingw.sh
         arguments: [
             'x86'
         ]
         resources:
-            - 'build/build-clang/build-clang.py'
             - 'build/build-clang/clang-trunk-mingw.json'
             - 'taskcluster/scripts/misc/tooltool-download.sh'
         toolchain-artifact: public/build/clangmingw.tar.xz
     toolchains:
         - linux64-gcc-4.9
 
 linux64-clang-trunk-mingw-x64:
     description: "MinGW-Clang Trunk x64 toolchain build"
     treeherder:
-        kind: build
-        platform: toolchains/opt
         symbol: TMW(clang-x64)
         tier: 2
-    worker-type: aws-provisioner-v1/gecko-{level}-b-linux-xlarge
-    worker:
-        max-run-time: 7200
     run:
-        using: toolchain-script
         script: build-clang-trunk-mingw.sh
         arguments: [
             'x64'
         ]
         resources:
-            - 'build/build-clang/build-clang.py'
             - 'build/build-clang/clang-trunk-mingw.json'
             - 'taskcluster/scripts/misc/tooltool-download.sh'
         toolchain-artifact: public/build/clangmingw.tar.xz
     toolchains:
         - linux64-gcc-4.9
 
 linux64-clang-7-android-cross:
     description: "Clang 7 toolchain build"
     treeherder:
-        kind: build
-        platform: toolchains/opt
         symbol: TL(clang7-android)
-        tier: 1
-    worker-type: aws-provisioner-v1/gecko-{level}-b-linux-xlarge
-    worker:
-        max-run-time: 7200
     run:
         using: toolchain-script
         script: build-clang-7-android.sh
         resources:
-            - 'build/build-clang/build-clang.py'
             - 'build/build-clang/clang-7-android.json'
             - 'taskcluster/scripts/misc/tooltool-download.sh'
         toolchain-alias: linux64-clang-android-cross
         toolchain-artifact: public/build/clang.tar.xz
     toolchains:
         - linux64-gcc-4.9
         - linux64-android-ndk-linux-repack
 
 linux64-clang-7-macosx-cross:
     description: "Clang 7 toolchain build with MacOS Compiler RT libs"
     treeherder:
-        kind: build
-        platform: toolchains/opt
         symbol: TL(clang7-macosx-cross)
-        tier: 1
     worker-type: aws-provisioner-v1/gecko-{level}-b-linux
     worker:
         max-run-time: 3600
         env:
             TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/macosx64/cross-clang.manifest"
     run:
-        using: toolchain-script
         script: build-clang-7-linux-macosx-cross.sh
         resources:
-            - 'build/build-clang/build-clang.py'
             - 'build/build-clang/clang-7-macosx64.json'
             - 'taskcluster/scripts/misc/tooltool-download.sh'
         toolchain-alias: linux64-clang-macosx-cross
         toolchain-artifact: public/build/clang.tar.xz
         tooltool-downloads: internal
     toolchains:
         - linux64-cctools-port
         - linux64-clang-7
         - linux64-gcc-4.9
 
 macosx64-clang:
     description: "Clang toolchain build"
     treeherder:
-        kind: build
-        platform: toolchains/opt
         symbol: TM(clang)
-        tier: 1
     worker-type: aws-provisioner-v1/gecko-{level}-b-linux-large
     worker:
         max-run-time: 3600
         env:
             TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/macosx64/cross-clang.manifest"
     run-on-projects:
         - trunk
         - try
     run:
-        using: toolchain-script
         script: build-clang-macosx.sh
         tooltool-downloads: internal
         resources:
-            - 'build/build-clang/build-clang.py'
             - 'build/build-clang/clang-7-macosx64.json'
             - 'taskcluster/scripts/misc/tooltool-download.sh'
         toolchain-artifact: public/build/clang.tar.xz
     toolchains:
         - linux64-cctools-port
         - linux64-clang-7
         - linux64-gcc-4.9
         - linux64-node
 
 win64-clang-cl:
     description: "Clang-cl toolchain build"
     treeherder:
-        kind: build
-        platform: toolchains/opt
         symbol: TW64(clang-cl)
-        tier: 1
     worker-type: aws-provisioner-v1/gecko-{level}-b-win2012
     worker:
-        max-run-time: 7200
         env:
             TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win32/build-clang-cl.manifest"
     run:
-        using: toolchain-script
         script: build-clang64-windows.sh
         resources:
-            - 'build/build-clang/build-clang.py'
             - 'build/build-clang/clang-win64.json'
             - 'taskcluster/scripts/misc/build-clang-windows-helper64.sh'
         toolchain-artifact: public/build/clang.tar.bz2
--- a/taskcluster/ci/toolchain/gcc.yml
+++ b/taskcluster/ci/toolchain/gcc.yml
@@ -1,104 +1,75 @@
 # 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-type: aws-provisioner-v1/gecko-{level}-b-linux
+    worker:
+        max-run-time: 3600
+    run:
+        resources:
+            - 'build/unix/build-gcc/build-gcc.sh'
+        toolchain-artifact: public/build/gcc.tar.xz
+
 linux64-gcc-4.9:
     description: "GCC 4.9 toolchain build"
     treeherder:
-        kind: build
-        platform: toolchains/opt
         symbol: TL(gcc4.9)
-        tier: 1
-    worker-type: aws-provisioner-v1/gecko-{level}-b-linux
-    worker:
-        max-run-time: 3600
     run:
-        using: toolchain-script
         script: build-gcc-4.9-linux.sh
-        resources:
-            - 'build/unix/build-gcc/build-gcc.sh'
-        toolchain-artifact: public/build/gcc.tar.xz
     fetches:
         fetch:
             - binutils-2.25.1
             - cloog-0.18.1
             - gcc-4.9.4
             - gmp-5.1.3
             - isl-0.12.2
             - mpc-0.8.2
             - mpfr-3.1.5
 
 linux64-gcc-6:
     description: "GCC 6 toolchain build"
     treeherder:
-        kind: build
-        platform: toolchains/opt
         symbol: TL(gcc6)
-        tier: 1
-    worker-type: aws-provisioner-v1/gecko-{level}-b-linux
-    worker:
-        max-run-time: 3600
     run:
-        using: toolchain-script
         script: build-gcc-6-linux.sh
-        resources:
-            - 'build/unix/build-gcc/build-gcc.sh'
         toolchain-alias: linux64-gcc
-        toolchain-artifact: public/build/gcc.tar.xz
     fetches:
         fetch:
             - binutils-2.28.1
             - gcc-6.4.0
             - gmp-5.1.3
             - isl-0.15
             - mpc-0.8.2
             - mpfr-3.1.5
 
 linux64-gcc-7:
     description: "GCC 7 toolchain build"
     treeherder:
-        kind: build
-        platform: toolchains/opt
         symbol: TL(gcc7)
-        tier: 1
-    worker-type: aws-provisioner-v1/gecko-{level}-b-linux
-    worker:
-        max-run-time: 3600
     run:
-        using: toolchain-script
         script: build-gcc-7-linux.sh
-        resources:
-            - 'build/unix/build-gcc/build-gcc.sh'
-        toolchain-artifact: public/build/gcc.tar.xz
     fetches:
         fetch:
             - binutils-2.28.1
             - gcc-7.3.0
             - gmp-6.1.0
             - isl-0.16.1
             - mpc-1.0.3
             - mpfr-3.1.4
 
 linux64-gcc-sixgill:
     description: "sixgill GCC plugin build"
     treeherder:
-        kind: build
-        platform: toolchains/opt
         symbol: TL(sixgill)
-        tier: 1
-    worker-type: aws-provisioner-v1/gecko-{level}-b-linux
-    worker:
-        max-run-time: 3600
     run:
-        using: toolchain-script
         script: build-gcc-sixgill-plugin-linux.sh
         resources:
-            - 'build/unix/build-gcc/build-gcc.sh'
             - 'taskcluster/scripts/misc/build-gcc-sixgill-plugin-linux.sh'
         toolchain-artifact: public/build/sixgill.tar.xz
     toolchains:
         - linux64-gcc-6
     fetches:
         fetch:
             - binutils-2.28.1
             - isl-0.15
--- a/taskcluster/ci/toolchain/gn.yml
+++ b/taskcluster/ci/toolchain/gn.yml
@@ -1,78 +1,52 @@
 # 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/.
 
-linux64-gn:
+job-defaults:
     description: "gn toolchain build"
-    treeherder:
-        kind: build
-        platform: toolchains/opt
-        symbol: TL(gn)
-        tier: 1
     worker-type: aws-provisioner-v1/gecko-{level}-b-linux
     worker:
         max-run-time: 1800
+    run-on-projects:
+        - trunk
+        - try
     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
+
+linux64-gn:
+    treeherder:
+        symbol: TL(gn)
+    run:
+        script: build-gn-linux.sh
     toolchains:
         - linux64-gcc-4.9
 
 macosx64-gn:
-    description: "gn toolchain build"
     treeherder:
-        kind: build
-        platform: toolchains/opt
         symbol: TM(gn)
-        tier: 1
-    worker-type: aws-provisioner-v1/gecko-{level}-b-linux
     worker:
-        max-run-time: 1800
         env:
             TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/macosx64/cross-clang.manifest"
-    run-on-projects:
-        - trunk
-        - try
     run:
-        using: toolchain-script
         script: build-gn-macosx.sh
         tooltool-downloads: internal
-        resources:
-            - 'taskcluster/scripts/misc/tooltool-download.sh'
-            - 'taskcluster/scripts/misc/build-gn-common.sh'
-        toolchain-artifact: public/build/gn.tar.xz
     toolchains:
         - linux64-cctools-port
         - linux64-clang-7
         - linux64-node
 
 win32-gn:
-    description: "gn toolchain build"
     treeherder:
-        kind: build
-        platform: toolchains/opt
         symbol: TW32(gn)
-        tier: 1
     worker-type: aws-provisioner-v1/gecko-{level}-b-win2012
     worker:
         max-run-time: 3600
         env:
             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/ci/toolchain/grcov.yml
+++ b/taskcluster/ci/toolchain/grcov.yml
@@ -1,68 +1,44 @@
 # 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/.
 
-linux64-grcov:
+job-defaults:
     description: "grcov toolchain build"
-    treeherder:
-        kind: build
-        platform: toolchains/opt
-        symbol: TL(grcov)
-        tier: 1
     worker-type: aws-provisioner-v1/gecko-{level}-b-linux
     worker:
         max-run-time: 1800
     run:
-        using: toolchain-script
         script: build-grcov.sh
         resources:
             - 'taskcluster/scripts/misc/tooltool-download.sh'
         toolchain-artifact: public/build/grcov.tar.xz
+
+linux64-grcov:
+    treeherder:
+        symbol: TL(grcov)
     toolchains:
         - linux64-rust-1.28
         - linux64-clang-7
 
 macosx64-grcov:
-    description: "grcov toolchain build"
     treeherder:
-        kind: build
-        platform: toolchains/opt
         symbol: TM(grcov)
-        tier: 1
-    worker-type: aws-provisioner-v1/gecko-{level}-b-linux
-    worker:
-        max-run-time: 1800
     run-on-projects:
         - trunk
         - try
-    run:
-        using: toolchain-script
-        script: build-grcov.sh
-        resources:
-            - 'taskcluster/scripts/misc/tooltool-download.sh'
-        toolchain-artifact: public/build/grcov.tar.xz
     toolchains:
         - linux64-rust-1.28
         - linux64-clang-7
 
 win64-grcov:
-    description: "grcov toolchain build"
     treeherder:
-        kind: build
-        platform: toolchains/opt
         symbol: TW64(grcov)
-        tier: 1
     worker-type: aws-provisioner-v1/gecko-{level}-b-win2012
     worker:
-        max-run-time: 1800
         env:
             TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win64/sccache-build.manifest"
     run:
-        using: toolchain-script
-        script: build-grcov.sh
-        resources:
-            - 'taskcluster/scripts/misc/tooltool-download.sh'
         toolchain-artifact: public/build/grcov.tar.bz2
     toolchains:
         - win64-rust-1.28
         - win64-clang-cl
--- a/taskcluster/ci/toolchain/kind.yml
+++ b/taskcluster/ci/toolchain/kind.yml
@@ -10,17 +10,23 @@ kind-dependencies:
 transforms:
    - taskgraph.transforms.try_job:transforms
    - taskgraph.transforms.use_toolchains:transforms
    - taskgraph.transforms.job:transforms
    - taskgraph.transforms.cached_tasks:transforms
    - taskgraph.transforms.task:transforms
 
 job-defaults:
+   treeherder:
+      kind: build
+      platform: toolchains/opt
+      tier: 1
    run-on-projects: []
+   run:
+      using: toolchain-script
 
 jobs-from:
    - android.yml
    - cbindgen.yml
    - cctools-port.yml
    - clang-tidy.yml
    - clang.yml
    - gcc.yml
--- a/taskcluster/ci/toolchain/mingw.yml
+++ b/taskcluster/ci/toolchain/mingw.yml
@@ -1,101 +1,76 @@
 # 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/.
 
-linux64-upx:
-    description: "UPX build for MinGW32 Cross Compile"
+job-defaults:
     treeherder:
-        kind: build
-        platform: toolchains/opt
-        symbol: TMW(upx)
         tier: 2
     worker-type: aws-provisioner-v1/gecko-{level}-b-linux
     worker:
         docker-image: {in-tree: mingw32-build}
         max-run-time: 3600
+
+linux64-upx:
+    description: "UPX build for MinGW32 Cross Compile"
+    treeherder:
+        symbol: TMW(upx)
     run:
-        using: toolchain-script
         script: build-upx.sh
         toolchain-artifact: public/build/upx.tar.xz
 
 linux64-wine:
     description: "Wine build for MinGW32 Cross Compile"
     treeherder:
-        kind: build
-        platform: toolchains/opt
         symbol: TMW(wine)
-        tier: 2
-    worker-type: aws-provisioner-v1/gecko-{level}-b-linux
     worker:
-        docker-image: {in-tree: mingw32-build}
         max-run-time: 10800
     run:
-        using: toolchain-script
         script: build-wine.sh
         toolchain-artifact: public/build/wine.tar.xz
 
 linux64-mingw32-gcc:
     description: "GCC toolchain build for MinGW32 Cross Compile"
     treeherder:
-        kind: build
-        platform: toolchains/opt
         symbol: TMW(mingw32-gcc)
-        tier: 2
-    worker-type: aws-provisioner-v1/gecko-{level}-b-linux
     worker:
-        docker-image: {in-tree: mingw32-build}
         max-run-time: 10800
     run:
-        using: toolchain-script
         script: build-gcc-mingw32.sh
         resources:
             - 'build/unix/build-gcc/build-gcc.sh'
         toolchain-artifact: public/build/mingw32.tar.xz
     fetches:
         fetch:
             - binutils-2.27
             - gcc-6.4.0
             - gmp-5.1.3
             - isl-0.15
             - mpc-0.8.2
             - mpfr-3.1.5
 
 linux64-mingw32-nsis:
     description: "NSIS build for MinGW32 Cross Compile"
     treeherder:
-        kind: build
-        platform: toolchains/opt
         symbol: TMW(mingw32-nsis)
-        tier: 2
-    worker-type: aws-provisioner-v1/gecko-{level}-b-linux
-    worker:
-        docker-image: {in-tree: mingw32-build}
-        max-run-time: 3600
     run:
-        using: toolchain-script
         script: build-mingw32-nsis.sh
         resources:
             - 'build/unix/build-gcc/build-gcc.sh'
             - 'taskcluster/scripts/misc/build-gcc-mingw32.sh'
         toolchain-artifact: public/build/nsis.tar.xz
     toolchains:
         - linux64-mingw32-gcc
 
 linux64-mingw-fxc2-x86:
     description: "fxc2.exe x86 build for MinGW Cross Compile"
     treeherder:
-        kind: build
-        platform: toolchains/opt
         symbol: TMW(mingw-fxc2-x86)
-        tier: 2
-    worker-type: aws-provisioner-v1/gecko-{level}-b-linux
     worker:
-        docker-image: {in-tree: mingw32-build}
         max-run-time: 1800
     run:
         using: toolchain-script
         script: build-mingw-fxc2-x86.sh
         resources:
             - 'build/build-clang/build-clang.py'
             - 'build/build-clang/clang-trunk-mingw.json'
             - 'taskcluster/scripts/misc/build-clang-trunk-mingw.sh'
--- a/taskcluster/ci/toolchain/minidump_stackwalk.yml
+++ b/taskcluster/ci/toolchain/minidump_stackwalk.yml
@@ -1,77 +1,51 @@
 # 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/.
 
-linux64-minidump-stackwalk:
+job-defaults:
     description: "minidump_stackwalk toolchain build"
-    treeherder:
-        kind: build
-        platform: toolchains/opt
-        symbol: TL(stackwalk)
-        tier: 1
     worker-type: aws-provisioner-v1/gecko-{level}-b-linux
     worker:
         max-run-time: 1800
     run:
-        using: toolchain-script
         script: build-minidump-stackwalk.sh
         sparse-profile: null
         resources:
             - 'taskcluster/scripts/misc/tooltool-download.sh'
         toolchain-artifact: public/build/minidump_stackwalk.tar.xz
+
+linux64-minidump-stackwalk:
+    treeherder:
+        symbol: TL(stackwalk)
     toolchains:
         - linux64-clang-7
         - linux64-binutils
         - linux64-rust-1.31
 
 macosx64-minidump-stackwalk:
-    description: "minidump_stackwalk toolchain build"
     treeherder:
-        kind: build
-        platform: toolchains/opt
         symbol: TM(stackwalk)
-        tier: 1
-    worker-type: aws-provisioner-v1/gecko-{level}-b-linux
     worker:
-        max-run-time: 1800
         env:
             TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/macosx64/cross-clang.manifest"
     run-on-projects:
         - trunk
         - try
     run:
-        using: toolchain-script
-        script: build-minidump-stackwalk.sh
-        sparse-profile: null
         arguments: ['macosx64']
         tooltool-downloads: internal
-        resources:
-            - 'taskcluster/scripts/misc/tooltool-download.sh'
-        toolchain-artifact: public/build/minidump_stackwalk.tar.xz
     toolchains:
         - linux64-cctools-port
         - linux64-clang-7
         - linux64-rust-macos-1.31
 
 win32-minidump-stackwalk:
-    description: "minidump_stackwalk toolchain build"
     treeherder:
-        kind: build
-        platform: toolchains/opt
         symbol: TW32(stackwalk)
-        tier: 1
-    worker-type: aws-provisioner-v1/gecko-{level}-b-linux
     worker:
         docker-image: {in-tree: mingw32-build}
-        max-run-time: 1800
     run:
-        using: toolchain-script
-        script: build-minidump-stackwalk.sh
-        sparse-profile: null
         arguments: ['mingw32']
-        resources:
-            - 'taskcluster/scripts/misc/tooltool-download.sh'
-        toolchain-artifact: public/build/minidump_stackwalk.tar.xz
     toolchains:
         - linux64-clang-trunk-mingw-x86
         - mingw32-rust-1.31
--- a/taskcluster/ci/toolchain/misc.yml
+++ b/taskcluster/ci/toolchain/misc.yml
@@ -1,162 +1,120 @@
 # 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-type: aws-provisioner-v1/gecko-{level}-b-linux
+    worker:
+        max-run-time: 1800
+
 linux64-infer:
     description: "infer build"
     index:
         product: static-analysis
         job-name: linux64-infer
     treeherder:
-        kind: build
-        platform: toolchains/opt
         symbol: TL(infer)
-        tier: 1
-    worker-type: aws-provisioner-v1/gecko-{level}-b-linux
     worker:
         docker-image: {in-tree: static-analysis-build}
         max-run-time: 3600
     run:
-        using: toolchain-script
         script: build-infer-linux.sh
         resources:
             - 'build/build-infer/build-infer.py'
             - 'build/build-infer/infer-linux64.json'
         toolchain-artifact: public/build/infer.tar.xz
 
 linux64-llvm-dsymutil:
     description: "llvm-dsymutil toolchain build"
     treeherder:
-        kind: build
-        platform: toolchains/opt
         symbol: TL(dsymutil)
-        tier: 1
-    worker-type: aws-provisioner-v1/gecko-{level}-b-linux
-    worker:
-        max-run-time: 1800
     run:
-        using: toolchain-script
         script: build-llvm-dsymutil.sh
         toolchain-artifact: public/build/llvm-dsymutil.tar.xz
     toolchains:
         - linux64-gcc-4.9
 
 linux64-binutils:
     description: "Binutils toolchain build"
     treeherder:
-        kind: build
-        platform: toolchains/opt
         symbol: TL(binutil)
-        tier: 1
-    worker-type: aws-provisioner-v1/gecko-{level}-b-linux
     worker:
         max-run-time: 3600
     run:
-        using: toolchain-script
         script: build-binutils-linux.sh
         resources:
             - 'build/unix/build-binutils/build-binutils.sh'
         toolchain-artifact: public/build/binutils.tar.xz
     fetches:
         fetch:
             - binutils-2.31.1
 
 linux64-hfsplus:
     description: "hfsplus toolchain build"
     treeherder:
-        kind: build
-        platform: toolchains/opt
         symbol: TL(hfs+)
-        tier: 1
-    worker-type: aws-provisioner-v1/gecko-{level}-b-linux
-    worker:
-        max-run-time: 1800
     run:
-        using: toolchain-script
         script: build-hfsplus-linux.sh
         resources:
             - 'build/unix/build-hfsplus/build-hfsplus.sh'
             - 'taskcluster/scripts/misc/tooltool-download.sh'
         toolchain-artifact: public/build/hfsplus-tools.tar.xz
     toolchains:
         - linux64-clang-7
 
 linux64-libdmg:
     description: "libdmg-hfsplus toolchain build"
     treeherder:
-        kind: build
-        platform: toolchains/opt
         symbol: TL(libdmg-hfs+)
-        tier: 1
-    worker-type: aws-provisioner-v1/gecko-{level}-b-linux
-    worker:
-        max-run-time: 1800
     run:
-        using: toolchain-script
         script: build-libdmg-hfsplus.sh
         toolchain-artifact: public/build/dmg.tar.xz
 
 linux64-tup:
     description: "tup toolchain build"
     treeherder:
-        kind: build
-        platform: toolchains/opt
         symbol: TL(tup)
-        tier: 1
-    worker-type: aws-provisioner-v1/gecko-{level}-b-linux
     worker:
         max-run-time: 3600
     run:
-        using: toolchain-script
         script: build-tup-linux.sh
         resources:
             - 'taskcluster/scripts/misc/tooltool-download.sh'
         toolchain-artifact: public/build/tup.tar.xz
     run-on-projects:
         - trunk
         - try
     toolchains:
         - linux64-gcc-4.9
 
 linux64-custom-v8:
     description: "Custom v8 build"
     treeherder:
-        kind: build
-        platform: toolchains/opt
         symbol: TL(custom-v8)
-        tier: 1
-    worker-type: aws-provisioner-v1/gecko-{level}-b-linux
     worker:
         docker-image: {in-tree: custom-v8}
         max-run-time: 3600
     run:
-        using: toolchain-script
         script: build-custom-v8.sh
         arguments: [
             d8.zip,
             is_debug=false,
             target_cpu="x64"
         ]
         toolchain-artifact: public/build/d8.zip
 
 wrench-deps:
     description: "Downloads all the crates needed for building wrench"
     treeherder:
-        kind: build
-        platform: toolchains/opt
         symbol: WR(wrench-deps)
-        tier: 1
-    worker-type: aws-provisioner-v1/gecko-{level}-b-linux
     worker:
         docker-image: {in-tree: webrender}
-        max-run-time: 1800
     run:
-        using: toolchain-script
         script: wrench-deps-vendoring.sh
         sparse-profile: null  # need all of gfx/wr checked out for this script
         resources:
             - 'gfx/wr/Cargo.lock'
             - 'taskcluster/scripts/misc/tooltool-download.sh'
         toolchain-artifact: public/build/wrench-deps.tar.bz2
     toolchains:
         - linux64-rust-1.32  # whatever m-c is built with
--- a/taskcluster/ci/toolchain/node.yml
+++ b/taskcluster/ci/toolchain/node.yml
@@ -1,54 +1,36 @@
 # 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/.
 
-linux64-node:
+job-defaults:
     description: "Node repack toolchain build"
-    treeherder:
-        kind: build
-        platform: toolchains/opt
-        symbol: TL(node)
-        tier: 1
     worker-type: aws-provisioner-v1/gecko-{level}-b-linux
     worker:
         max-run-time: 1800
     run:
-        using: toolchain-script
         script: repack-node.sh
+        toolchain-artifact: public/build/node.tar.xz
+
+linux64-node:
+    treeherder:
+        symbol: TL(node)
+    run:
         arguments: ['linux64']
-        toolchain-artifact: public/build/node.tar.xz
 
 macosx64-node:
-    description: "Node repack toolchain build"
     treeherder:
-        kind: build
-        platform: toolchains/opt
         symbol: TM(node)
-        tier: 1
-    worker-type: aws-provisioner-v1/gecko-{level}-b-linux
     worker:
         max-run-time: 1800
     run-on-projects:
         - trunk
         - try
     run:
-        using: toolchain-script
-        script: repack-node.sh
         arguments: ['macosx64']
-        toolchain-artifact: public/build/node.tar.xz
 
 win64-node:
-    description: "Node repack toolchain build"
     treeherder:
-        kind: build
-        platform: toolchains/opt
         symbol: TW64(node)
-        tier: 1
-    worker-type: aws-provisioner-v1/gecko-{level}-b-linux
-    worker:
-        max-run-time: 1800
     run:
-        using: toolchain-script
-        script: repack-node.sh
         arguments: ['win64']
         toolchain-artifact: public/build/node.tar.bz2
--- a/taskcluster/ci/toolchain/rust-size.yml
+++ b/taskcluster/ci/toolchain/rust-size.yml
@@ -1,43 +1,33 @@
 # 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/.
 
-linux64-rust-size:
+job-defaults:
     description: "rust-size toolchain build"
-    treeherder:
-        kind: build
-        platform: toolchains/opt
-        symbol: TL(rust-size)
-        tier: 1
-    worker-type: aws-provisioner-v1/gecko-{level}-b-linux
     worker:
         max-run-time: 1800
     run:
-        using: toolchain-script
         script: build-rust-size.sh
         resources:
             - 'taskcluster/scripts/misc/tooltool-download.sh'
+
+linux64-rust-size:
+    treeherder:
+        symbol: TL(rust-size)
+    worker-type: aws-provisioner-v1/gecko-{level}-b-linux
+    run:
         toolchain-artifact: public/build/rust-size.tar.xz
     toolchains:
         - linux64-rust-1.28
 
 win64-rust-size:
-    description: "rust-size toolchain build"
     treeherder:
-        kind: build
-        platform: toolchains/opt
         symbol: TW64(rust-size)
-        tier: 1
     worker-type: aws-provisioner-v1/gecko-{level}-b-win2012
     worker:
-        max-run-time: 1800
         env:
             TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win64/sccache-build.manifest"
     run:
-        using: toolchain-script
-        script: build-rust-size.sh
-        resources:
-            - 'taskcluster/scripts/misc/tooltool-download.sh'
         toolchain-artifact: public/build/rust-size.tar.bz2
     toolchains:
         - win64-rust-1.28
--- a/taskcluster/ci/toolchain/rust.yml
+++ b/taskcluster/ci/toolchain/rust.yml
@@ -1,338 +1,192 @@
 # 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/.
 
-linux64-rust-1.28:
+job-defaults:
     description: "rust repack"
-    treeherder:
-        kind: build
-        platform: toolchains/opt
-        symbol: TL(rust-1.28)
-        tier: 1
     worker-type: aws-provisioner-v1/gecko-{level}-b-linux
     worker:
         max-run-time: 7200
         env:
             UPLOAD_DIR: artifacts
     run:
-        using: toolchain-script
         script: repack_rust.py
+        toolchain-artifact: public/build/rustc.tar.xz
+
+linux64-rust-1.28:
+    treeherder:
+        symbol: TL(rust-1.28)
+    run:
         arguments: [
             '--channel', '1.28.0',
             '--host', 'x86_64-unknown-linux-gnu',
             '--target', 'x86_64-unknown-linux-gnu',
             '--target', 'i686-unknown-linux-gnu',
         ]
-        toolchain-artifact: public/build/rustc.tar.xz
 
 linux64-rust-1.31:
-    description: "rust repack"
     treeherder:
-        kind: build
-        platform: toolchains/opt
         symbol: TL(rust-1.31)
-        tier: 1
-    worker-type: aws-provisioner-v1/gecko-{level}-b-linux
-    worker:
-        max-run-time: 7200
-        env:
-            UPLOAD_DIR: artifacts
     run:
-        using: toolchain-script
-        script: repack_rust.py
         arguments: [
             '--channel', '1.31.0',
             '--host', 'x86_64-unknown-linux-gnu',
             '--target', 'x86_64-unknown-linux-gnu',
             '--target', 'i686-unknown-linux-gnu',
         ]
-        toolchain-artifact: public/build/rustc.tar.xz
 
 linux64-rust-1.32:
-    description: "rust repack"
     treeherder:
-        kind: build
-        platform: toolchains/opt
         symbol: TL(rust)
-        tier: 1
-    worker-type: aws-provisioner-v1/gecko-{level}-b-linux
-    worker:
-        max-run-time: 7200
-        env:
-            UPLOAD_DIR: artifacts
     run:
-        using: toolchain-script
-        script: repack_rust.py
         arguments: [
             '--channel', '1.32.0',
             '--host', 'x86_64-unknown-linux-gnu',
             '--target', 'x86_64-unknown-linux-gnu',
             '--target', 'i686-unknown-linux-gnu',
         ]
         toolchain-alias: linux64-rust
-        toolchain-artifact: public/build/rustc.tar.xz
 
 linux64-rust-nightly:
     description: "rust nightly repack"
     treeherder:
-        kind: build
-        platform: toolchains/opt
         symbol: TL(rust-nightly)
-        tier: 1
-    worker-type: aws-provisioner-v1/gecko-{level}-b-linux
-    worker:
-        max-run-time: 7200
-        env:
-            UPLOAD_DIR: artifacts
     run:
-        using: toolchain-script
-        script: repack_rust.py
         arguments: [
             '--channel', 'nightly-2018-10-05',
             '--host', 'x86_64-unknown-linux-gnu',
             '--target', 'x86_64-unknown-linux-gnu',
             '--target', 'i686-unknown-linux-gnu',
         ]
-        toolchain-artifact: public/build/rustc.tar.xz
 
 linux64-rust-macos-1.31:
     description: "rust repack with macos-cross support"
     treeherder:
-        kind: build
-        platform: toolchains/opt
         symbol: TL(rust-macos-1.31)
-        tier: 1
-    worker-type: aws-provisioner-v1/gecko-{level}-b-linux
-    worker:
-        max-run-time: 7200
-        env:
-            UPLOAD_DIR: artifacts
     run:
-        using: toolchain-script
-        script: repack_rust.py
         arguments: [
             '--channel', '1.31.0',
             '--host', 'x86_64-unknown-linux-gnu',
             '--target', 'x86_64-unknown-linux-gnu',
             '--target', 'x86_64-apple-darwin',
         ]
-        toolchain-artifact: public/build/rustc.tar.xz
 
 linux64-rust-macos-1.32:
     description: "rust repack with macos-cross support"
     treeherder:
-        kind: build
-        platform: toolchains/opt
         symbol: TL(rust-macos)
-        tier: 1
-    worker-type: aws-provisioner-v1/gecko-{level}-b-linux
-    worker:
-        max-run-time: 7200
-        env:
-            UPLOAD_DIR: artifacts
     run:
-        using: toolchain-script
-        script: repack_rust.py
         arguments: [
             '--channel', '1.32.0',
             '--host', 'x86_64-unknown-linux-gnu',
             '--target', 'x86_64-unknown-linux-gnu',
             '--target', 'x86_64-apple-darwin',
         ]
         toolchain-alias: linux64-rust-macos
-        toolchain-artifact: public/build/rustc.tar.xz
 
 linux64-rust-nightly-macos:
     description: "rust nightly repack with macos-cross support"
     treeherder:
-        kind: build
-        platform: toolchains/opt
         symbol: TL(rust-nightly-macos)
-        tier: 1
-    worker-type: aws-provisioner-v1/gecko-{level}-b-linux
-    worker:
-        max-run-time: 7200
-        env:
-            UPLOAD_DIR: artifacts
     run:
-        using: toolchain-script
-        script: repack_rust.py
         arguments: [
             '--channel', 'nightly-2018-10-05',
             '--host', 'x86_64-unknown-linux-gnu',
             '--target', 'x86_64-unknown-linux-gnu',
             '--target', 'x86_64-apple-darwin',
         ]
-        toolchain-artifact: public/build/rustc.tar.xz
 
 linux64-rust-android-1.32:
     description: "rust repack with android-cross support"
     treeherder:
-        kind: build
-        platform: toolchains/opt
         symbol: TL(rust-android)
-        tier: 1
-    worker-type: aws-provisioner-v1/gecko-{level}-b-linux
-    worker:
-        max-run-time: 7200
-        env:
-            UPLOAD_DIR: artifacts
     run:
-        using: toolchain-script
-        script: repack_rust.py
         arguments: [
             '--channel', '1.32.0',
             '--host', 'x86_64-unknown-linux-gnu',
             '--target', 'x86_64-unknown-linux-gnu',
             '--target', 'armv7-linux-androideabi',
             '--target', 'aarch64-linux-android',
             '--target', 'i686-linux-android',
             '--target', 'x86_64-linux-android',
         ]
         toolchain-alias: linux64-rust-android
-        toolchain-artifact: public/build/rustc.tar.xz
 
 win64-rust-1.28:
-    description: "rust repack"
     treeherder:
-        kind: build
-        platform: toolchains/opt
         symbol: TW64(rust-1.28)
-        tier: 1
-    worker-type: aws-provisioner-v1/gecko-{level}-b-linux
-    worker:
-        max-run-time: 7200
-        env:
-            UPLOAD_DIR: artifacts
     run:
-        using: toolchain-script
-        script: repack_rust.py
         arguments: [
             '--channel', '1.28.0',
             '--host', 'x86_64-pc-windows-msvc',
             '--target', 'x86_64-pc-windows-msvc',
             '--target', 'i686-pc-windows-msvc',
         ]
         toolchain-artifact: public/build/rustc.tar.bz2
 
 win64-rust-1.32:
-    description: "rust repack"
     treeherder:
-        kind: build
-        platform: toolchains/opt
         symbol: TW64(rust)
-        tier: 1
-    worker-type: aws-provisioner-v1/gecko-{level}-b-linux
-    worker:
-        max-run-time: 7200
-        env:
-            UPLOAD_DIR: artifacts
     run:
-        using: toolchain-script
-        script: repack_rust.py
         arguments: [
             '--channel', '1.32.0',
             '--host', 'x86_64-pc-windows-msvc',
             '--target', 'x86_64-pc-windows-msvc',
             '--target', 'i686-pc-windows-msvc',
         ]
         toolchain-alias: win64-rust
         toolchain-artifact: public/build/rustc.tar.bz2
 
 win64-rust-nightly:
     description: "rust nightly repack"
     treeherder:
-        kind: build
-        platform: toolchains/opt
         symbol: TW64(rust-nightly)
-        tier: 1
-    worker-type: aws-provisioner-v1/gecko-{level}-b-linux
-    worker:
-        max-run-time: 7200
-        env:
-            UPLOAD_DIR: artifacts
     run:
-        using: toolchain-script
-        script: repack_rust.py
         arguments: [
             '--channel', 'nightly-2018-10-05',
             '--host', 'x86_64-pc-windows-msvc',
             '--target', 'x86_64-pc-windows-msvc',
             '--target', 'i686-pc-windows-msvc',
         ]
         toolchain-artifact: public/build/rustc.tar.bz2
 
 win64-aarch64-rust:
     description: "rust repack with aarch64 support"
     treeherder:
-        kind: build
-        platform: toolchains/opt
         symbol: TW64(rust-aarch64)
-        tier: 1
-    worker-type: aws-provisioner-v1/gecko-{level}-b-linux
-    worker:
-        max-run-time: 7200
-        env:
-            UPLOAD_DIR: artifacts
     run:
-        using: toolchain-script
-        script: repack_rust.py
         arguments: [
             '--channel', '1.32.0',
             '--host', 'x86_64-pc-windows-msvc',
             '--target', 'x86_64-pc-windows-msvc',
             '--target', 'aarch64-pc-windows-msvc',
             '--target', 'i686-pc-windows-msvc',
         ]
         toolchain-artifact: public/build/rustc.tar.bz2
 
 mingw32-rust-1.31:
-    description: "rust repack"
     treeherder:
-        kind: build
-        platform: toolchains/opt
         symbol: TMW(rust-1.31)
-        tier: 1
-    worker-type: aws-provisioner-v1/gecko-{level}-b-linux
-    worker:
-        max-run-time: 7200
-        env:
-            UPLOAD_DIR: artifacts
     run:
-        using: toolchain-script
-        script: repack_rust.py
         arguments: [
             '--channel', '1.31.0',
             '--host', 'x86_64-unknown-linux-gnu',
             '--target', 'i686-unknown-linux-gnu',
             '--target', 'i686-pc-windows-gnu',
             '--target', 'x86_64-pc-windows-gnu',
             '--target', 'x86_64-unknown-linux-gnu',
         ]
-        toolchain-artifact: public/build/rustc.tar.xz
 
 mingw32-rust-1.32:
-    description: "rust repack"
     treeherder:
-        kind: build
-        platform: toolchains/opt
         symbol: TMW(rust)
-        tier: 1
-    worker-type: aws-provisioner-v1/gecko-{level}-b-linux
-    worker:
-        max-run-time: 7200
-        env:
-            UPLOAD_DIR: artifacts
     run:
-        using: toolchain-script
-        script: repack_rust.py
         arguments: [
             '--channel', '1.32.0',
             '--host', 'x86_64-unknown-linux-gnu',
             '--target', 'i686-unknown-linux-gnu',
             '--target', 'i686-pc-windows-gnu',
             '--target', 'x86_64-pc-windows-gnu',
             '--target', 'x86_64-unknown-linux-gnu',
         ]
         toolchain-alias: mingw32-rust
-        toolchain-artifact: public/build/rustc.tar.xz
--- a/taskcluster/ci/toolchain/sccache.yml
+++ b/taskcluster/ci/toolchain/sccache.yml
@@ -1,44 +1,38 @@
 # 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/.
 
-linux64-sccache:
+job-defaults:
     description: "sccache toolchain build"
     treeherder:
-        kind: build
-        platform: toolchains/opt
         symbol: TL(sccache)
-        tier: 1
-    worker-type: aws-provisioner-v1/gecko-{level}-b-linux
-    worker:
-        max-run-time: 1800
     run:
         using: toolchain-script
         script: build-sccache.sh
         resources:
             - 'taskcluster/scripts/misc/tooltool-download.sh'
+
+linux64-sccache:
+    treeherder:
+        symbol: TL(sccache)
+    worker-type: aws-provisioner-v1/gecko-{level}-b-linux
+    worker:
+        max-run-time: 1800
+    run:
         toolchain-artifact: public/build/sccache2.tar.xz
     toolchains:
         - linux64-rust-1.28
         - linux64-binutils
 
 win64-sccache:
-    description: "sccache toolchain build"
     treeherder:
-        kind: build
-        platform: toolchains/opt
         symbol: TW64(sccache)
-        tier: 1
     worker-type: aws-provisioner-v1/gecko-{level}-b-win2012
     worker:
         max-run-time: 3600
         env:
             TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win64/sccache-build.manifest"
     run:
-        using: toolchain-script
-        script: build-sccache.sh
-        resources:
-            - 'taskcluster/scripts/misc/tooltool-download.sh'
         toolchain-artifact: public/build/sccache2.tar.bz2
     toolchains:
         - win64-rust-1.28