taskcluster/ci/build/windows.yml
author Tom Prince <mozilla@hocat.ca>
Wed, 15 May 2019 19:10:23 +0000
changeset 535882 d1fa8dc33e401083572bb818559ac2bc4d29338b
parent 535354 5b16530634db7c61169f6adf32acda2b96922fad
child 536329 9fc0f690af5abfa8245d078f9c92099b3ca42bdf
permissions -rwxr-xr-x
Bug 1551738: Don't try to generate stub installer on esr branches; r=Callek They don't get built on ESR, so don't indicate to taskcluster that we do. Differential Revision: https://phabricator.services.mozilla.com/D31187

# 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:
    run:
        using: mozharness
        use-caches: false

win32/debug:
    description: "Win32 Debug"
    index:
        product: firefox
        job-name: win32-debug
    attributes:
        enable-full-crashsymbols: true
    treeherder:
        platform: windows2012-32/debug
        symbol: B
        tier: 1
    worker-type: b-win2012
    worker:
        max-run-time: 7200
        env:
            TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win32/releng.manifest"
    run:
        options: [append-env-variables-from-configs]
        script: mozharness/scripts/fx_desktop_build.py
        secrets: true
        config:
            - builds/releng_base_firefox.py
            - builds/taskcluster_base_windows.py
            - builds/taskcluster_base_win32.py
            - builds/taskcluster_sub_win32/debug.py
        mozconfig-variant: debug
    toolchains:
        - win64-clang-cl
        - win64-rust
        - win64-rust-size
        - win64-cbindgen
        - win64-sccache
        - win64-nasm
        - win64-node

win32/opt:
    description: "Win32 Opt"
    index:
        product: firefox
        job-name: win32-opt
    attributes:
        enable-full-crashsymbols: true
    treeherder:
        platform: windows2012-32/opt
        symbol: B
        tier: 1
    worker-type: b-win2012
    worker:
        max-run-time: 7200
        env:
            TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win32/releng.manifest"
    run:
        options: [append-env-variables-from-configs]
        script: mozharness/scripts/fx_desktop_build.py
        secrets: true
        config:
            - builds/releng_base_firefox.py
            - builds/taskcluster_base_windows.py
            - builds/taskcluster_base_win32.py
        extra-config:
            stage_platform: win32
    run-on-projects: ['mozilla-central', 'try']
    toolchains:
        - win64-clang-cl
        - win64-rust
        - win64-rust-size
        - win64-cbindgen
        - win64-sccache
        - win64-nasm
        - win64-node

win64/debug:
    description: "Win64 Debug"
    index:
        product: firefox
        job-name: win64-debug
    attributes:
        enable-full-crashsymbols: true
    treeherder:
        platform: windows2012-64/debug
        symbol: B
        tier: 1
    worker-type: b-win2012
    worker:
        max-run-time: 7200
        env:
            TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win64/releng.manifest"
    run:
        options: [append-env-variables-from-configs]
        script: mozharness/scripts/fx_desktop_build.py
        secrets: true
        config:
            - builds/releng_base_firefox.py
            - builds/taskcluster_base_windows.py
            - builds/taskcluster_base_win64.py
            - builds/taskcluster_sub_win64/debug.py
        mozconfig-variant: debug
    toolchains:
        - win64-clang-cl
        - win64-rust
        - win64-rust-size
        - win64-cbindgen
        - win64-sccache
        - win64-nasm
        - win64-node

win64-fuzzing/debug:
    description: "Win64 Fuzzing Debug"
    index:
        product: firefox
        job-name: win64-fuzzing-debug
    attributes:
        enable-full-crashsymbols: true
    treeherder:
        platform: windows2012-64/debug
        symbol: Bf
        tier: 1
    worker-type: b-win2012
    worker:
        max-run-time: 7200
        env:
            PERFHERDER_EXTRA_OPTIONS: fuzzing
            TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win64/releng.manifest"
    run:
        options: [append-env-variables-from-configs]
        script: mozharness/scripts/fx_desktop_build.py
        secrets: true
        config:
            - builds/releng_base_firefox.py
            - builds/taskcluster_base_windows.py
            - builds/taskcluster_base_win64.py
            - builds/taskcluster_sub_win64/debug.py
        mozconfig-variant: debug-fuzzing
    run-on-projects: ['trunk', 'try']
    toolchains:
        - win64-clang-cl
        - win64-rust
        - win64-rust-size
        - win64-cbindgen
        - win64-sccache
        - win64-nasm
        - win64-node

win64-plain/debug:
    description: "Win64 Debug Plain"
    index:
        product: firefox
        job-name: win64-plain-debug
    treeherder:
        platform: windows2012-64/debug
        symbol: Bp
        tier: 2
    worker-type: b-win2012
    worker:
        max-run-time: 7200
        env:
            PERFHERDER_EXTRA_OPTIONS: plain
            TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win64/releng.manifest"
    run:
        actions: [build, check-test]
        options: [append-env-variables-from-configs]
        script: mozharness/scripts/fx_desktop_build.py
        config:
            - builds/releng_base_firefox.py
            - builds/taskcluster_base_windows.py
            - builds/taskcluster_base_win64.py
        extra-config:
            disable_package_metrics: true
            stage_platform: win64
        mozconfig-variant: plain-debug
    run-on-projects: ['trunk']
    toolchains:
        - win64-clang-cl
        - win64-rust
        - win64-node
        - win64-nasm
        - win64-cbindgen

