taskcluster/ci/toolchain/linux.yml
author Mike Hommey <mh+mozilla@glandium.org>
Fri, 11 Jan 2019 22:29:35 +0000
changeset 453577 a58fad772b6f940c06c65e8f8c686f5e39d09175
parent 453148 d4320750e1bf2cb20020d9b4461b9279098d79fc
child 455968 9a8a9e60b2676ad6464d75d1627a2499e0092fd3
permissions -rwxr-xr-x
Bug 1391408 - Build minidump_stackwalk as a toolchain. r=froydnj This produces the same executables (produced for the same platforms) as those currently pulled from tooltool (modulo timestamps, maybe changes since last manifest change, etc.). Unfortunately, as of currently, the Windows variant needs to be cross-built with mingw because it doesn't compile without some POSIX APIs that MSVC/Windows SDK don't provide. One thing that is left out of this change is whether to be completely accurate with the toolchain cache hash (requiring a large list of files as resources, and making those built very frequently), whether we'd rely on manual updates, or if we should go with completely uncached tasks. This can be left for a followup, the tasks not being hooked up to be actually used by other tasks yet. Differential Revision: https://phabricator.services.mozilla.com/D16302

# 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}

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

linux64-clang-tidy:
    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
        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-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-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-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
            - gcc-6.4.0
            - gmp-5.1.3
            - mpc-0.8.2
            - mpfr-3.1.5

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-cctools-port:
    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'
        toolchain-artifact: public/build/cctools.tar.xz
    toolchains:
        - linux64-clang-7

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-node:
    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:
        docker-image: {in-tree: toolchain-build}
        max-run-time: 1800
    run:
        using: toolchain-script
        script: repack-node.sh
        arguments: ['linux64']
        toolchain-artifact: public/build/node.tar.xz

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/**'
            - 'mobile/android/config/mozconfigs/common*'
            - 'mobile/android/gradle.configure'
        toolchain-artifact: public/build/android-gradle-dependencies.tar.xz
        toolchain-alias: android-gradle-dependencies
    toolchains:
        # Aliases aren't allowed for toolchains depending on toolchains.
        - linux64-android-sdk-linux-repack
        - linux64-node

linux64-rust-1.28:
    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
        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)
        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-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)
        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-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.31:
    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.31.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

linux64-sccache:
    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'
        toolchain-artifact: public/build/sccache2.tar.xz
    toolchains:
        - linux64-rust-1.28
        - linux64-binutils

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

linux64-rust-size:
    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'
        toolchain-artifact: public/build/rust-size.tar.xz
    toolchains:
        - linux64-rust-1.28

linux64-grcov:
    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
    toolchains:
        - linux64-rust-1.28
        - linux64-clang-7

linux64-gn:
    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:
        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-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-upx:
    description: "UPX build for MinGW32 Cross Compile"
    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
    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'
        toolchain-artifact: public/build/fxc2.tar.xz
    toolchains:
        - linux64-clang-trunk-mingw-x86

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.31  # whatever m-c is built with

linux64-minidump-stackwalk:
    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
    toolchains:
        - linux64-clang-7
        - linux64-binutils
        - linux64-rust-1.31