Commit 6d792169 authored by Johan Lorenzo's avatar Johan Lorenzo
Browse files

Bug 1554851 - Let ARM64 Fennec 68 reach the release population r=mhentges

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

--HG--
extra : moz-landing-system : lando
parent f38869b5
Loading
Loading
Loading
Loading
+2 −14
Original line number Diff line number Diff line
@@ -33,21 +33,9 @@ def get_dependent_loaded_tasks(config, params, loaded_tasks):
    tasks_with_matching_kind = (
        task for task in nightly_tasks if task.kind in config.get('kind-dependencies')
    )
    android_tasks = (
    return [
        task for task in tasks_with_matching_kind
        if task.attributes.get('build_platform', '').startswith('android') and
        # Bug 1522581: Some GeckoView-only tasks produce APKs that shouldn't be pushed.
        not task.attributes.get('disable-push-apk', False)
    )

    # XXX Bug 1368484: Aarch64 is not planned to ride the trains regularly. It stayed on central
    # for a couple of cycles, and is planned to stay on mozilla-beta until 68.
    if params['project'] in ('mozilla-central', 'mozilla-beta', 'try'):
        shipping_tasks = list(android_tasks)
    else:
        shipping_tasks = [
            task for task in android_tasks
            if 'aarch64' not in task.attributes.get('build_platform', '')
    ]

    return shipping_tasks
+10 −15
Original line number Diff line number Diff line
@@ -52,31 +52,26 @@ def validate_dependent_tasks(config, jobs):
        yield job


_REQUIRED_ARCHITECTURES = {
    'android-aarch64-nightly',
    'android-api-16-nightly',
    'android-x86_64-nightly',
    'android-x86-nightly',
}


def check_every_architecture_is_present_in_dependent_tasks(project, dependent_tasks):
    dep_platforms = set(t.attributes.get('build_platform') for t in dependent_tasks)
    required_architectures = _get_required_architectures(project)
    missed_architectures = required_architectures - dep_platforms
    missed_architectures = _REQUIRED_ARCHITECTURES - dep_platforms
    if missed_architectures:
        raise Exception('''One or many required architectures are missing.

Required architectures: {}.
Given dependencies: {}.
'''.format(required_architectures, dependent_tasks)
'''.format(_REQUIRED_ARCHITECTURES, dependent_tasks)
        )


def _get_required_architectures(project):
    architectures = {
        'android-api-16-nightly',
        'android-x86-nightly',
        'android-x86_64-nightly',
    }
    if project in ('mozilla-central', 'mozilla-beta', 'try'):
        architectures.add('android-aarch64-nightly')

    return architectures


@transforms.add
def make_task_description(config, jobs):
    for job in jobs: