summaryrefslogtreecommitdiff
path: root/tools/buildman/builder.py
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2014-07-13 14:03:41 -0600
committerSimon Glass <sjg@chromium.org>2014-07-23 09:52:36 -0600
commit21fe8ec355ca34ec5a7b5f2f8dd816fa13911687 (patch)
treeb76dd02f5d92b949bb38e68e4cc7b3a0a4fab005 /tools/buildman/builder.py
parent4266dc28827454ede31cc931a3c76b67fafd31c2 (diff)
buildman: Avoid retrying a build if it definitely failed
After a build fails buildman will reconfigure and try again, if it did not reconfigure before the build. However it doesn't actually keep track of whether it did reconfigure on the previous attempt. Fix that logic to avoid a pointless rebuild. This speeds things up quite a bit for failing builds. Previously they would always be built twice. Change-Id: Ib37f21320baa7c60bed98f4042c0b7ed7c0dc85e Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'tools/buildman/builder.py')
-rw-r--r--tools/buildman/builder.py4
1 files changed, 3 insertions, 1 deletions
diff --git a/tools/buildman/builder.py b/tools/buildman/builder.py
index 2990c4519c..39a6e8ad5c 100644
--- a/tools/buildman/builder.py
+++ b/tools/buildman/builder.py
@@ -423,12 +423,14 @@ class BuilderThread(threading.Thread):
force_build or self.builder.force_build,
self.builder.force_build_failures)
failed = result.return_code or result.stderr
+ did_config = do_config
if failed and not do_config:
# If our incremental build failed, try building again
# with a reconfig.
if self.builder.force_config_on_failure:
result, request_config = self.RunCommit(commit_upto,
brd, work_dir, True, True, False)
+ did_config = True
do_config = request_config
# If we built that commit, then config is done. But if we got
@@ -445,7 +447,7 @@ class BuilderThread(threading.Thread):
# Of course this is substantially slower if there are build
# errors/warnings (e.g. 2-3x slower even if only 10% of builds
# have problems).
- if (failed and not result.already_done and not do_config and
+ if (failed and not result.already_done and not did_config and
self.builder.force_config_on_failure):
# If this build failed, try the next one with a
# reconfigure.