taskcluster/ci/toolchain/linux.yml
author Mike Hommey <mh+mozilla@glandium.org>
Tue, 16 Jan 2018 16:23:33 +0900
changeset 399549 aee6cb0464d79fe892e526fc566e2f96629da61c
parent 399176 fd14af0fbb8f13ab09e23423b4d6134fbf909855
child 399768 2b06dfba4557a49e7f271f4091fcac3eb79297d2
permissions -rwxr-xr-x
Bug 1430315 - Add a toolchain job to build llvm-dsymutil independently. r=rillian We've had problems with crashes in llvm-dsymutil for a while, and while they are, in essence, due to the fact that rustc produces bad debug info, they are a hurdle to our builds. The tool comes along clang, and updating clang is not necessarily easy (witness bug 1409265), so, so far, we've relied on backporting fixes, which can be time confusing (witness bug 1410148). OTOH, llvm-dsymutil is a rather specific tool, that doesn't strictly need to be tied to clang. It's only tied to it because it uses the llvm code to do some of the things it does, and it's part of the llvm source tree. But it could just as well be a separate tool, like it was(is?) on OSX. So, we add a toolchain job to build it from the llvm source, independently from clang, so that we can update it separately, if we hit new crashes that happen to already be fixed on llvm trunk. It will also allow to more easily update after upstream fixes crashes after we report them.

# 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
    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-alias: linux64-clang
        toolchain-artifact: public/build/clang.tar.xz
    toolchains:
        - linux64-gcc-4.9

linux64-clang-4:
    description: "Clang 4 toolchain build"
    treeherder:
        kind: build
        platform: toolchains/opt
        symbol: TL(clang4)
        tier: 1
    worker-type: aws-provisioner-v1/gecko-{level}-b-linux
    worker:
        max-run-time: 7200
    run:
        using: toolchain-script
        script: build-clang-4-linux.sh
        resources:
            - 'build/build-clang/build-clang.py'
            - 'build/build-clang/clang-4-linux64.json'
            - 'taskcluster/scripts/misc/tooltool-download.sh'
        toolchain-artifact: public/build/clang.tar.xz
    toolchains:
        - linux64-gcc-4.9

linux64-clang-5:
    description: "Clang 5 toolchain build"
    treeherder:
        kind: build
        platform: toolchains/opt
        symbol: TL(clang5)
        tier: 1
    worker-type: aws-provisioner-v1/gecko-{level}-b-linux
    worker:
        max-run-time: 7200
    run:
        using: toolchain-script
        script: build-clang-5-linux.sh
        resources:
            - 'build/build-clang/build-clang.py'
            - 'build/build-clang/clang-5-linux64.json'
            - 'taskcluster/scripts/misc/tooltool-download.sh'
        toolchain-artifact: public/build/clang.tar.xz
    toolchains:
        - linux64-gcc-4.9

linux64-clang-6-pre:
    description: "Clang 6 Pre toolchain build"
    treeherder:
        kind: build
        platform: toolchains/opt
        symbol: TL(clang6p)
        tier: 1
    worker-type: aws-provisioner-v1/gecko-{level}-b-linux
    worker:
        max-run-time: 7200
    run:
        using: toolchain-script
        script: build-clang-6-pre-linux.sh
        resources:
            - 'build/build-clang/build-clang.py'
            - 'build/build-clang/clang-6-pre-linux64.json'
            - 'taskcluster/scripts/misc/tooltool-download.sh'
        toolchain-artifact: public/build/clang.tar.xz
    toolchains:
        - 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
    worker:
        max-run-time: 36000
    run:
        using: toolchain-script
        script: build-clang-tidy-linux.sh
        resources:
            - 'build/clang-plugin/**'
            - 'build/build-clang/build-clang.py'
            - 'build/build-clang/clang-tidy-linux64.json'
            - 'taskcluster/scripts/misc/tooltool-download.sh'
        toolchain-artifact: public/build/clang-tidy.tar.xz
    toolchains:
        - linux64-gcc-4.9

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: 36000
    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

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: 36000
    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

linux64-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-4.9

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: 36000
    run:
        using: toolchain-script
        script: build-binutils-linux.sh
        resources:
            - 'build/unix/build-binutils/build-binutils.sh'
        toolchain-artifact: public/build/binutils.tar.xz

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: 36000
    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-3.9

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: 36000
    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-3.9

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:
        docker-image: {in-tree: desktop-build}
        max-run-time: 36000
    run:
        using: toolchain-script
        script: build-libdmg-hfsplus.sh
        toolchain-artifact: public/build/dmg.tar.xz

linux64-proguard-jar-repack:
    description: "proguard.jar repack toolchain build"
    treeherder:
        kind: build
        platform: toolchains/opt
        symbol: TL(proguard-jar)
        tier: 1
    worker-type: aws-provisioner-v1/gecko-{level}-b-linux
    worker:
        max-run-time: 36000
    run:
        using: toolchain-script
        script: repack-proguard-jar.sh
        toolchain-artifact: public/build/proguard-jar.tar.xz
        toolchain-alias: proguard-jar

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: 36000
        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-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: 36000
    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-proguard-jar-repack

linux64-rust-1.22:
    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.22.1',
            '--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-1.19:
    description: "rust repack"
    treeherder:
        kind: build
        platform: toolchains/opt
        symbol: TL(rust-1.19)
        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.19.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-macos-1.22:
    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.22.1',
            '--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-android-1.22:
    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.22.1',
            '--host', 'x86_64-unknown-linux-gnu',
            '--target', 'x86_64-unknown-linux-gnu',
            '--target', 'armv7-linux-androideabi',
            '--target', 'aarch64-linux-android',
            '--target', 'i686-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: 36000
    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.19

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: 36000
    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
    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: desktop-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: desktop-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: desktop-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

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: desktop-build}
        max-run-time: 3600
    run:
        using: toolchain-script
        script: build-mingw32-nsis.sh
        toolchain-artifact: public/build/nsis.tar.xz
    toolchains:
        - linux64-mingw32-gcc

linux64-mingw32-fxc2:
    description: "fxc2.exe build for MinGW32 Cross Compile"
    treeherder:
        kind: build
        platform: toolchains/opt
        symbol: TMW(mingw32-fxc2)
        tier: 2
    worker-type: aws-provisioner-v1/gecko-{level}-b-linux
    worker:
        docker-image: {in-tree: desktop-build}
        max-run-time: 1800
    run:
        using: toolchain-script
        script: build-mingw32-fxc2.sh
        toolchain-artifact: public/build/fxc2.tar.xz
    toolchains:
        - linux64-mingw32-gcc