# 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/opt
    - linux64-aarch64/opt
    - macosx64/opt
    - win32/opt
    - win64/opt

task-defaults:
    run-on-repo-type: [hg]

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: 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:
                    linux64(?!-aarch64).*: linux64-opt
                    linux64-aarch64.*: linux64-aarch64-opt
                    macosx64.*: macosx64-opt
                    win32.*: win32-opt
                    win64.*: win64-opt
        run-on-projects: ['all']
        worker-type: b-linux
        treeherder:
            symbol: L10n
            tier: 1
            platform:
                by-build-platform:
                    linux64: linux64/opt
                    linux64-aarch64: linux64-aarch64/opt
                    macosx64: osx-cross/opt
                    win32: windows2012-32/opt
                    win64: windows2012-64/opt
        env:
            by-build-platform:
                linux.*:
                    MOZ_ARTIFACT_TASK: {task-reference: '<build-signing>'}
                macosx64.*:
                    MOZ_ARTIFACT_TASK: {task-reference: '<repackage>'}
                win.*:
                    MOZ_ARTIFACT_TASK: {task-reference: '<build-signing>'}
        mozharness:
            config:
                by-build-platform:
                    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/**
                - third_party/python/moz_l10n/**
                - toolkit/locales/**
                - toolkit/mozapps/installer/**