win64/opt:
    description: "Win64 Opt"
    index:
        product: firefox
        job-name: win64-opt
    attributes:
        enable-full-crashsymbols: true
    treeherder:
        platform: windows2012-64/opt
        symbol: B
        tier: 1
    worker-type: b-win2012
    worker:
        max-run-time: 7200
        env:
            TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win64/releng.manifest"
    run:
        options: [append-env-variables-from-configs]
        script: mozharness/scripts/fx_desktop_build.py
        secrets: true
        config:
            - builds/releng_base_firefox.py
            - builds/taskcluster_base_windows.py
            - builds/taskcluster_base_win64.py
        extra-config:
            stage_platform: win64
    run-on-projects: ['mozilla-central', 'try']
    toolchains:
        - win64-clang-cl
        - win64-rust
        - win64-rust-size
        - win64-cbindgen
        - win64-sccache
        - win64-nasm
        - win64-node

win64-plain/opt:
    description: "Win64 Opt Plain"
    index:
        product: firefox
        job-name: win64-plain-opt
    treeherder:
        platform: windows2012-64/opt
        symbol: Bp
        tier: 2
    worker-type: b-win2012
    worker:
        max-run-time: 7200
        env:
            PERFHERDER_EXTRA_OPTIONS: plain
            TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win64/releng.manifest"
    run:
        actions: [build]
        options: [append-env-variables-from-configs]
        script: mozharness/scripts/fx_desktop_build.py
        config:
            - builds/releng_base_firefox.py
            - builds/taskcluster_base_windows.py
            - builds/taskcluster_base_win64.py
        extra-config:
            disable_package_metrics: true
            stage_platform: win64
        mozconfig-variant: plain-opt
    run-on-projects: ['mozilla-central', 'try']
    toolchains:
        - win64-clang-cl
        - win64-rust
        - win64-nasm
        - win64-node
        - win64-cbindgen

win32-shippable/opt:
    description: "Win32 Opt Shippable"
    index:
        product: firefox
        job-name: win32-opt
        type: shippable
    attributes:
        shippable: true
        enable-full-crashsymbols: true
    stub-installer:
        by-release-type:
            nightly: true
            beta: true
            release: true
            esr.*: false
            default:
                by-project:
                    # browser/confvars.sh looks for nightly-try
                    try: true
                    default: false
    shipping-phase: build
    shipping-product: firefox
    treeherder:
        platform: windows2012-32-shippable/opt
        symbol: B
        tier: 1
    worker-type: b-win2012
    worker:
        max-run-time: 10800
        env:
            TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win32/releng.manifest"
    run:
        options: [append-env-variables-from-configs]
        script: mozharness/scripts/fx_desktop_build.py
        secrets: true
        config:
            - builds/releng_base_firefox.py
            - builds/taskcluster_base_windows.py
            - builds/taskcluster_base_win32.py
            - taskcluster_nightly.py
        extra-config:
            stage_platform: win32
    toolchains:
        - win64-clang-cl
        - win64-rust
        - win64-rust-size
        - win64-cbindgen
        - win64-nasm
        - win64-node

win64-shippable/opt:
    description: "Win64 Shippable"
    index:
        product: firefox
        job-name: win64-opt
        type: shippable
    attributes:
        shippable: true
        enable-full-crashsymbols: true
    shipping-phase: build
    shipping-product: firefox
    treeherder:
        platform: windows2012-64-shippable/opt
        symbol: B
        tier: 1
    worker-type: b-win2012
    worker:
        max-run-time: 10800
        env:
            TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win64/releng.manifest"
    run:
        options: [append-env-variables-from-configs]
        script: mozharness/scripts/fx_desktop_build.py
        secrets: true
        config:
            - builds/releng_base_firefox.py
            - builds/taskcluster_base_windows.py
            - builds/taskcluster_base_win64.py
            - taskcluster_nightly.py
        extra-config:
            stage_platform: win64
    toolchains:
        - win64-clang-cl
        - win64-rust
        - win64-rust-size
        - win64-cbindgen
        - win64-nasm
        - win64-node

