summaryrefslogtreecommitdiff
path: root/util/board_status
diff options
context:
space:
mode:
authorPaul Menzel <paulepanter@users.sourceforge.net>2015-05-20 07:35:56 +0200
committerPatrick Georgi <pgeorgi@google.com>2015-05-21 07:57:48 +0200
commit54e6aa7216a6776daa67c94c97d8568e1d395861 (patch)
treee815a94e0fa9c2da6eea975ad39e8a776ea882b4 /util/board_status
parent16c12c0a302a64c523e85d90a6f6e0269618093a (diff)
downloadcoreboot-54e6aa7216a6776daa67c94c97d8568e1d395861.tar.xz
util/board_status: Fetch and rebase after failed push
Currently, when the remote master branch of the board-status repository changes between cloning and pushing, `git push origin` fails. This race condition happens quite often with REACTS testing commits at the same time on different systems. If that happens, just download the objects and refs from the board-status repository and rebase the local changes on it. Try that three times before exiting with an error message. Change-Id: I628ebce54895f44be6232b622d56acbcc421b847 Helped-by: Timothy Pearson <tpearson@raptorengineeringinc.com> Helped-by: Patrick Georgi <pgeorgi@google.com> Signed-off-by: Paul Menzel <paulepanter@users.sourceforge.net> Reviewed-on: http://review.coreboot.org/10262 Reviewed-by: Patrick Georgi <pgeorgi@google.com> Tested-by: build bot (Jenkins) Reviewed-by: Timothy Pearson <tpearson@raptorengineeringinc.com>
Diffstat (limited to 'util/board_status')
-rwxr-xr-xutil/board_status/board_status.sh10
1 files changed, 9 insertions, 1 deletions
diff --git a/util/board_status/board_status.sh b/util/board_status/board_status.sh
index 4f9fd85fdd..5bcbd04768 100755
--- a/util/board_status/board_status.sh
+++ b/util/board_status/board_status.sh
@@ -286,11 +286,19 @@ if [ $UPLOAD_RESULTS -eq 1 ]; then
echo "Uploading results"
git add "${vendor}"
git commit -a -m "${mainboard_dir}/${tagged_version}/${timestamp}"
- git push origin
+ count=0
+ until git push origin || test $count -eq 3; do
+ git pull --rebase
+ count=$((count + 1))
+ done
# Results have been uploaded so it's pointless to keep the
# temporary files around.
rm -rf "${tmpdir}"
+ if test $count -eq 3; then
+ echo "Error uploading to board-status repo, aborting."
+ exit $EXIT_FAILURE
+ fi
fi
cd "$coreboot_dir"