aboutsummaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorUsta Shrestha <usta@google.com>2023-03-03 03:58:54 -0500
committerUsta Shrestha <usta@google.com>2023-03-03 04:00:23 -0500
commit3c1acc09fe2c83d84ce11dd2413103b0dea39af0 (patch)
tree774190262bf3e90a6af3aa9657c90efba65ee75c /scripts
parent7092a040029b2424ca3f5e19ebaf7c1893eea80a (diff)
downloadbazel-3c1acc09fe2c83d84ce11dd2413103b0dea39af0.tar.gz
minor cosmetic changes to output
Test: ./incremental_build.py -c change -b prod -- nothing Bug: NA Change-Id: I52e26251fe8ffe068fd2bce9eb4efa646c08a2fe
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/incremental_build/incremental_build.py8
-rw-r--r--scripts/incremental_build/util.py18
2 files changed, 14 insertions, 12 deletions
diff --git a/scripts/incremental_build/incremental_build.py b/scripts/incremental_build/incremental_build.py
index c6a01f0c..5521c89b 100755
--- a/scripts/incremental_build/incremental_build.py
+++ b/scripts/incremental_build/incremental_build.py
@@ -93,7 +93,8 @@ def _build_file_size() -> int:
BuildInfo = dict[str, any]
-def _build(build_type: ui.BuildType, logfile: Path) -> (int, BuildInfo):
+def _build(build_type: ui.BuildType, run_dir: Path) -> (int, BuildInfo):
+ logfile = run_dir.joinpath('output.txt')
logging.info('TIP: to see the log:\n tail -f "%s"', logfile)
cmd = [*build_type.value, *ui.get_user_input().targets]
logging.info('Command: %s', cmd)
@@ -122,6 +123,7 @@ def _build(build_type: ui.BuildType, logfile: Path) -> (int, BuildInfo):
action_count_before = get_action_count()
if action_count_before > 0:
recompact_ninja_log()
+ action_count_before = get_action_count()
f.write(f'Command: {cmd}\n')
f.write(f'Environment Variables:\n{textwrap.indent(env_str, " ")}\n\n\n')
f.flush()
@@ -136,7 +138,7 @@ def _build(build_type: ui.BuildType, logfile: Path) -> (int, BuildInfo):
'build.ninja': _build_file_sha(),
'build.ninja.size': _build_file_size(),
'targets': ' '.join(ui.get_user_input().targets),
- 'log': str(logfile.relative_to(ui.get_user_input().log_dir)),
+ 'log': str(run_dir.relative_to(ui.get_user_input().log_dir)),
'ninja_explains': util.count_explanations(logfile),
'actions': action_count_after - action_count_before,
'time': util.hhmmss(datetime.timedelta(microseconds=elapsed_ns / 1000))
@@ -148,7 +150,7 @@ def _run_cuj(run_dir: Path, build_type: ui.BuildType,
is_clean = not util.get_out_dir().joinpath(
'soong/bootstrap.ninja').exists()
run_dir.mkdir(parents=True, exist_ok=False)
- (exit_code, build_info) = _build(build_type, run_dir.joinpath('output.txt'))
+ (exit_code, build_info) = _build(build_type, run_dir)
# if build was successful, run test
if exit_code != 0:
build_result = cuj_catalog.BuildResult.FAILED.name
diff --git a/scripts/incremental_build/util.py b/scripts/incremental_build/util.py
index fdc28a14..abe676fe 100644
--- a/scripts/incremental_build/util.py
+++ b/scripts/incremental_build/util.py
@@ -30,15 +30,15 @@ SUMMARY_CSV: Final[str] = 'summary.csv'
RUN_DIR_PREFIX: Final[str] = 'run'
BUILD_INFO_JSON: Final[str] = 'build_info.json'
-_IMPORTANT_METRICS: set[str] = {r'soong/bootstrap', r'soong_build/\*\.bazel',
- r'ninja/ninja', r'bp2build/',
- r'symlink_forest/',
- r'.*write_files.*'}
-
@functools.cache
def _is_important(column) -> bool:
- for pattern in _IMPORTANT_METRICS:
+ patterns = {
+ 'description', 'build_type', r'build\.ninja(\.size)?', 'targets',
+ 'log', 'actions', 'time',
+ r'soong_build/\*\.bazel', 'bp2build/', r'symlink_forest/', 'ninja/ninja',
+ r'.*write_files.*'}
+ for pattern in patterns:
if re.fullmatch(pattern, column):
return True
return False
@@ -66,9 +66,9 @@ def get_summary_cmd(d: Path) -> str:
headers = reader.fieldnames or []
columns: list[int] = [i for i, h in enumerate(headers) if _is_important(h)]
- columns.sort()
- f = ''.join(',' + str(i + 1) for i in columns)
- return f'cut -d, -f1-10{f} "{summary_csv.absolute()}" | column -t -s,'
+ f = ','.join(str(i + 1) for i in columns)
+ return f'grep -v rebuild- "{summary_csv}" | grep -v FAILED | ' \
+ f'cut -d, -f{f} | column -t -s,'
@functools.cache