From 6fa68ff28856f85f8633ea054856e98962f167d0 Mon Sep 17 00:00:00 2001 From: Lars Schneider Date: Sat, 29 Apr 2017 20:59:58 +0200 Subject: travis-ci: handle Git for Windows CI status "failed" explicitly Git for Windows CI returns "completed: failed" if a build or test failure happened. This case was processed as "Unhandled status". Handle the case explicitly. Signed-off-by: Lars Schneider Signed-off-by: Junio C Hamano diff --git a/ci/run-windows-build.sh b/ci/run-windows-build.sh index 4e3a50b..c72a2bd 100755 --- a/ci/run-windows-build.sh +++ b/ci/run-windows-build.sh @@ -61,7 +61,8 @@ do case "$STATUS" in inProgress|postponed|notStarted) sleep 10 ;; # continue "completed: succeeded") RESULT="success"; break;; # success - *) echo "Unhandled status: $STATUS"; break;; # failure + "completed: failed") break;; # failure + *) echo "Unhandled status: $STATUS"; break;; # unknown esac done -- cgit v0.10.2-6-g49f6 From 016d66f512bbbd7d766f6244d989b4549d5b0d5b Mon Sep 17 00:00:00 2001 From: Lars Schneider Date: Wed, 3 May 2017 23:50:15 +0200 Subject: 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 Signed-off-by: Junio C Hamano 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 -- cgit v0.10.2-6-g49f6