diff options
author | Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org> | 2020-02-06 19:06:37 +0300 |
---|---|---|
committer | Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org> | 2020-02-06 19:06:37 +0300 |
commit | 262d4058ecbff26211ffb86e294b944507f130b9 (patch) | |
tree | c572dac633fb59196ed18a782a68311a40e78313 /round-robin.sh | |
parent | df70980738fa15f562a7f20c78beb05f9c1f519f (diff) |
round-robin.sh: Always generate comparison artifacts in check_regression
These are valuable for one-shot benchmarking experiments.
Change-Id: I6d63580156be9c7a9e3dcc906fb9128395fbbe33
Diffstat (limited to 'round-robin.sh')
-rw-r--r-- | round-robin.sh | 37 |
1 files changed, 20 insertions, 17 deletions
diff --git a/round-robin.sh b/round-robin.sh index 2f37cbfd..c468d6ac 100644 --- a/round-robin.sh +++ b/round-robin.sh @@ -497,13 +497,30 @@ check_regression () local score score=$(tail -n1 ${rr[top_artifacts]}/results) - if [ x"${rr[update_baseline]}" = x"update" \ - -o x"${rr[update_baseline]}" = x"push" ]; then + if [ x"${rr[update_baseline]}" = x"rebase" ]; then + # No-one ever used "rebase" mode. It's now obsoleted by custom ci_projects. + local base_artifacts_head base_artifacts_tail + base_artifacts_head=$(git -C base-artifacts rev-parse HEAD) + base_artifacts_tail=$(git -C base-artifacts rev-list --max-parents=0 HEAD) + git -C base-artifacts reset --hard $base_artifacts_tail + + ${rr[no_regression_p]} ${rr[top_artifacts]} base-artifacts & + if wait $!; then + # Current results are no better then the all-time-best results. + # No reason to rebase base-artifacts. + false + fi + + git -C base-artifacts reset --hard $base_artifacts_head + else + # Generate comparison artifacts for update, reset, init and push modes. ${rr[no_regression_p]} base-artifacts ${rr[top_artifacts]} & if wait $!; then + # All good, no regression return fi + # We've got a regression. Generate trigger-* files. local single_component=$(print_single_updated_component) local trigger_dest @@ -561,27 +578,13 @@ EOF fi if [ x"${rr[update_baseline]}" = x"update" ]; then - # Fail. + # Fail if detected regression in "update" mode. false else # Compare results to generate logs and other artifacts, # but we don't really care about regressions. : fi - elif [ x"${rr[update_baseline]}" = x"rebase" ]; then - local base_artifacts_head base_artifacts_tail - base_artifacts_head=$(git -C base-artifacts rev-parse HEAD) - base_artifacts_tail=$(git -C base-artifacts rev-list --max-parents=0 HEAD) - git -C base-artifacts reset --hard $base_artifacts_tail - - ${rr[no_regression_p]} ${rr[top_artifacts]} base-artifacts & - if wait $!; then - # Current results are no better then the all-time-best results. - # No reason to rebase base-artifacts. - false - fi - - git -C base-artifacts reset --hard $base_artifacts_head fi ) } |