win32-add-on-devel/opt:
    description: "Windows32 add-on-devel"
    index:
        product: firefox
        job-name: win32-add-on-devel
    treeherder:
        platform: windows2012-32-add-on-devel/opt
        symbol: B
        tier: 2
    worker-type: b-win2012
    worker:
        max-run-time: 10800
        env:
            TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win32/releng.manifest"
    run:
        options: [append-env-variables-from-configs]
        script: "mozharness/scripts/fx_desktop_build.py"
        secrets: true
        config:
            - builds/releng_base_firefox.py
            - builds/taskcluster_base_windows.py
            - builds/taskcluster_base_win32.py
        extra-config:
            stage_platform: win32-add-on-devel
        mozconfig-variant: add-on-devel
    run-on-projects: ['mozilla-beta', 'mozilla-release']
    toolchains:
        - win64-clang-cl
        - win64-rust
        - win64-rust-size
        - win64-cbindgen
        - win64-sccache
        - win64-nasm
        - win64-node

win64-add-on-devel/opt:
    description: "Windows64 add-on-devel"
    index:
        product: firefox
        job-name: win64-add-on-devel
    treeherder:
        platform: windows2012-64-add-on-devel/opt
        symbol: B
        tier: 2
    worker-type: b-win2012
    worker:
        max-run-time: 10800
        env:
            TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win64/releng.manifest"
    run:
        options: [append-env-variables-from-configs]
        script: "mozharness/scripts/fx_desktop_build.py"
        secrets: true
        config:
            - builds/releng_base_firefox.py
            - builds/taskcluster_base_windows.py
            - builds/taskcluster_base_win64.py
        extra-config:
            stage_platform: win64-on-devel
        mozconfig-variant: add-on-devel
    run-on-projects: ['mozilla-beta', 'mozilla-release']
    toolchains:
        - win64-clang-cl
        - win64-rust
        - win64-rust-size
        - win64-cbindgen
        - win64-sccache
        - win64-nasm
        - win64-node

win64-noopt/debug:
    description: "Win64 No-optimize Debug"
    index:
        product: firefox
        job-name: win64-noopt-debug
    treeherder:
        platform: windows2012-64-noopt/debug
        symbol: B
        tier: 2
    worker-type: b-win2012
    worker:
        max-run-time: 7200
        env:
            TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win64/releng.manifest"
    run:
        options: [append-env-variables-from-configs]
        script: mozharness/scripts/fx_desktop_build.py
        secrets: true
        config:
            - builds/releng_base_firefox.py
            - builds/taskcluster_base_windows.py
            - builds/taskcluster_base_win64.py
            - builds/taskcluster_sub_win64/noopt_debug.py
        mozconfig-variant: noopt-debug
    run-on-projects: ['trunk', 'try']
    toolchains:
        - win64-clang-cl
        - win64-rust
        - win64-rust-size
        - win64-cbindgen
        - win64-sccache
        - win64-nasm
        - win64-node

win32-noopt/debug:
    description: "Win32 No-optimize Debug"
    index:
        product: firefox
        job-name: win32-noopt-debug
    treeherder:
        platform: windows2012-32-noopt/debug
        symbol: B
        tier: 2
    worker-type: b-win2012
    worker:
        max-run-time: 7200
        env:
            TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win32/releng.manifest"
    run:
        options: [append-env-variables-from-configs]
        script: mozharness/scripts/fx_desktop_build.py
        secrets: true
        config:
            - builds/releng_base_firefox.py
            - builds/taskcluster_base_windows.py
            - builds/taskcluster_base_win32.py
            - builds/taskcluster_sub_win32/noopt_debug.py
        mozconfig-variant: noopt-debug
    run-on-projects: ['trunk', 'try']
    toolchains:
        - win64-clang-cl
        - win64-rust
        - win64-rust-size
        - win64-cbindgen
        - win64-sccache
        - win64-nasm
        - win64-node

win32-rusttests/opt:
    description: "Win32 Rust Tests Opt"
    index:
        product: firefox
        job-name: win32-rusttests-opt
    treeherder:
        platform: windows2012-32/opt
        symbol: BR
        tier: 1
    worker-type: b-win2012
    worker:
        max-run-time: 5400
        env:
            PERFHERDER_EXTRA_OPTIONS: rusttests
            TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win32/releng.manifest"
    run:
        actions: [get-secrets, build]
        options: [append-env-variables-from-configs]
        script: mozharness/scripts/fx_desktop_build.py
        secrets: true
        config:
            - builds/releng_base_firefox.py
            - builds/taskcluster_base_windows.py
            - builds/taskcluster_base_win32.py
        extra-config:
            stage_platform: win32-rusttests
            build_targets: ['pre-export', 'export', 'recurse_rusttests']
            disable_package_metrics: true
        mozconfig-variant: rusttests
    run-on-projects: ['trunk', 'try']
    toolchains:
        - win64-clang-cl
        - win64-rust
        - win64-cbindgen
        - win64-sccache
        - win64-nasm
        - win64-node

