diff options
author | Paul Menzel <paulepanter@users.sourceforge.net> | 2015-05-20 07:35:56 +0200 |
---|---|---|
committer | Patrick Georgi <pgeorgi@google.com> | 2015-05-21 07:57:48 +0200 |
commit | 54e6aa7216a6776daa67c94c97d8568e1d395861 (patch) | |
tree | e815a94e0fa9c2da6eea975ad39e8a776ea882b4 | |
parent | 16c12c0a302a64c523e85d90a6f6e0269618093a (diff) | |
download | coreboot-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>
-rwxr-xr-x | util/board_status/board_status.sh | 10 |
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" |