From 63424fb26a161ea53bb8783c5a71235e5af65604 Mon Sep 17 00:00:00 2001 From: Alexander Block Date: Thu, 27 Jun 2019 22:25:30 +0200 Subject: [PATCH] Fix 2 common Travis failures which happen when Travis has network issues (#3003) * Retry downloading of depends sources 3 times * Manually invoke apt-get update and install instead of using addon This allows us to use travis_retry on these operations. * Add exception for depends/Makefile in .gitignore * Remove --retry from curl call This avoids future confusion as we don't rely on curl anymore to properly retry downloads. curls does only retry on transient errors, while Travis might cause all kinds of errors which circumvent the retry logic of curl. --- .gitignore | 1 + .travis.yml | 13 ++++--------- depends/Makefile | 1 - depends/builders/darwin.mk | 2 +- depends/builders/linux.mk | 2 +- depends/funcs.mk | 2 ++ 6 files changed, 9 insertions(+), 12 deletions(-) diff --git a/.gitignore b/.gitignore index c3be44a72c..a1c24fd722 100644 --- a/.gitignore +++ b/.gitignore @@ -83,6 +83,7 @@ libconftest.dylib* Makefile dash-qt Dash-Qt.app +!/depends/Makefile # Unit-tests Makefile.test diff --git a/.travis.yml b/.travis.yml index 6ded5c3785..c27b6f03ae 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,19 +8,10 @@ dist: trusty os: linux language: generic -addons: - apt: - packages: - # Use more recent docker version - - docker-ce - # Can be removed if Travis ever upgrades to Bionic - - realpath - services: - docker cache: - apt: true ccache: true directories: - $HOME/cache @@ -122,6 +113,10 @@ before_cache: # Save builder image - docker save dash-builder-$BUILD_TARGET-$TRAVIS_JOB_NUMBER $(docker history -q dash-builder-$BUILD_TARGET-$TRAVIS_JOB_NUMBER | grep -v \) | gzip -2 > $HOME/cache/docker/dash-builder-$BUILD_TARGET.tar.gz +before_install: + - travis_retry travis_apt_get_update + - travis_retry sudo apt-get -yq --no-install-suggests --no-install-recommends install docker-ce realpath + install: # Our scripts try to be Travis agnostic - export PULL_REQUEST="$TRAVIS_PULL_REQUEST" diff --git a/depends/Makefile b/depends/Makefile index 71aa4ecb8a..6d8bd8d214 100644 --- a/depends/Makefile +++ b/depends/Makefile @@ -14,7 +14,6 @@ PATCHES_PATH = $(BASEDIR)/patches BASEDIR = $(CURDIR) HASH_LENGTH:=11 DOWNLOAD_CONNECT_TIMEOUT:=10 -DOWNLOAD_RETRIES:=3 HOST_ID_SALT ?= salt BUILD_ID_SALT ?= salt diff --git a/depends/builders/darwin.mk b/depends/builders/darwin.mk index d15d6feea6..adf75e6ff5 100644 --- a/depends/builders/darwin.mk +++ b/depends/builders/darwin.mk @@ -7,7 +7,7 @@ build_darwin_OTOOL: = $(shell xcrun -f otool) build_darwin_NM: = $(shell xcrun -f nm) build_darwin_INSTALL_NAME_TOOL:=$(shell xcrun -f install_name_tool) build_darwin_SHA256SUM = shasum -a 256 -build_darwin_DOWNLOAD = curl --location --fail --connect-timeout $(DOWNLOAD_CONNECT_TIMEOUT) --retry $(DOWNLOAD_RETRIES) -o +build_darwin_DOWNLOAD = curl --location --fail --connect-timeout $(DOWNLOAD_CONNECT_TIMEOUT) -o #darwin host on darwin builder. overrides darwin host preferences. darwin_CC=$(shell xcrun -f clang) -mmacosx-version-min=$(OSX_MIN_VERSION) diff --git a/depends/builders/linux.mk b/depends/builders/linux.mk index b03f424010..9af0d066a0 100644 --- a/depends/builders/linux.mk +++ b/depends/builders/linux.mk @@ -1,2 +1,2 @@ build_linux_SHA256SUM = sha256sum -build_linux_DOWNLOAD = curl --location --fail --connect-timeout $(DOWNLOAD_CONNECT_TIMEOUT) --retry $(DOWNLOAD_RETRIES) -o +build_linux_DOWNLOAD = curl --location --fail --connect-timeout $(DOWNLOAD_CONNECT_TIMEOUT) -o diff --git a/depends/funcs.mk b/depends/funcs.mk index 15e404e42d..5c05a4e7c2 100644 --- a/depends/funcs.mk +++ b/depends/funcs.mk @@ -31,6 +31,8 @@ endef define fetch_file ( test -f $$($(1)_source_dir)/$(4) || \ ( $(call fetch_file_inner,$(1),$(2),$(3),$(4),$(5)) || \ + (sleep 5 && $(call fetch_file_inner,$(1),$(2),$(3),$(4),$(5))) || \ + (sleep 10 && $(call fetch_file_inner,$(1),$(2),$(3),$(4),$(5))) || \ $(call fetch_file_inner,$(1),$(FALLBACK_DOWNLOAD_PATH),$(3),$(4),$(5)))) endef