win32-rusttests/debug:
    description: "Win32 Rust Tests Debug"
    index:
        product: firefox
        job-name: win32-rusttests-debug
    treeherder:
        platform: windows2012-32/debug
        symbol: BR
        tier: 1
    worker-type: b-win2012
    worker:
        max-run-time: 5400
        env:
            PERFHERDER_EXTRA_OPTIONS: rusttests
            TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win32/releng.manifest"
    run:
        actions: [get-secrets, build]
        options: [append-env-variables-from-configs]
        script: mozharness/scripts/fx_desktop_build.py
        secrets: true
        config:
            - builds/releng_base_firefox.py
            - builds/taskcluster_base_windows.py
            - builds/taskcluster_base_win32.py
        extra-config:
            stage_platform: win32-rusttests
            build_targets: ['pre-export', 'export', 'recurse_rusttests']
            disable_package_metrics: true
        mozconfig-variant: rusttests-debug
    run-on-projects: ['trunk', 'try']
    toolchains:
        - win64-clang-cl
        - win64-rust
        - win64-cbindgen
        - win64-sccache
        - win64-nasm
        - win64-node

win64-rusttests/opt:
    description: "Win64 Rust Tests Opt"
    index:
        product: firefox
        job-name: win64-rusttests-opt
    treeherder:
        platform: windows2012-64/opt
        symbol: BR
        tier: 1
    worker-type: b-win2012
    worker:
        max-run-time: 5400
        env:
            PERFHERDER_EXTRA_OPTIONS: rusttests
            TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win64/releng.manifest"
    run:
        actions: [get-secrets, build]
        options: [append-env-variables-from-configs]
        script: mozharness/scripts/fx_desktop_build.py
        secrets: true
        config:
            - builds/releng_base_firefox.py
            - builds/taskcluster_base_windows.py
            - builds/taskcluster_base_win64.py
            - builds/taskcluster_sub_win64/rusttests_opt.py
        mozconfig-variant: rusttests
    run-on-projects: ['trunk', 'try']
    toolchains:
        - win64-clang-cl
        - win64-rust
        - win64-cbindgen
        - win64-sccache
        - win64-nasm
        - win64-node

win64-rusttests/debug:
    description: "Win64 Rust Tests Debug"
    index:
        product: firefox
        job-name: win64-rusttests-debug
    treeherder:
        platform: windows2012-64/debug
        symbol: BR
        tier: 1
    worker-type: b-win2012
    worker:
        max-run-time: 5400
        env:
            PERFHERDER_EXTRA_OPTIONS: rusttests
            TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win64/releng.manifest"
    run:
        actions: [get-secrets, build]
        options: [append-env-variables-from-configs]
        script: mozharness/scripts/fx_desktop_build.py
        secrets: true
        config:
            - builds/releng_base_firefox.py
            - builds/taskcluster_base_windows.py
            - builds/taskcluster_base_win64.py
            - builds/taskcluster_sub_win64/rusttests_opt.py
        mozconfig-variant: rusttests-debug
    run-on-projects: ['trunk', 'try']
    toolchains:
        - win64-clang-cl
        - win64-rust
        - win64-cbindgen
        - win64-sccache
        - win64-nasm
        - win64-node

win64-ccov/debug:
    description: "Win64 Debug Code Coverage"
    index:
        product: firefox
        job-name: win64-ccov-debug
    treeherder:
        platform: windows2012-64/ccov
        symbol: B
        tier: 2
    worker-type: b-win2012
    worker:
        artifacts:
            - name: public/code-coverage-grcov.zip
              path: build\src\obj-firefox\code-coverage-grcov.zip
              type: file
        max-run-time: 7200
        env:
            TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win64/releng.manifest"
    run:
        options: [append-env-variables-from-configs]
        script: mozharness/scripts/fx_desktop_build.py
        secrets: true
        config:
            - builds/releng_base_firefox.py
            - builds/taskcluster_base_windows.py
            - builds/taskcluster_base_win64.py
            - builds/taskcluster_sub_win64/ccov_debug.py
        mozconfig-variant: code-coverage
    run-on-projects: ['mozilla-central', 'try']
    toolchains:
        - win64-clang-cl
        - win64-rust-nightly
        - win64-rust-size
        - win64-cbindgen
        - win64-sccache
        - win64-nasm
        - win64-node
    fetches:
        toolchain:
            - win64-grcov

win64-asan/debug:
    description: "Win64 Debug ASAN"
    index:
        product: firefox
        job-name: win64-asan-debug
    treeherder:
        platform: windows2012-64/asan
        symbol: Bd
        tier: 1
    worker-type: b-win2012
    worker:
        max-run-time: 7200
        env:
            TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win64/releng.manifest"
            PERFHERDER_EXTRA_OPTIONS: "debug asan"
    run:
        options: [append-env-variables-from-configs]
        script: mozharness/scripts/fx_desktop_build.py
        secrets: true
        config:
            - builds/releng_base_firefox.py
            - builds/taskcluster_base_windows.py
            - builds/taskcluster_base_win64.py
            - builds/taskcluster_sub_win64/asan_debug.py
        mozconfig-variant: debug-asan
    run-on-projects: ['trunk', 'try']
    toolchains:
        - win64-clang-cl
        - win64-rust
        - win64-rust-size
        - win64-cbindgen
        - win64-sccache
        - win64-nasm
        - win64-node

