summaryrefslogtreecommitdiff
path: root/round-robin.sh
diff options
context:
space:
mode:
authorMaxim Kuvyrkov <maxim.kuvyrkov@linaro.org>2020-02-06 19:06:37 +0300
committerMaxim Kuvyrkov <maxim.kuvyrkov@linaro.org>2020-02-06 19:06:37 +0300
commit262d4058ecbff26211ffb86e294b944507f130b9 (patch)
treec572dac633fb59196ed18a782a68311a40e78313 /round-robin.sh
parentdf70980738fa15f562a7f20c78beb05f9c1f519f (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.sh37
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
)
}