summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2014-08-28 09:43:39 -0600
committerSimon Glass <sjg@chromium.org>2014-09-05 13:40:42 -0600
commit2c3deb9758c5be1c590bebdd25d8a36d486ea5e9 (patch)
tree2b844a37225fe82ff992eedcee8c5d21f2395d4b /tools
parentd0c5719d92c85addcd38e1dcc21cbc4cbc0fc6a5 (diff)
buildman: Set the return code to indicate build result
When buildman finds errors/warnings when building, set the return code to indicate this. Suggested-by: York Sun <yorksun@freescale.com> Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'tools')
-rw-r--r--tools/buildman/README6
-rw-r--r--tools/buildman/builder.py5
-rwxr-xr-xtools/buildman/buildman.py3
-rw-r--r--tools/buildman/control.py9
4 files changed, 20 insertions, 3 deletions
diff --git a/tools/buildman/README b/tools/buildman/README
index d4e840480a..d20508f089 100644
--- a/tools/buildman/README
+++ b/tools/buildman/README
@@ -690,6 +690,12 @@ Other options
Buildman has various other command line options. Try --help to see them.
+When doing builds, Buildman's return code will reflect the overall result:
+
+ 0 (success) No errors or warnings found
+ 128 Errors found
+ 129 Warnings found
+
How to change from MAKEALL
==========================
diff --git a/tools/buildman/builder.py b/tools/buildman/builder.py
index a555bd81fc..106fde0a32 100644
--- a/tools/buildman/builder.py
+++ b/tools/buildman/builder.py
@@ -1031,6 +1031,10 @@ class Builder:
value is Board object
keep_outputs: True to save build output files
verbose: Display build results as they are completed
+ Returns:
+ Tuple containing:
+ - number of boards that failed to build
+ - number of boards that issued warnings
"""
self.commit_count = len(commits) if commits else 1
self.commits = commits
@@ -1060,3 +1064,4 @@ class Builder:
self.out_queue.join()
print
self.ClearLine(0)
+ return (self.fail, self.warned)
diff --git a/tools/buildman/buildman.py b/tools/buildman/buildman.py
index e18859b3d7..fbd31259bf 100755
--- a/tools/buildman/buildman.py
+++ b/tools/buildman/buildman.py
@@ -136,4 +136,5 @@ elif options.full_help:
# Build selected commits for selected boards
else:
- control.DoBuildman(options, args)
+ ret_code = control.DoBuildman(options, args)
+ sys.exit(ret_code)
diff --git a/tools/buildman/control.py b/tools/buildman/control.py
index 68ea961876..b8a6cbfe2f 100644
--- a/tools/buildman/control.py
+++ b/tools/buildman/control.py
@@ -94,7 +94,7 @@ def DoBuildman(options, args):
if options.list_tool_chains:
toolchains.List()
print
- return
+ return 0
# Work out how many commits to build. We want to build everything on the
# branch. We also build the upstream commit as a control so we can see
@@ -217,5 +217,10 @@ def DoBuildman(options, args):
options.show_detail = True
builder.ShowSummary(commits, board_selected)
else:
- builder.BuildBoards(commits, board_selected,
+ fail, warned = builder.BuildBoards(commits, board_selected,
options.keep_outputs, options.verbose)
+ if fail:
+ return 128
+ elif warned:
+ return 129
+ return 0