diff options
author | Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org> | 2019-10-17 08:05:58 +0000 |
---|---|---|
committer | Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org> | 2019-11-26 15:02:55 +0000 |
commit | 95c5ba52a8caa096a9bbc670357eefc41b5064e8 (patch) | |
tree | a1d36149484dbf12b372efbb33ebaccc81ceaa5d /tcwg_bmk-build.sh | |
parent | 588a4354f090d739d0f78aee23d32d46d0c1878b (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-x | tcwg_bmk-build.sh | 26 |
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 |