summaryrefslogtreecommitdiff
path: root/tcwg_bmk-build.sh
diff options
context:
space:
mode:
authorMaxim Kuvyrkov <maxim.kuvyrkov@linaro.org>2019-10-17 08:05:58 +0000
committerMaxim Kuvyrkov <maxim.kuvyrkov@linaro.org>2019-11-26 15:02:55 +0000
commit95c5ba52a8caa096a9bbc670357eefc41b5064e8 (patch)
treea1d36149484dbf12b372efbb33ebaccc81ceaa5d /tcwg_bmk-build.sh
parent588a4354f090d739d0f78aee23d32d46d0c1878b (diff)
round-robin.sh: Optimize splitting builds to narrow regression
... down to a component. E.g., in tcwg_bmk-gnu-* builds we track binutils, gcc and glibc, but most regressions happen due to gcc changes. Therefore instead of splitting binutils+gcc+glibc build into builds for binutils, gcc and glibc it is better to trigger binutils+glibc and gcc builds. If the regression does occur in binutils+glibc build, then it will be split into binutils and glibc builds. Change-Id: Ifd2effea69fe17b3271645f9a6c1e482cb79ceac
Diffstat (limited to 'tcwg_bmk-build.sh')
-rwxr-xr-xtcwg_bmk-build.sh26
1 files changed, 26 insertions, 0 deletions
diff --git a/tcwg_bmk-build.sh b/tcwg_bmk-build.sh
index 82a29980..795dc9c4 100755
--- a/tcwg_bmk-build.sh
+++ b/tcwg_bmk-build.sh
@@ -383,6 +383,32 @@ no_regression_to_base_p ()
)
}
+# Implement rr[breakup_updated_components] hook.
+tcwg_bmk_breakup_updated_components ()
+{
+ (
+ set -euf -o pipefail
+
+ # Compiler changes tend to cause the most regressions.
+ # Breakup updated components into compiler and the rest of components
+ # to reduce the number of builds.
+ local cc
+ case "${rr[toolchain]}" in
+ llvm) cc="llvm" ;;
+ gnu) cc="gcc" ;;
+ *) assert false ;;
+ esac
+
+ if print_updated_components "\n" | grep -q "^$cc\$"; then
+ echo "$cc"
+ print_updated_components "\n" | grep -v "^$cc\$" | tr '\n' ' '
+ else
+ print_updated_components "\n"
+ fi
+ )
+}
+rr[breakup_updated_components]=tcwg_bmk_breakup_updated_components
+
run_step stop_on_fail -10 reset_artifacts
run_step stop_on_fail x prepare_abe
run_step skip_on_fail -9 build_abe binutils