diff mbox

[U-Boot,2/6] buildman: Avoid retrying a build if it definitely failed

Message ID 1405381865-8028-3-git-send-email-sjg@chromium.org
State Accepted
Delegated to: Simon Glass
Headers show

Commit Message

Simon Glass July 14, 2014, 11:51 p.m. UTC
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.

Signed-off-by: Simon Glass <sjg@chromium.org>
---

 tools/buildman/builder.py | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Comments

Simon Glass July 26, 2014, 3:18 p.m. UTC | #1
On 15 July 2014 00:51, Simon Glass <sjg@chromium.org> wrote:
> 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.
>
> Signed-off-by: Simon Glass <sjg@chromium.org>

Applied to dm/master.
diff mbox

Patch

diff --git a/tools/buildman/builder.py b/tools/buildman/builder.py
index 2990c45..39a6e8a 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.