fune/taskcluster/taskgraph/transforms/build_fat_aar.py
Agi Sferro 65b64cb3e0 Bug 1709640 - Rename android-api-16 to android-arm. r=marionette-reviewers,firefox-build-system-reviewers,nalexander,whimboo,aklotz,releng-reviewers,mhentges,glandium,mtabara
We don't offer API splits any more, and with the separation of GeckoView with
the rest of the front-end it's increasingly unlikely that we will in the
future.

This change makes it so that the build name doesn't contain the API version so
that we can update it without breaking all the automation that relies on the
build name.

Differential Revision: https://phabricator.services.mozilla.com/D114369
2021-06-04 22:31:14 +00:00

73 lines
2.5 KiB
Python

# 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/.
from __future__ import absolute_import, print_function, unicode_literals
import copy
from taskgraph.transforms.base import TransformSequence
from taskgraph.util.declarative_artifacts import get_geckoview_upstream_artifacts
from taskgraph.util.taskcluster import get_artifact_prefix
transforms = TransformSequence()
MOZ_ANDROID_FAT_AAR_ENV_MAP = {
"android-arm-shippable": "MOZ_ANDROID_FAT_AAR_ARMEABI_V7A",
"android-aarch64-shippable": "MOZ_ANDROID_FAT_AAR_ARM64_V8A",
"android-x86-shippable": "MOZ_ANDROID_FAT_AAR_X86",
"android-x86_64-shippable": "MOZ_ANDROID_FAT_AAR_X86_64",
"android-arm-opt": "MOZ_ANDROID_FAT_AAR_ARMEABI_V7A",
"android-aarch64-opt": "MOZ_ANDROID_FAT_AAR_ARM64_V8A",
"android-x86-opt": "MOZ_ANDROID_FAT_AAR_X86",
"android-x86_64-opt": "MOZ_ANDROID_FAT_AAR_X86_64",
}
@transforms.add
def set_fetches_and_locations(config, jobs):
"""Set defaults, including those that differ per worker implementation"""
for job in jobs:
dependencies = copy.deepcopy(job["dependencies"])
for platform, label in dependencies.items():
job["dependencies"] = {"build": label}
aar_location = _get_aar_location(config, job, platform)
prefix = get_artifact_prefix(job)
if not prefix.endswith("/"):
prefix = prefix + "/"
if aar_location.startswith(prefix):
aar_location = aar_location[len(prefix) :]
job.setdefault("fetches", {}).setdefault(platform, []).append(
{
"artifact": aar_location,
"extract": False,
}
)
aar_file_name = aar_location.split("/")[-1]
env_var = MOZ_ANDROID_FAT_AAR_ENV_MAP[platform]
job["worker"]["env"][env_var] = aar_file_name
job["dependencies"] = dependencies
yield job
def _get_aar_location(config, job, platform):
artifacts_locations = get_geckoview_upstream_artifacts(
config, job, platform=platform
)
aar_locations = [
path for path in artifacts_locations[0]["paths"] if path.endswith(".aar")
]
if len(aar_locations) != 1:
raise ValueError(
"Only a single AAR must be given. Got: {}".format(aar_locations)
)
return aar_locations[0]