win64-asan/opt:
    description: "Win64 Opt ASAN"
    index:
        product: firefox
        job-name: win64-asan-opt
    treeherder:
        platform: windows2012-64/asan
        symbol: Bo
        tier: 1
    worker-type: b-win2012
    worker:
        max-run-time: 7200
        env:
            TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win64/releng.manifest"
            PERFHERDER_EXTRA_OPTIONS: "opt asan"
    run:
        options: [append-env-variables-from-configs]
        script: mozharness/scripts/fx_desktop_build.py
        secrets: true
        config:
            - builds/releng_base_firefox.py
            - builds/taskcluster_base_windows.py
            - builds/taskcluster_base_win64.py
        extra-config:
            stage_platform: win64-asan
        mozconfig-variant: nightly-asan
    run-on-projects: ['trunk', 'try']
    toolchains:
        - win64-clang-cl
        - win64-rust
        - win64-rust-size
        - win64-cbindgen
        - win64-sccache
        - win64-nasm
        - win64-node

win64-asan-reporter-nightly/opt:
    description: "Win64 Opt ASAN Reporter Nightly"
    attributes:
        nightly: true
    shipping-product:
        by-release-type:
            nightly: firefox
            default: null
    index:
        product: firefox
        job-name: win64-asan-reporter-opt
        type: nightly
    treeherder:
        platform: win64-asan-reporter/opt
        symbol: BoR
    worker-type: b-win2012
    worker:
        max-run-time: 7200
        env:
            TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win64/releng.manifest"
            PERFHERDER_EXTRA_OPTIONS: "asan-reporter"
    run:
        options: [append-env-variables-from-configs]
        script: mozharness/scripts/fx_desktop_build.py
        secrets: true
        config:
            - builds/releng_base_firefox.py
            - builds/taskcluster_base_windows.py
            - builds/taskcluster_base_win64.py
            - builds/taskcluster_sub_win64/asan_reporter_opt.py
            - taskcluster_nightly.py
        extra-config:
            stage_platform: win64-asan-reporter
        mozconfig-variant: nightly-asan-reporter
    run-on-projects: ['mozilla-central']
    toolchains:
        - win64-clang-cl
        - win64-rust
        - win64-rust-size
        - win64-cbindgen
        - win64-nasm
        - win64-node

win64-asan-fuzzing/opt:
    description: "Win64 Fuzzing Opt ASAN"
    index:
        product: firefox
        job-name: win64-fuzzing-asan-opt
    treeherder:
        platform: windows2012-64/asan
        symbol: Bof
    worker-type: b-win2012
    worker:
        max-run-time: 7200
        env:
            TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win64/releng.manifest"
            PERFHERDER_EXTRA_OPTIONS: fuzzing-asan
    run:
        options: [append-env-variables-from-configs]
        script: mozharness/scripts/fx_desktop_build.py
        secrets: true
        config:
            - builds/releng_base_firefox.py
            - builds/taskcluster_base_windows.py
            - builds/taskcluster_base_win64.py
        extra-config:
            stage_platform: win64-fuzzing-asan
        mozconfig-variant: nightly-fuzzing-asan
    run-on-projects: ['trunk', 'try']
    toolchains:
        - win64-clang-cl
        - win64-rust
        - win64-rust-size
        - win64-cbindgen
        - win64-sccache
        - win64-nasm
        - win64-node

win32-devedition-nightly/opt:
    description: "Win32 Dev Edition Nightly"
    index:
        product: devedition
        job-name: win32-opt
        type: nightly
    attributes:
        nightly: true
        enable-full-crashsymbols: true
    stub-installer:
        by-release-type:
            nightly: true
            beta: true
            release: true
            default:
                by-project:
                    # browser/confvars.sh looks for nightly-try
                    try: true
                    default: false
    shipping-phase: build
    shipping-product: devedition
    treeherder:
        platform: windows2012-32-devedition/opt
        symbol: N
        tier: 1
    worker-type: b-win2012
    worker:
        max-run-time: 10800
        env:
            TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win32/releng.manifest"
    run:
        script: mozharness/scripts/fx_desktop_build.py
        secrets: true
        options: [enable-pgo, append-env-variables-from-configs]
        config:
            - builds/releng_base_firefox.py
            - builds/taskcluster_base_windows.py
            - builds/taskcluster_base_win32.py
            - taskcluster_nightly.py
        extra-config:
            stage_platform: win32-devedition
        mozconfig-variant: devedition
    run-on-projects: ['mozilla-beta']
    toolchains:
        - win64-clang-cl
        - win64-rust
        - win64-rust-size
        - win64-cbindgen
        - win64-nasm
        - win64-node

win64-devedition-nightly/opt:
    description: "Win64 Dev Edition Nightly"
    index:
        product: devedition
        job-name: win64-opt
        type: nightly
    attributes:
        nightly: true
        enable-full-crashsymbols: true
    shipping-phase: build
    shipping-product: devedition
    treeherder:
        platform: windows2012-64-devedition/opt
        symbol: N
        tier: 1
    worker-type: b-win2012
    worker:
        max-run-time: 10800
        env:
            TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win64/releng.manifest"
    run:
        options: [append-env-variables-from-configs]
        script: mozharness/scripts/fx_desktop_build.py
        secrets: true
        config:
            - builds/releng_base_firefox.py
            - builds/taskcluster_base_windows.py
            - builds/taskcluster_base_win64.py
            - taskcluster_nightly.py
        extra-config:
            stage_platform: win64-devedition
        mozconfig-variant: devedition
    run-on-projects: ['mozilla-beta']
    toolchains:
        - win64-clang-cl
        - win64-rust
        - win64-rust-size
        - win64-cbindgen
        - win64-nasm
        - win64-node

win64-aarch64/debug:
    description: "AArch64 Win64 Debug"
    index:
        product: firefox
        job-name: win64-aarch64-debug
    attributes:
        enable-full-crashsymbols: true
    treeherder:
        platform: windows2012-aarch64/debug
        symbol: B
        tier: 1
    worker-type: b-win2012
    worker:
        max-run-time: 7200
        env:
            TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win64/aarch64.manifest"
            PERFHERDER_EXTRA_OPTIONS: aarch64
    run:
        actions: [get-secrets, build]
        options: [append-env-variables-from-configs]
        script: mozharness/scripts/fx_desktop_build.py
        secrets: true
        config:
            - builds/releng_base_firefox.py
            - builds/taskcluster_base_windows.py
            - builds/taskcluster_sub_win64/debug.py
        extra-config:
            mozconfig_platform: win64-aarch64
        mozconfig-variant: debug
    toolchains:
        - win64-clang-cl
        - win64-rust
        - win64-rust-size
        - win64-cbindgen
        - win64-sccache
        - win64-nasm
        - win64-node

win64-aarch64/opt:
    description: "AArch64 Win64 Opt"
    index:
        product: firefox
        job-name: win64-aarch64-opt
    attributes:
        enable-full-crashsymbols: true
    treeherder:
        platform: windows2012-aarch64/opt
        symbol: B
        tier: 1
    worker-type: b-win2012
    worker:
        max-run-time: 7200
        env:
            TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win64/aarch64.manifest"
            PERFHERDER_EXTRA_OPTIONS: aarch64
    run:
        actions: [get-secrets, build]
        options: [append-env-variables-from-configs]
        script: mozharness/scripts/fx_desktop_build.py
        secrets: true
        config:
            - builds/releng_base_firefox.py
            - builds/taskcluster_base_windows.py
            - builds/taskcluster_base_win64.py
        extra-config:
            stage_platform: win64-aarch64
            mozconfig_platform: win64-aarch64
    toolchains:
        - win64-clang-cl
        - win64-rust
        - win64-rust-size
        - win64-cbindgen
        - win64-sccache
        - win64-nasm
        - win64-node

win64-aarch64-eme/opt:
    description: "AArch64 Win64 Opt w/ EME"
    index:
        product: firefox
        job-name: win64-aarch64-eme-opt
    treeherder:
        platform: windows2012-aarch64/opt
        symbol: Be
        tier: 1
    worker-type: b-win2012
    worker:
        max-run-time: 7200
        env:
            TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win64/aarch64.manifest"
            PERFHERDER_EXTRA_OPTIONS: aarch64-eme
            MOZ_ARTIFACT_TASK: {task-reference: '<win64-aarch64-opt>'}
            MOZ_ARTIFACT_TASK_WIN32_OPT: {task-reference: '<win32-opt>'}
            USE_ARTIFACT: '1'
    run:
        actions: [get-secrets, build]
        options: [append-env-variables-from-configs]
        script: mozharness/scripts/fx_desktop_build.py
        secrets: true
        config:
            - builds/releng_base_firefox.py
            - builds/taskcluster_base_windows.py
            - builds/taskcluster_base_win64.py
        extra-config:
            stage_platform: win64-aarch64
            mozconfig_platform: win64-aarch64
    dependencies:
        win32-opt: build-win32/opt
        win64-aarch64-opt: build-win64-aarch64/opt
    toolchains:
        - win64-node

win64-aarch64-shippable/opt:
    description: "AArch64 Win64 Shippable"
    index:
        product: firefox
        job-name: win64-aarch64-opt
        type: shippable
    attributes:
        shippable: true
        enable-full-crashsymbols: true
    shipping-phase: build
    shipping-product: firefox
    treeherder:
        platform: windows2012-aarch64-shippable/opt
        symbol: B
        tier: 1
    worker-type: b-win2012
    worker:
        max-run-time: 7200
        env:
            TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win64/aarch64.manifest"
            PERFHERDER_EXTRA_OPTIONS: aarch64
            MOZ_ARTIFACT_TASK: {task-reference: '<win64-aarch64-opt>'}
            MOZ_ARTIFACT_TASK_WIN32_OPT: {task-reference: '<win32-opt>'}
            USE_ARTIFACT: '1'
    run:
        actions: [get-secrets, build]
        options: [append-env-variables-from-configs]
        script: mozharness/scripts/fx_desktop_build.py
        secrets: true
        config:
            - builds/releng_base_firefox.py
            - builds/taskcluster_base_windows.py
            - builds/taskcluster_base_win64.py
            - taskcluster_nightly.py
        extra-config:
            stage_platform: win64-aarch64
            mozconfig_platform: win64-aarch64
    dependencies:
        win32-opt: build-win32-shippable/opt
        win64-aarch64-opt: build-win64-aarch64-shippable-no-eme/opt
    fetches:
        # Abuse fetches to copy the generated-files artifact from the non-eme
        # build directly to the artifacts directory of this build. Likewise
        # for target.langpack.xpi
        win64-aarch64-opt:
            - artifact: target.generated-files.tar.gz
              extract: false
              dest: ../public/build
            - artifact: target.langpack.xpi
              extract: false
              dest: ../public/build
    toolchains:
        - win64-node

