diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-15 03:34:42 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-15 03:34:42 +0000 |
commit | da4c7e7ed675c3bf405668739c3012d140856109 (patch) | |
tree | cdd868dba063fecba609a1d819de271f0d51b23e /taskcluster/android_taskgraph/loader/build_config.py | |
parent | Adding upstream version 125.0.3. (diff) | |
download | firefox-da4c7e7ed675c3bf405668739c3012d140856109.tar.xz firefox-da4c7e7ed675c3bf405668739c3012d140856109.zip |
Adding upstream version 126.0.upstream/126.0
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'taskcluster/android_taskgraph/loader/build_config.py')
-rw-r--r-- | taskcluster/android_taskgraph/loader/build_config.py | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/taskcluster/android_taskgraph/loader/build_config.py b/taskcluster/android_taskgraph/loader/build_config.py new file mode 100644 index 0000000000..abcdc223b4 --- /dev/null +++ b/taskcluster/android_taskgraph/loader/build_config.py @@ -0,0 +1,66 @@ +# 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 gecko_taskgraph.loader.transform import loader as base_loader +from taskgraph.util.templates import merge + +from ..build_config import get_apk_based_projects, get_components + + +def components_loader(kind, path, config, params, loaded_tasks): + """Loader that yields one task per android-component. + + Android-components are read from android-component/.buildconfig.yml + """ + config["jobs"] = _get_components_tasks(config) + return base_loader(kind, path, config, params, loaded_tasks) + + +def components_and_apks_loader(kind, path, config, params, loaded_tasks): + """Loader that yields one task per android-component and per apk-based project. + + For instance focus-android yields one task. + Config is read from various .buildconfig.yml files. + + Additional tasks can be provided in the kind.yml under the key `jobs`. + """ + + components_tasks = _get_components_tasks(config, for_build_type="regular") + apks_tasks = _get_apks_tasks(config) + config["jobs"] = merge(config["jobs"], components_tasks, apks_tasks) + return base_loader(kind, path, config, params, loaded_tasks) + + +def _get_components_tasks(config, for_build_type=None): + not_for_components = config.get("not-for-components", []) + tasks = { + "{}{}".format( + "" if build_type == "regular" else build_type + "-", component["name"] + ): { + "attributes": { + "build-type": build_type, + "component": component["name"], + } + } + for component in get_components() + for build_type in ("regular", "nightly", "beta", "release") + if ( + component["name"] not in not_for_components + and (component["shouldPublish"] or build_type == "regular") + and (for_build_type is None or build_type == for_build_type) + ) + } + + return tasks + + +def _get_apks_tasks(config): + not_for_apks = config.get("not-for-apks", []) + tasks = { + apk["name"]: {} + for apk in get_apk_based_projects() + if apk["name"] not in not_for_apks + } + return tasks |