taskcluster/ci/toolchain/windows.yml
author Mike Hommey <mh+mozilla@glandium.org>
Fri, 11 Jan 2019 22:29:35 +0000
changeset 453577 a58fad772b6f
parent 453060 266dce70b10e
child 455469 1bb6959a6990
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/.

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

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

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:
        docker-image: {in-tree: toolchain-build}
        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.31:
    description: "rust repack"
    treeherder:
        kind: build
        platform: toolchains/opt
        symbol: TW64(rust)
        tier: 1
    worker-type: aws-provisioner-v1/gecko-{level}-b-linux
    worker:
        docker-image: {in-tree: toolchain-build}
        max-run-time: 7200
        env:
            UPLOAD_DIR: artifacts
    run:
        using: toolchain-script
        script: repack_rust.py
        arguments: [
            '--channel', '1.31.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:
        docker-image: {in-tree: toolchain-build}
        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-nightly:
    description: "rust nightly repack with aarch64 support"
    treeherder:
        kind: build
        platform: toolchains/opt
        symbol: TW64(rust-aarch64-nightly)
        tier: 1
    worker-type: aws-provisioner-v1/gecko-{level}-b-linux
    worker:
        docker-image: {in-tree: toolchain-build}
        max-run-time: 7200
        env:
            UPLOAD_DIR: artifacts
    run:
        using: toolchain-script
        script: repack_rust.py
        arguments: [
            '--channel', 'nightly-2018-11-08',
            '--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

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

mingw32-rust-1.31:
    description: "rust repack"
    treeherder:
        kind: build
        platform: toolchains/opt
        symbol: TMW(rust)
        tier: 1
    worker-type: aws-provisioner-v1/gecko-{level}-b-linux
    worker:
        docker-image: {in-tree: toolchain-build}
        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-alias: mingw32-rust
        toolchain-artifact: public/build/rustc.tar.xz

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

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

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

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

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

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