win64-aarch64-shippable-no-eme/opt:
    description: "AArch64 Win64 Shippable w/o EME"
    index:
        product: firefox
        job-name: win64-aarch64-no-eme-opt
        type: shippable
    attributes:
        enable-full-crashsymbols: true
    shipping-phase: build
    shipping-product: firefox
    treeherder:
        platform: windows2012-aarch64/opt
        symbol: Nn
        tier: 1
    worker-type: b-win2012
    worker:
        max-run-time: 7200
        env:
            TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win64/aarch64.manifest"
            PERFHERDER_EXTRA_OPTIONS: aarch64-no-eme
    run:
        actions: [get-secrets, build]
        options: [append-env-variables-from-configs]
        script: mozharness/scripts/fx_desktop_build.py
        secrets: true
        config:
            - builds/releng_base_firefox.py
            - builds/taskcluster_base_windows.py
            - taskcluster_nightly.py
        extra-config:
            stage_platform: win64-aarch64
            mozconfig_platform: win64-aarch64
    run-on-projects: []
    toolchains:
        - win64-clang-cl
        - win64-rust
        - win64-rust-size
        - win64-cbindgen
        - win64-nasm
        - win64-node


win64-aarch64-devedition-nightly/opt:
    description: "AArch64 Win64 MSVC Devedition Nightly"
    index:
        product: devedition
        job-name: win64-aarch64-opt
        type: nightly
    attributes:
        nightly: true
        enable-full-crashsymbols: true
    shipping-phase: build
    shipping-product: devedition
    treeherder:
        platform: windows2012-aarch64-devedition/opt
        symbol: N
        tier: 1
    worker-type: b-win2012
    worker:
        max-run-time: 7200
        env:
            TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win64/aarch64.manifest"
            PERFHERDER_EXTRA_OPTIONS: aarch64-devedition
    run:
        actions: [get-secrets, build]
        options: [append-env-variables-from-configs]
        script: mozharness/scripts/fx_desktop_build.py
        secrets: true
        config:
            - builds/releng_base_firefox.py
            - builds/taskcluster_base_windows.py
            - taskcluster_nightly.py
        extra-config:
            stage_platform: win64-aarch64
            mozconfig_platform: win64-aarch64
        mozconfig-variant: devedition
    run-on-projects: ['mozilla-beta']
    toolchains:
        - win64-clang-cl
        - win64-rust
        - win64-rust-size
        - win64-cbindgen
        - win64-nasm
        - win64-node


win32-gcp/debug:
    description: "Win32 Debug - built on GCP"
    index:
        product: firefox
        job-name: win32-gcp-debug
    attributes:
        enable-full-crashsymbols: true
    treeherder:
        platform: windows2012-32/debug
        symbol: Bg
        tier: 3
    worker-type: releng-hardware/gecko-{level}-b-win2012-gamma
    worker:
        max-run-time: 7200
        env:
            TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win32/releng.manifest"
            PERFHERDER_EXTRA_OPTIONS: gcp
    run:
        options: [append-env-variables-from-configs]
        script: mozharness/scripts/fx_desktop_build.py
        secrets: true
        config:
            - builds/releng_base_firefox.py
            - builds/taskcluster_base_windows.py
            - builds/taskcluster_base_win32.py
            - builds/taskcluster_sub_win32/debug.py
        mozconfig-variant: debug
    toolchains:
        - win64-clang-cl
        - win64-rust
        - win64-rust-size
        - win64-cbindgen
        - win64-sccache
        - win64-nasm
        - win64-node

win32-gcp/opt:
    description: "Win32 Opt - built on GCP"
    index:
        product: firefox
        job-name: win32-gcp-opt
    attributes:
        enable-full-crashsymbols: true
    treeherder:
        platform: windows2012-32/opt
        symbol: Bg
        tier: 3
    worker-type: releng-hardware/gecko-{level}-b-win2012-gamma
    worker:
        max-run-time: 7200
        env:
            TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win32/releng.manifest"
            PERFHERDER_EXTRA_OPTIONS: gcp
    run:
        options: [append-env-variables-from-configs]
        script: mozharness/scripts/fx_desktop_build.py
        secrets: true
        config:
            - builds/releng_base_firefox.py
            - builds/taskcluster_base_windows.py
            - builds/taskcluster_base_win32.py
        extra-config:
            stage_platform: win32
    run-on-projects: ['mozilla-central', 'try']
    toolchains:
        - win64-clang-cl
        - win64-rust
        - win64-rust-size
        - win64-cbindgen
        - win64-sccache
        - win64-nasm
        - win64-node

win32-gcp-shippable/opt:
    description: "Win32 Opt Shippable - built on GCP"
    index:
        product: firefox
        job-name: win32-gcp-opt
        type: shippable
    attributes:
        shippable: true
        enable-full-crashsymbols: true
    stub-installer:
        by-project:
            default: false
            mozilla-central: true
            try: true
            mozilla-beta: true
            mozilla-release: true
    shipping-phase: build
    shipping-product: firefox
    treeherder:
        platform: windows2012-32-shippable/opt
        symbol: Bg
        tier: 3
    worker-type: releng-hardware/gecko-{level}-b-win2012-gamma
    worker:
        max-run-time: 10800
        env:
            TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win32/releng.manifest"
            PERFHERDER_EXTRA_OPTIONS: gcp
    run:
        options: [append-env-variables-from-configs]
        script: mozharness/scripts/fx_desktop_build.py
        secrets: true
        config:
            - builds/releng_base_firefox.py
            - builds/taskcluster_base_windows.py
            - builds/taskcluster_base_win32.py
            - taskcluster_nightly.py
        extra-config:
            stage_platform: win32
    toolchains:
        - win64-clang-cl
        - win64-rust
        - win64-rust-size
        - win64-cbindgen
        - win64-nasm
        - win64-node

win64-gcp/debug:
    description: "Win64 Debug - built on GCP"
    index:
        product: firefox
        job-name: win64-gcp-debug
    attributes:
        enable-full-crashsymbols: true
    treeherder:
        platform: windows2012-64/debug
        symbol: Bg
        tier: 3
    worker-type: releng-hardware/gecko-{level}-b-win2012-gamma
    worker:
        max-run-time: 7200
        env:
            TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win64/releng.manifest"
            PERFHERDER_EXTRA_OPTIONS: gcp
    run:
        options: [append-env-variables-from-configs]
        script: mozharness/scripts/fx_desktop_build.py
        secrets: true
        config:
            - builds/releng_base_firefox.py
            - builds/taskcluster_base_windows.py
            - builds/taskcluster_base_win64.py
            - builds/taskcluster_sub_win64/debug.py
        mozconfig-variant: debug
    toolchains:
        - win64-clang-cl
        - win64-rust
        - win64-rust-size
        - win64-cbindgen
        - win64-sccache
        - win64-nasm
        - win64-node

win64-gcp/opt:
    description: "Win64 Opt - built on GCP"
    index:
        product: firefox
        job-name: win64-gcp-opt
    attributes:
        enable-full-crashsymbols: true
    treeherder:
        platform: windows2012-64/opt
        symbol: Bg
        tier: 3
    worker-type: releng-hardware/gecko-{level}-b-win2012-gamma
    worker:
        max-run-time: 7200
        env:
            TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win64/releng.manifest"
            PERFHERDER_EXTRA_OPTIONS: gcp
    run:
        options: [append-env-variables-from-configs]
        script: mozharness/scripts/fx_desktop_build.py
        secrets: true
        config:
            - builds/releng_base_firefox.py
            - builds/taskcluster_base_windows.py
            - builds/taskcluster_base_win64.py
        extra-config:
            stage_platform: win64
    run-on-projects: ['mozilla-central', 'try']
    toolchains:
        - win64-clang-cl
        - win64-rust
        - win64-rust-size
        - win64-cbindgen
        - win64-sccache
        - win64-nasm
        - win64-node

win64-gcp-shippable/opt:
    description: "Win64 Shippable - built on GCP"
    index:
        product: firefox
        job-name: win64-gcp-opt
        type: shippable
    attributes:
        shippable: true
        enable-full-crashsymbols: true
    shipping-phase: build
    shipping-product: firefox
    treeherder:
        platform: windows2012-64-shippable/opt
        symbol: Bg
        tier: 3
    worker-type: releng-hardware/gecko-{level}-b-win2012-gamma
    worker:
        max-run-time: 10800
        env:
            TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/win64/releng.manifest"
            PERFHERDER_EXTRA_OPTIONS: gcp
    run:
        options: [append-env-variables-from-configs]
        script: mozharness/scripts/fx_desktop_build.py
        secrets: true
        config:
            - builds/releng_base_firefox.py
            - builds/taskcluster_base_windows.py
            - builds/taskcluster_base_win64.py
            - taskcluster_nightly.py
        extra-config:
            stage_platform: win64
    toolchains:
        - win64-clang-cl
        - win64-rust
        - win64-rust-size
        - win64-cbindgen
        - win64-nasm
        - win64-node