summaryrefslogtreecommitdiff
path: root/ci
diff options
context:
space:
mode:
authorLars Schneider <larsxschneider@gmail.com>2017-05-03 21:50:15 (GMT)
committerJunio C Hamano <gitster@pobox.com>2017-05-04 05:50:44 (GMT)
commit016d66f512bbbd7d766f6244d989b4549d5b0d5b (patch)
treefd3a98bda3a65d0d77ac817e562cafa59f073748 /ci
parent6fa68ff28856f85f8633ea054856e98962f167d0 (diff)
downloadgit-016d66f512bbbd7d766f6244d989b4549d5b0d5b.zip
git-016d66f512bbbd7d766f6244d989b4549d5b0d5b.tar.gz
git-016d66f512bbbd7d766f6244d989b4549d5b0d5b.tar.bz2
travis-ci: retry if Git for Windows CI returns HTTP error 502 or 503
The Git for Windows CI web app sometimes returns HTTP errors of "502 bad gateway" or "503 service unavailable" [1]. We also need to check the HTTP content because the GfW web app seems to pass through (error) results from other Azure calls with HTTP code 200. Wait a little and retry the request if this happens. [1] https://docs.microsoft.com/en-in/azure/app-service-web/app-service-web-troubleshoot-http-502-http-503 Signed-off-by: Lars Schneider <larsxschneider@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'ci')
-rwxr-xr-xci/run-windows-build.sh23
1 files changed, 21 insertions, 2 deletions
diff --git a/ci/run-windows-build.sh b/ci/run-windows-build.sh
index c72a2bd..c55efa1 100755
--- a/ci/run-windows-build.sh
+++ b/ci/run-windows-build.sh
@@ -14,14 +14,33 @@ COMMIT=$2
gfwci () {
local CURL_ERROR_CODE HTTP_CODE
- exec 3>&1
+ CONTENT_FILE=$(mktemp -t "git-windows-ci-XXXXXX")
+ while test -z $HTTP_CODE
+ do
HTTP_CODE=$(curl \
-H "Authentication: Bearer $GFW_CI_TOKEN" \
--silent --retry 5 --write-out '%{HTTP_CODE}' \
- --output >(sed "$(printf '1s/^\xef\xbb\xbf//')" >cat >&3) \
+ --output >(sed "$(printf '1s/^\xef\xbb\xbf//')" >$CONTENT_FILE) \
"https://git-for-windows-ci.azurewebsites.net/api/TestNow?$1" \
)
CURL_ERROR_CODE=$?
+ # The GfW CI web app sometimes returns HTTP errors of
+ # "502 bad gateway" or "503 service unavailable".
+ # We also need to check the HTTP content because the GfW web
+ # app seems to pass through (error) results from other Azure
+ # calls with HTTP code 200.
+ # Wait a little and retry if we detect this error. More info:
+ # https://docs.microsoft.com/en-in/azure/app-service-web/app-service-web-troubleshoot-http-502-http-503
+ if test $HTTP_CODE -eq 502 ||
+ test $HTTP_CODE -eq 503 ||
+ grep "502 - Web server received an invalid response" $CONTENT_FILE >/dev/null
+ then
+ sleep 10
+ HTTP_CODE=
+ fi
+ done
+ cat $CONTENT_FILE
+ rm $CONTENT_FILE
if test $CURL_ERROR_CODE -ne 0
then
return $CURL_ERROR_CODE