Bug 1286092 - Actually enable l10n repacks based on the same push on-change. r=aki

for L10n jobs should run per-push based on the corresponding builds

Differential Revision: https://phabricator.services.mozilla.com/D1409

--HG--
extra : rebase_source : 1fd925beca600888ccf77f44f48a3c34b0d54c75
This commit is contained in:
Justin Wood 2018-05-23 14:57:23 -04:00
parent a338726b4d
commit 746a18f42e
4 changed files with 95 additions and 47 deletions

View File

@ -19,17 +19,19 @@ only-for-build-platforms:
- linux64/opt
- linux/opt
- android-api-16/opt
# - macosx64/opt
- macosx64/opt
- win32/opt
- win64/opt
job-template:
description:
by-build-platform:
default: Localization
android-api-16-l10n: Single Locale Repack
android-api-16: Single Locale Repack
locales-file:
by-build-platform:
default: browser/locales/l10n-changesets.json
android-api-16-l10n: mobile/locales/l10n-changesets.json
default: browser/locales/l10n-onchange-changesets.json
android-api-16: mobile/locales/l10n-onchange-changesets.json
ignore-locales:
by-build-platform:
# OSX has a special locale for japanese
@ -38,65 +40,124 @@ job-template:
run-time:
by-build-platform:
default: 36000
android-api-16-l10n: 18000
android-api-16: 18000
docker-image:
by-build-platform:
android-api-16-l10n:
android-api-16:
in-tree: android-build
default: null
secrets:
by-build-platform:
default: false
android-api-16-l10n: true
android-api-16: true
toolchains:
by-build-platform:
default: []
macosx64:
- linux64-libdmg
- linux64-hfsplus
android-api-16-l10n:
android-api-16:
- android-gradle-dependencies
- android-sdk-linux
tooltool:
by-build-platform:
default: public
android-api-16-l10n: internal
macosx64-nightly: internal
default: internal
linux.*: public
index:
type: l10n
product:
by-build-platform:
default: firefox
android-api-16: mobile
job-name:
by-build-platform:
linux: linux-opt
linux64: linux64-opt
macosx64: macosx64-opt
win32: win32-opt
win64: win64-opt
android-api-16: android-api-16-opt
run-on-projects: ['all']
worker-type:
by-build-platform:
default: aws-provisioner-v1/gecko-{level}-b-linux
android: aws-provisioner-v1/gecko-{level}-b-android
android-api-16: aws-provisioner-v1/gecko-{level}-b-android
win.*: aws-provisioner-v1/gecko-{level}-b-win2012
treeherder:
symbol: L10n
tier: 3
platform:
by-build-platform:
linux64-l10n: linux64/opt
linux-l10n: linux32/opt
linux64: linux64/opt
linux: linux32/opt
macosx64: osx-cross/opt
android-api-16-l10n: android-4-0-armv7-api16/opt
win32: windows2012-32/opt
win64: windows2012-64/opt
android-api-16: android-4-0-armv7-api16/opt
env:
by-build-platform:
linux.*: # linux64 and 32 get same treatment here
EN_US_PACKAGE_NAME: target.tar.bz2
EN_US_BINARY_URL:
task-reference: https://queue.taskcluster.net/v1/task/<signed-build>/artifacts/{artifact_prefix}
MAR_TOOLS_URL:
task-reference: https://queue.taskcluster.net/v1/task/<unsigned-build>/artifacts/{artifact_prefix}/host/bin
macosx64:
EN_US_PACKAGE_NAME: target.dmg
EN_US_BINARY_URL:
task-reference: https://queue.taskcluster.net/v1/task/<repackage>/artifacts/{artifact_prefix}
MAR_TOOLS_URL:
task-reference: https://queue.taskcluster.net/v1/task/<unsigned-build>/artifacts/{artifact_prefix}/host/bin
win.*:
EN_US_PACKAGE_NAME: target.zip
EN_US_BINARY_URL:
task-reference: https://queue.taskcluster.net/v1/task/<signed-build>/artifacts/{artifact_prefix}
EN_US_INSTALLER_BINARY_URL:
task-reference: https://queue.taskcluster.net/v1/task/<repackage-signed>/artifacts/{artifact_prefix}
MAR_TOOLS_URL:
task-reference: https://queue.taskcluster.net/v1/task/<unsigned-build>/artifacts/{artifact_prefix}/host/bin
android-api-16:
EN_US_PACKAGE_NAME: target.apk
EN_US_BINARY_URL:
task-reference: https://queue.taskcluster.net/v1/task/<unsigned-build>/artifacts/{artifact_prefix}
mozharness:
config:
by-build-platform:
linux-l10n:
linux:
- single_locale/{project}.py
- single_locale/linux32.py
- single_locale/tc_common.py
- single_locale/tc_linux32.py
linux64-l10n:
- single_locale/onchange.py
linux64:
- single_locale/{project}.py
- single_locale/linux64.py
- single_locale/tc_common.py
- single_locale/tc_linux64.py
- single_locale/onchange.py
macosx64:
- single_locale/{project}.py
- single_locale/macosx64.py
- single_locale/tc_common.py
- single_locale/tc_macosx64.py
android-api-16-l10n:
- single_locale/onchange.py
win32:
- single_locale/{project}.py
- single_locale/win32.py
- single_locale/tc_common.py
- single_locale/tc_win32.py
- single_locale/onchange.py
win64:
- single_locale/{project}.py
- single_locale/win64.py
- single_locale/tc_common.py
- single_locale/tc_win64.py
- single_locale/onchange.py
android-api-16:
- single_locale/{project}_android-api-16.py
- single_locale/tc_common.py
- single_locale/tc_android-api-16.py
- single_locale/onchange.py
# no default, so we fail on new entries
options:
- revision=$GECKO_HEAD_REV
@ -104,18 +165,19 @@ job-template:
- this-chunk=1
actions:
by-build-platform:
default: [clone-locales list-locales setup repack summary]
android-api-16-l10n: [get-secrets
clone-locales list-locales setup repack
upload-repacks summary]
default: ['clone-locales', 'list-locales', 'setup', 'repack',
'summary']
android-api-16: ['get-secrets',
'clone-locales', 'list-locales', 'setup', 'repack',
'upload-repacks', 'summary']
script:
by-build-platform:
default: mozharness/scripts/desktop_l10n.py
android-api-16-l10n: mozharness/scripts/mobile_l10n.py
android-api-16: mozharness/scripts/mobile_l10n.py
when:
files-changed:
- browser/locales/l10n-changesets.json
- mobile/locales/l10n-changesets.json
- browser/locales/l10n-onchange-changesets.json
- mobile/locales/l10n-onchange-changesets.json
- testing/mozharness/configs/single_locale/**
- testing/mozharness/mozharness/mozilla/l10n/locales.py
- testing/mozharness/scripts/desktop_l10n.py

View File

@ -198,18 +198,10 @@ def _remove_locales(locales, to_remove=None):
def setup_name(config, jobs):
for job in jobs:
dep = job['dependent-task']
if dep.attributes.get('nightly'):
# Set the name to the same as the dep task, without kind name.
# Label will get set automatically with this kinds name.
job['name'] = job.get('name',
dep.task['metadata']['name'][
len(dep.kind) + 1:])
else:
# Set to match legacy use at the moment (to support documented try
# syntax). Set the name to same as dep task + '-l10n' but without the
# kind name attached, since that gets added when label is generated
name, jobtype = dep.task['metadata']['name'][len(dep.kind) + 1:].split('/')
job['name'] = "{}-l10n/{}".format(name, jobtype)
# Set the name to the same as the dep task, without kind name.
# Label will get set automatically with this kinds name.
job['name'] = job.get('name',
dep.task['metadata']['name'][len(dep.kind) + 1:])
yield job
@ -221,12 +213,6 @@ def copy_in_useful_magic(config, jobs):
attributes.update(job.get('attributes', {}))
# build-platform is needed on `job` for by-build-platform
job['build-platform'] = attributes.get("build_platform")
if not attributes.get("nightly"):
# set build_platform to have l10n as well, to match older l10n setup
# for now
job['build-platform'] = "{}-l10n".format(job['build-platform'])
attributes['build_platform'] = job['build-platform']
job['attributes'] = attributes
yield job
@ -243,9 +229,6 @@ def validate_early(config, jobs):
def setup_nightly_dependency(config, jobs):
""" Sets up a task dependency to the signing job this relates to """
for job in jobs:
if not job['attributes'].get('nightly'):
yield job
continue # do not add a dep unless we're a nightly
job['dependencies'] = {'unsigned-build': job['dependent-task'].label}
if job['attributes']['build_platform'].startswith('win') or \
job['attributes']['build_platform'].startswith('linux'):

View File

@ -0,0 +1,3 @@
config = {
"update_channel": "default",
}

View File

@ -4,7 +4,7 @@ config = {
"nightly_build": False,
"branch": "try",
"en_us_binary_url": "http://archive.mozilla.org/pub/firefox/nightly/latest-mozilla-central",
"update_channel": "nightly",
"update_channel": "nightly-try",
# l10n
"hg_l10n_base": "https://hg.mozilla.org/l10n-central",