Skip to content

Commit 8d5cbc5

Browse files
authored
Merge pull request #396 from gradle/erichaagdev/remove-build-cache-metrics-only
Build Scan parsing is updated to read values when previously unknown
2 parents 2f68f96 + 2428dac commit 8d5cbc5

File tree

5 files changed

+50
-32
lines changed

5 files changed

+50
-32
lines changed

components/scripts/gradle/04-validate-remote-build-caching-ci-ci.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ validate_required_args() {
116116
}
117117

118118
fetch_build_scans() {
119-
fetch_build_scans_and_build_time_metrics 'all_data' "${build_scan_urls[@]}"
119+
fetch_build_scans_and_build_time_metrics 'verbose_logging' "${build_scan_urls[@]}"
120120
}
121121

122122
# Overrides summary.sh#print_experiment_specific_summary_info

components/scripts/lib/build-scan-offline.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,5 +40,5 @@ read_build_scan_dumps() {
4040
build_scan_data="$(invoke_java "$BUILD_SCAN_SUPPORT_TOOL_JAR" extract "0,${build_scan_dumps[0]}" "1,${build_scan_dumps[1]}")"
4141
echo ", done."
4242

43-
parse_build_scans_and_build_time_metrics 'build_cache_metrics_only' "$build_scan_data"
43+
parse_build_scans_and_build_time_metrics "$build_scan_data"
4444
}

components/scripts/lib/build-scan-online.sh

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ readonly FETCH_BUILD_SCAN_DATA_JAR="${LIB_DIR}/export-api-clients/fetch-build-sc
77
# Enterprise API.
88
process_build_scan_data_online() {
99
read_build_scan_metadata
10-
fetch_build_scans_and_build_time_metrics 'build_cache_metrics_only' "${build_scan_urls[@]}"
10+
fetch_build_scans_and_build_time_metrics 'brief_logging' "${build_scan_urls[@]}"
1111
}
1212

