diff options
author | 2024-11-06 16:09:16 -0800 | |
---|---|---|
committer | 2024-11-14 14:37:01 -0800 | |
commit | 7d859717222994d115e182b2525001d0e1dd2b9a (patch) | |
tree | a50bc111921aba5e4fbb5ae52aab3b3cd7f51e0b /ci/build_test_suites.py | |
parent | 29b821e5b4ae577f6af13ce1c14f1ecc1c512a30 (diff) |
Record initial metrics in build_test_suites
Record initial metrics for analysis time and packaging time in
build_test_suites. Per-target metrics will be reported after initial
test discovery agent integration.
Test: atest build_test_suites_test && atest optimized_targets_test
Bug: 372973116
Change-Id: Id3711ce078bfbfdc4c264a29751c475b4bd0cebd
Diffstat (limited to 'ci/build_test_suites.py')
-rw-r--r-- | ci/build_test_suites.py | 38 |
1 files changed, 27 insertions, 11 deletions
diff --git a/ci/build_test_suites.py b/ci/build_test_suites.py index 9e56a20a79..7d76b9afdc 100644 --- a/ci/build_test_suites.py +++ b/ci/build_test_suites.py @@ -25,6 +25,7 @@ import sys from typing import Callable from build_context import BuildContext import optimized_targets +import metrics_agent REQUIRED_ENV_VARS = frozenset(['TARGET_PRODUCT', 'TARGET_RELEASE', 'TOP']) @@ -113,19 +114,27 @@ def build_test_suites(argv: list[str]) -> int: Returns: The exit code of the build. """ - args = parse_args(argv) - check_required_env() - build_context = BuildContext(load_build_context()) - build_planner = BuildPlanner( - build_context, args, optimized_targets.OPTIMIZED_BUILD_TARGETS - ) - build_plan = build_planner.create_build_plan() + get_metrics_agent().analysis_start() + try: + args = parse_args(argv) + check_required_env() + build_context = BuildContext(load_build_context()) + build_planner = BuildPlanner( + build_context, args, optimized_targets.OPTIMIZED_BUILD_TARGETS + ) + build_plan = build_planner.create_build_plan() + except: + raise + finally: + get_metrics_agent().analysis_end() try: execute_build_plan(build_plan) except BuildFailureError as e: logging.error('Build command failed! Check build_log for details.') return e.return_code + finally: + get_metrics_agent().end_reporting() return 0 @@ -183,12 +192,15 @@ def execute_build_plan(build_plan: BuildPlan): except subprocess.CalledProcessError as e: raise BuildFailureError(e.returncode) from e - for packaging_commands_getter in build_plan.packaging_commands_getters: - try: + get_metrics_agent().packaging_start() + try: + for packaging_commands_getter in build_plan.packaging_commands_getters: for packaging_command in packaging_commands_getter(): run_command(packaging_command) - except subprocess.CalledProcessError as e: - raise BuildFailureError(e.returncode) from e + except subprocess.CalledProcessError as e: + raise BuildFailureError(e.returncode) from e + finally: + get_metrics_agent().packaging_end() def get_top() -> pathlib.Path: @@ -199,6 +211,10 @@ def run_command(args: list[str], stdout=None): subprocess.run(args=args, check=True, stdout=stdout) +def get_metrics_agent(): + return metrics_agent.MetricsAgent.instance() + + def main(argv): dist_dir = os.environ.get('DIST_DIR') if dist_dir: |