summaryrefslogtreecommitdiff
path: root/ci/optimized_targets.py
diff options
context:
space:
mode:
author Luca Farsi <lucafarsi@google.com> 2024-09-10 16:37:51 -0700
committer Luca Farsi <lucafarsi@google.com> 2024-09-10 16:37:51 -0700
commitd4e4b64eebc5a09a22f85deda25aa21e447d1ff0 (patch)
tree026edfd2db34cc7ade5a73231375c2c94f1790c5 /ci/optimized_targets.py
parent7c112657244506c784b4ea4bf8b2d70ae7ef2d9f (diff)
Refactor package_outputs
Refactor package_outputs in the TestOptimizer so it just returns a list of soong_zip commands to be run by build_test_suites. Since we already have a tested implementation for running subprocesses in build_test_suites.py there's no reason to reimplement it in optimized_targets.py. Because any packaging will ultimately use soong_zip to package its final outputs change the code to just do whatever prep it needs to and return a list of soong_zip commands. This way the code is simpler to test without requiring subprocesses and no reimplementation of subprocess running code is necessary. Test: atest build_test_suites_test; atest optimized_targets_test Bug: 358215235 Change-Id: I3025aefeeb7186f537266a72d8422211ca9835ba
Diffstat (limited to 'ci/optimized_targets.py')
-rw-r--r--ci/optimized_targets.py16
1 files changed, 10 insertions, 6 deletions
diff --git a/ci/optimized_targets.py b/ci/optimized_targets.py
index fddde176ec..9143cbf2f1 100644
--- a/ci/optimized_targets.py
+++ b/ci/optimized_targets.py
@@ -52,14 +52,17 @@ class OptimizedBuildTarget(ABC):
self.modules_to_build = {self.target}
return {self.target}
- def package_outputs(self):
+ def get_package_outputs_commands(self) -> list[list[str]]:
features = self.build_context.enabled_build_features
if self.get_enabled_flag() in features:
- return self.package_outputs_impl()
+ return self.get_package_outputs_commands_impl()
- def package_outputs_impl(self):
+ return []
+
+ def get_package_outputs_commands_impl(self) -> list[list[str]]:
raise NotImplementedError(
- f'package_outputs_impl not implemented in {type(self).__name__}'
+ 'get_package_outputs_commands_impl not implemented in'
+ f' {type(self).__name__}'
)
def get_enabled_flag(self):
@@ -86,8 +89,8 @@ class NullOptimizer(OptimizedBuildTarget):
def get_build_targets(self):
return {self.target}
- def package_outputs(self):
- pass
+ def get_package_outputs_commands(self):
+ return []
class ChangeInfo:
@@ -114,6 +117,7 @@ class ChangeInfo:
return changed_files
+
class GeneralTestsOptimizer(OptimizedBuildTarget):
"""general-tests optimizer