# 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/.
---
loader: taskgraph.loader.transform:loader

transforms:
    - taskgraph.transforms.from_deps
    - gecko_taskgraph.transforms.l10n
    - gecko_taskgraph.transforms.job
    - gecko_taskgraph.transforms.task

kind-dependencies:
    - build
    - build-signing
    - fetch
    - repackage
    - toolchain

only-for-build-platforms:
    - linux64-shippable/opt
    - linux64-aarch64-shippable/opt
    - linux-shippable/opt
    - macosx64-shippable/opt
    - win32-shippable/opt
    - win64-shippable/opt

tasks:
    l10n:
        description: Localization
        from-deps:
            group-by: platform
        locales-file: browser/locales/l10n-onchange-changesets.json
        ignore-locales:
            by-build-platform:
                # OSX has a special locale for japanese
                macosx64.*: [ja]
                default: [ja-JP-mac]
        run-time:
            by-build-platform:
                default: 900
                win.*: 1800
        secrets: false
        fetches:
            toolchain:
                by-build-platform:
                    default: []
                    macosx64.*:
                        - linux64-libdmg
                        - linux64-hfsplus
                    win.*:
                        - linux64-wine
                        - nsis
            fetch:
                by-build-platform:
                    default: []
                    win.*:
                        - upx-3.95-win
        tooltool:
            by-build-platform:
                default: internal
                linux.*: public
        index:
            type: l10n
            product: firefox
            job-name:
                by-build-platform:
                    linux(?!64).*: linux-opt
                    linux64(?!-aarch64).*: linux64-opt
                    linux64-aarch64.*: linux64-aarch64-opt
                    macosx64.*: macosx64-opt
                    win32.*: win32-opt
                    win64.*: win64-opt
        run-on-projects:
            by-build-platform:
                linux-shippable.*: ['release']  # Do not run on autoland - Bug 1599197
                default: ['all']
        worker-type: b-linux-gcp
        treeherder:
            symbol: L10n
            tier: 1
            platform:
                by-build-platform:
                    linux64: linux64/opt
                    linux64-shippable: linux64-shippable/opt
                    linux64-aarch64: linux64-aarch64/opt
                    linux64-aarch64-shippable: linux64-aarch64-shippable/opt
                    linux: linux32/opt
                    linux-shippable: linux32-shippable/opt
                    macosx64: osx-cross/opt
                    macosx64-shippable: osx-shippable/opt
                    win32: windows2012-32/opt
                    win32-shippable: windows2012-32-shippable/opt
                    win64: windows2012-64/opt
                    win64-shippable: windows2012-64-shippable/opt
        env:
            by-build-platform:
                linux.*:    # linux64 and 32 get same treatment here
                    EN_US_PACKAGE_NAME: target.tar.bz2
                    EN_US_BINARY_URL:
                        artifact-reference: <build-signing/{artifact_prefix}>
                macosx64.*:
                    EN_US_PACKAGE_NAME: target.dmg
                    EN_US_BINARY_URL:
                        artifact-reference: <repackage/{artifact_prefix}>
                win.*:
                    EN_US_PACKAGE_NAME: target.zip
                    EN_US_BINARY_URL:
                        artifact-reference: <build-signing/{artifact_prefix}>
        mozharness:
            config:
                by-build-platform:
                    linux(?!64).*:
                        - single_locale/firefox.py
                        - single_locale/linux32.py
                        - single_locale/tc_common.py
                        - single_locale/tc_linux_common.py
                    linux64.*:
                        - single_locale/firefox.py
                        - single_locale/linux64.py
                        - single_locale/tc_common.py
                        - single_locale/tc_linux_common.py
                    macosx64.*:
                        - single_locale/firefox.py
                        - single_locale/macosx64.py
                        - single_locale/tc_common.py
                        - single_locale/tc_macosx64.py
                    win32.*:
                        - single_locale/firefox.py
                        - single_locale/win32.py
                        - single_locale/tc_common.py
                        - single_locale/tc_win32.py
                    win64.*:
                        - single_locale/firefox.py
                        - single_locale/win64.py
                        - single_locale/tc_common.py
                        - single_locale/tc_win64.py
            # no default, so we fail on new entries
            actions: ['clone-locales', 'list-locales', 'setup', 'repack', 'summary']
            script: mozharness/scripts/desktop_l10n.py
        when:
            files-changed:
                - browser/locales/l10n-onchange-changesets.json
                - testing/mozharness/configs/single_locale/**
                - testing/mozharness/mozharness/mozilla/l10n/locales.py
                - testing/mozharness/scripts/desktop_l10n.py
                - third_party/python/compare-locales/**
                - toolkit/locales/**
                - toolkit/mozapps/installer/**
