diff --git a/components/scripts/gradle/01-validate-incremental-building.sh b/components/scripts/gradle/01-validate-incremental-building.sh index 45c079bf..8c637ca1 100755 --- a/components/scripts/gradle/01-validate-incremental-building.sh +++ b/components/scripts/gradle/01-validate-incremental-building.sh @@ -39,6 +39,10 @@ ge_server='' interactive_mode='' main() { + if [[ "$build_scan_publishing_mode" == "off" ]]; then + verify_build_scan_support_tool_exists + fi + if [ "${interactive_mode}" == "on" ]; then wizard_execute else @@ -63,6 +67,9 @@ execute() { execute_second_build rename_project_dir "build_${project_name}" "second-build_${project_name}" + print_bl + fetch_build_cache_metrics + print_bl print_summary } @@ -71,8 +78,16 @@ wizard_execute() { print_bl print_introduction - print_bl - explain_prerequisites_ccud_gradle_plugin "" + if [[ "${build_scan_publishing_mode}" == "on" ]]; then + print_bl + explain_prerequisites_ccud_gradle_plugin "I." + + print_bl + explain_prerequisites_api_access "II." + else + print_bl + explain_prerequisites_ccud_gradle_plugin + fi print_bl explain_collect_git_details @@ -106,23 +121,57 @@ wizard_execute() { print_bl explain_measure_build_results print_bl + fetch_build_cache_metrics + print_bl explain_and_print_summary } +# shellcheck disable=SC2086 # splitting expected execute_first_build() { info "Running first build:" - info "./gradlew --no-build-cache --scan -Dscan.tag.${EXP_SCAN_TAG} -Dscan.value.runId=${RUN_ID} clean ${tasks}$(print_extra_args)" - - # shellcheck disable=SC2086 # we want tasks to expand with word splitting in this case - invoke_gradle --no-build-cache clean ${tasks} + execute_build clean ${tasks} } +# shellcheck disable=SC2086 # splitting expected execute_second_build() { info "Running second build:" - info "./gradlew --no-build-cache --scan -Dscan.tag.${EXP_SCAN_TAG} -Dscan.value.runId=${RUN_ID} ${tasks}$(print_extra_args)" + execute_build ${tasks} +} + +execute_build() { + print_gradle_command "$@" + invoke_gradle --no-build-cache "$@" +} - # shellcheck disable=SC2086 # we want tasks to expand with word splitting in this case - invoke_gradle --no-build-cache ${tasks} +print_gradle_command() { + local scan_arg + if [[ "${build_scan_publishing_mode}" == "on" ]]; then + scan_arg="--scan" + else + scan_arg="-Dscan.dump" + fi + info "./gradlew --no-build-cache ${scan_arg} -Dscan.tag.${EXP_SCAN_TAG} -Dscan.value.runId=${RUN_ID} $*$(print_extra_args)" +} + +fetch_build_cache_metrics() { + if [ "$build_scan_publishing_mode" == "on" ]; then + read_build_scan_metadata + fetch_and_read_build_scan_data build_cache_metrics_only "${build_scan_urls[@]}" + else + find_and_read_build_scan_dumps + fi +} + +# Overrides info.sh#print_performance_metrics +print_performance_metrics() { + print_performance_characteristics +} + +# Overrides info.sh#print_performance_characteristics +print_performance_characteristics() { + print_performance_characteristics_header + + print_realized_build_time_savings } print_quick_links() { @@ -216,16 +265,36 @@ EOF explain_measure_build_results() { local text - IFS='' read -r -d '' text < to measure the build results.${RESTORE} EOF + else + IFS='' read -r -d '' text < to measure the build results.${RESTORE} +EOF + fi print_wizard_text "${text}" wait_for_enter } @@ -233,16 +302,37 @@ EOF explain_and_print_summary() { read_build_scan_metadata local text - IFS='' read -r -d '' text <