bug 1438735 - balrog scriptworker push and schedule support. r=bhearsum

- add balrog submit-toplevel - this replaces the final portion of the updates builder.
- rename balrog transform to balrog_submit, because it's for balrog locale submission
  - make this default to the 'promote' phase. balrog and beetmover currently take the current
    phase, which isn't always the wanted behavior.
- rename balrog publish to balrog schedule
- add balrog secondary push and secondary scheduling, for RCs
- remove the release_updates transforms
- make the task.py balrog transforms smarter
- get rid of the release_balrog_publishing transforms; ad a generic worker_type transform
- add BALROG_ACTIONS to scriptworker.py
- add get_balrog_action_scope()
- remove the unused balrog channel scopes

MozReview-Commit-ID: 369ACiOAd5F
This commit is contained in:
Aki Sasaki
2018-02-15 18:14:26 -08:00
parent f61e8669a4
commit baf3d863e4
23 changed files with 415 additions and 319 deletions

View File

@@ -155,6 +155,9 @@ PHASES = {
'default': None,
}
"""Known balrog actions."""
BALROG_ACTIONS = ('submit-locale', 'submit-toplevel', 'schedule')
"""Map balrog scope aliases to sets of projects.
This is a list of list-pairs, for ordering.
@@ -188,48 +191,6 @@ BALROG_SERVER_SCOPES = {
'default': 'balrog:server:dep',
}
"""Map the balrog scope aliases to the actual channel scopes.
"""
BALROG_CHANNEL_SCOPES = {
'nightly': [
'balrog:channel:nightly',
'balrog:channel:nightly-old-id',
'balrog:channel:aurora',
],
'aurora': [
'balrog:channel:aurora',
],
'beta': [
'balrog:channel:beta',
'balrog:channel:beta-localtest',
'balrog:channel:beta-cdntest',
],
'release': [
'balrog:channel:release',
'balrog:channel:release-localtest',
'balrog:channel:release-cdntest',
],
'esr': [
'balrog:channel:esr',
'balrog:channel:esr-localtest',
'balrog:channel:esr-cdntest',
],
'default': [
'balrog:channel:nightly',
'balrog:channel:nightly-old-id',
'balrog:channel:aurora',
'balrog:channel:beta',
'balrog:channel:beta-localtest',
'balrog:channel:beta-cdntest',
'balrog:channel:release',
'balrog:channel:release-localtest',
'balrog:channel:release-cdntest',
'balrog:channel:esr',
'balrog:channel:esr-localtest',
'balrog:channel:esr-cdntest',
],
}
PUSH_APK_SCOPE_ALIAS_TO_PROJECT = [[
'central', set([
@@ -388,6 +349,12 @@ def get_phase_from_target_method(config, alias_to_tasks_map, alias_to_phase_map)
return alias_to_phase_map['default']
@with_scope_prefix
def get_balrog_action_scope(config, action='submit'):
assert action in BALROG_ACTIONS
return "balrog:action:{}".format(action)
get_signing_cert_scope = functools.partial(
get_scope_from_project,
alias_to_project_map=SIGNING_SCOPE_ALIAS_TO_PROJECT,
@@ -425,12 +392,6 @@ get_balrog_server_scope = functools.partial(
alias_to_scope_map=BALROG_SERVER_SCOPES,
)
get_balrog_channel_scopes = functools.partial(
get_scope_from_project,
alias_to_project_map=BALROG_SCOPE_ALIAS_TO_PROJECT,
alias_to_scope_map=BALROG_CHANNEL_SCOPES,
)
get_push_apk_scope = functools.partial(
get_scope_from_project,
alias_to_project_map=PUSH_APK_SCOPE_ALIAS_TO_PROJECT,
@@ -456,9 +417,10 @@ def get_release_config(config):
partial_updates = os.environ.get("PARTIAL_UPDATES", "")
if partial_updates != "" and config.kind in ('release-bouncer-sub',
'release-bouncer-check',
'release-updates-builder',
'release-update-verify-config',
'release-secondary-update-verify-config',
'release-balrog-submit-toplevel',
'release-secondary-balrog-submit-toplevel',
):
partial_updates = json.loads(partial_updates)
release_config['partial_versions'] = ', '.join([