1313
read_build_scan_metadata() {
@@ -53,28 +53,27 @@ fetch_single_build_scan() {
5353
parse_single_build_scan "${build_scan_data}"
5454
}
5555

56+
# The value of logging_level should be either 'brief_logging' or
57+
# 'verbose_logging'
5658
fetch_build_scans_and_build_time_metrics() {
57-
local build_cache_metrics_only="$1"
59+
local logging_level="$1"
5860
shift
5961
local build_scan_urls=("$@")
6062

61-
local brief_logging
62-
if [[ "${build_cache_metrics_only}" == 'build_cache_metrics_only' ]]; then
63-
brief_logging="brief_logging"
64-
else
63+
if [[ "${logging_level}" == 'verbose_logging' ]]; then
6564
info "Fetching build scan data"
6665
fi
6766

6867
local build_scan_data
69-
build_scan_data="$(fetch_build_scan_data "${brief_logging}" "${build_scan_urls[@]}")"
68+
build_scan_data="$(fetch_build_scan_data "${logging_level}" "${build_scan_urls[@]}")"
7069

71-
parse_build_scans_and_build_time_metrics "${build_cache_metrics_only}" "${build_scan_data}"
70+
parse_build_scans_and_build_time_metrics "${build_scan_data}"
7271
}
7372

7473
# Note: Callers of this function require stdout to be clean. No logging can be
7574
# done inside this function.
7675
fetch_build_scan_data() {
77-
local brief_logging="$1"
76+
local logging_level="$1"
7877
shift
7978
local build_scan_urls=("$@")
8079

@@ -90,7 +89,7 @@ fetch_build_scan_data() {
9089
args+=("--network-settings-file" "${SCRIPT_DIR}/network.settings")
9190
fi
9291

93-
if [[ "${brief_logging}" == "brief_logging" ]]; then
92+
if [[ "${logging_level}" == "brief_logging" ]]; then
9493
args+=("--brief-logging")
9594
fi
9695

components/scripts/lib/build-scan-parse.sh

Lines changed: 38 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -43,12 +43,11 @@ parse_single_build_scan() {
4343
# Parses build scan data to an array by line
4444
IFS=$'\n' read -rd '' -a build_scan_rows <<< "$build_scan_data"
4545

46-
parse_build_scan_row 'all_data' "${build_scan_rows[1]}"
46+
parse_build_scan_row "${build_scan_rows[1]}"
4747
}
4848

4949
parse_build_scans_and_build_time_metrics() {
50-
local build_cache_metrics_only="$1"
51-
local build_scan_data="$2"
50+
local build_scan_data="$1"
5251

5352
debug_build_scan_data "$build_scan_data"
5453

@@ -57,8 +56,8 @@ parse_build_scans_and_build_time_metrics() {
5756
# Parses build scan data to an array by line
5857
IFS=$'\n' read -rd '' -a build_scan_rows <<< "$build_scan_data"
5958

60-
parse_build_scan_row "${build_cache_metrics_only}" "${build_scan_rows[1]}"
61-
parse_build_scan_row "${build_cache_metrics_only}" "${build_scan_rows[2]}"
59+
parse_build_scan_row "${build_scan_rows[1]}"
60+
parse_build_scan_row "${build_scan_rows[2]}"
6261

6362
parse_build_time_metrics "${build_scan_rows[4]}"
6463
}
@@ -74,28 +73,48 @@ debug_build_scan_data() {
7473

7574
# shellcheck disable=SC2034 # not all scripts use all of the fetched data
7675
parse_build_scan_row() {
77-
local build_cache_metrics_only="$1"
78-
local build_scan_row="$2"
76+
local build_scan_row="$1"
7977

8078
local run_num
8179

8280
while IFS=, read -r run_num field_1 field_2 field_3 field_4 field_5 field_6 field_7 field_8 field_9 field_10 field_11 field_12 field_13 field_14 field_15 field_16 field_17 field_18 field_19 field_20 field_21; do
8381
debug "Build Scan $field_4 is for build $run_num"
84-
project_names[run_num]="$field_1"
85-
build_scan_ids[run_num]="$field_4"
86-
87-
if [[ "$build_cache_metrics_only" != 'build_cache_metrics_only' ]]; then
88-
base_urls[run_num]="$field_2"
89-
build_scan_urls[run_num]="$field_3"
90-
git_repos[run_num]="$field_5"
91-
git_branches[run_num]="$field_6"
92-
git_commit_ids[run_num]="$field_7"
82+
83+
project_names[run_num]="${field_1}"
84+
85+
if [ -z "${base_urls[run_num]}" ]; then
86+
base_urls[run_num]="${field_2}"
87+
fi
88+
89+
if [ -z "${build_scan_urls[run_num]}" ]; then
90+
build_scan_urls[run_num]="${field_3}"
91+
fi
92+
93+
build_scan_ids[run_num]="${field_4}"
94+
95+
if [ -z "${git_repos[run_num]}" ]; then
96+
git_repos[run_num]="${field_5}"
97+
fi
98+
99+
if [ -z "${git_branches[run_num]}" ]; then
100+
git_branches[run_num]="${field_6}"
101+
fi
102+
103+
if [ -z "${git_commit_ids[run_num]}" ]; then
104+
git_commit_ids[run_num]="${field_7}"
105+
fi
106+
107+
if [ -z "${requested_tasks[run_num]}" ]; then
93108
requested_tasks[run_num]="$(remove_clean_task "${field_8}")"
94-
build_outcomes[run_num]="$field_9"
95-
remote_build_cache_urls[run_num]="${field_10}"
96-
remote_build_cache_shards[run_num]="${field_11}"
97109
fi
98110

111+
if [ -z "${build_outcomes[run_num]}" ]; then
112+
build_outcomes[run_num]="${field_9}"
113+
fi
114+
115+
remote_build_cache_urls[run_num]="${field_10}"
116+
remote_build_cache_shards[run_num]="${field_11}"
117+
99118
# Build caching performance metrics
100119
avoided_up_to_date_num_tasks[run_num]="${field_12}"
101120
avoided_up_to_date_avoidance_savings[run_num]="${field_13}"

components/scripts/maven/03-validate-remote-build-caching-ci-ci.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ validate_required_args() {
114114
}
115115

116116
fetch_build_scans() {
117-
fetch_build_scans_and_build_time_metrics 'all_data' "${build_scan_urls[@]}"
117+
fetch_build_scans_and_build_time_metrics 'verbose_logging' "${build_scan_urls[@]}"
118118
}
119119

120120
# Overrides summary.sh#print_experiment_specific_summary_info

0 commit comments

Comments
 (0)