From dd8574022dee422d24b9eb8ba30b1cf2ddc7158d Mon Sep 17 00:00:00 2001 From: Ed Santiago Date: Mon, 27 Mar 2023 10:53:17 -0600 Subject: [PATCH] CI: retry the golangci install It flakes once or twice a day: VERSION=1.51.1 ./hack/install_golangci.sh Installing golangci-lint v1.51.1 into ./bin/golangci-lint golangci/golangci-lint info checking GitHub for tag 'v1.51.1' golangci/golangci-lint crit unable to find 'v1.51.1' - use 'latest' or see https://github.com/golangci/golangci-lint/releases for details No visibility into why, and no special reason to believe that retrying five seconds later will work, but it seems worth a try. Signed-off-by: Ed Santiago --- hack/install_golangci.sh | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/hack/install_golangci.sh b/hack/install_golangci.sh index 74c7bc7c91..7385e230da 100755 --- a/hack/install_golangci.sh +++ b/hack/install_golangci.sh @@ -8,7 +8,14 @@ die() { echo "${1:-No error message given} (from $(basename $0))"; exit 1; } [ -n "$VERSION" ] || die "\$VERSION is empty or undefined" function install() { - echo "Installing golangci-lint v$VERSION into $BIN" + local retry=$1 + + local msg="Installing golangci-lint v$VERSION into $BIN" + if [[ $retry -ne 0 ]]; then + msg+=" - retry #$retry" + fi + echo $msg + curl -sSL --retry 5 https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s v$VERSION } @@ -17,7 +24,11 @@ function install() { export BINDIR="./bin" BIN="$BINDIR/golangci-lint" if [ ! -x "$BIN" ]; then - install + # This flakes much too frequently with "crit unable to find v1.51.1" + for retry in $(seq 0 5); do + install $retry && exit 0 + sleep 5 + done else # Prints its own file name as part of --version output $BIN --version | grep "$VERSION"