mainline_modules_sdks.py: Optimize snapshot build order am: b3805c1d35

Original change: https://android-review.googlesource.com/c/platform/packages/modules/common/+/2047367

Change-Id: I46b8bea13ccaa1a72f1031f6c6c503b984753f24
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Paul Duffin
2022-03-30 17:47:12 +00:00
committed by Automerger Merge Worker
2 changed files with 24 additions and 17 deletions

View File

@@ -28,6 +28,7 @@ import subprocess
import sys
import tempfile
import typing
from collections import defaultdict
from typing import Callable, List
import zipfile
@@ -852,7 +853,14 @@ class SdkDistProducer:
# Prepare the dist directory for the sdks.
self.prepare()
# Group build releases so that those with the same Soong environment are
# run consecutively to avoid having to regenerate ninja files.
grouped_by_env = defaultdict(list)
for build_release in build_releases:
grouped_by_env[str(build_release.soong_env)].append(build_release)
ordered = [br for _, group in grouped_by_env.items() for br in group]
for build_release in ordered:
# Only build modules that are required for this build release.
filtered_modules = [
m for m in modules if m.is_required_for(build_release)
@@ -887,11 +895,11 @@ class SdkDistProducer:
def produce_bundled_dist_for_build_release(self, build_release, modules):
modules = [m for m in modules if m.is_bundled()]
sdk_versions = build_release.sdk_versions
snapshots_dir = self.snapshot_builder.build_snapshots(
build_release, sdk_versions, modules)
self.populate_bundled_dist(build_release, modules, snapshots_dir)
return snapshots_dir
if modules:
sdk_versions = build_release.sdk_versions
snapshots_dir = self.snapshot_builder.build_snapshots(
build_release, sdk_versions, modules)
self.populate_bundled_dist(build_release, modules, snapshots_dir)
def populate_unbundled_dist(self, build_release, sdk_versions, modules,
snapshots_dir):

View File

@@ -300,17 +300,6 @@ class TestProduceDist(unittest.TestCase):
["current"],
["com.android.ipsec", "com.google.android.wifi"],
),
(
"S",
{
"SOONG_SDK_SNAPSHOT_TARGET_BUILD_RELEASE": "S"
},
["current"],
[
"com.android.art", "com.android.ipsec",
"com.google.android.wifi"
],
),
(
"latest",
{},
@@ -320,7 +309,6 @@ class TestProduceDist(unittest.TestCase):
"com.google.android.wifi"
],
),
('latest', {}, ['current'], []),
(
"legacy",
{},
@@ -330,6 +318,17 @@ class TestProduceDist(unittest.TestCase):
"com.google.android.wifi"
],
),
(
"S",
{
"SOONG_SDK_SNAPSHOT_TARGET_BUILD_RELEASE": "S"
},
["current"],
[
"com.android.art", "com.android.ipsec",
"com.google.android.wifi"
],
),
], snapshot_builder.snapshots)