taskcluster/ci/toolchain/linux.yml
author Kartikaya Gupta <kgupta@mozilla.com>
Wed, 09 Jan 2019 21:56:22 +0000
changeset 453148 d4320750e1bf2cb20020d9b4461b9279098d79fc
parent 453060 266dce70b10ee2f926e77b789e20730966be4976
child 453577 a58fad772b6f940c06c65e8f8c686f5e39d09175
permissions -rwxr-xr-x
Bug 1518902 - Promote WR standalone CI jobs to tier-1. r=aryx Differential Revision: https://phabricator.services.mozilla.com/D16087

# 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: 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: [
            '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