diff options
| author | Mike McQuaid | 2015-08-24 12:24:56 +0100 |
|---|---|---|
| committer | Mike McQuaid | 2015-08-25 16:43:37 +0100 |
| commit | 166e33c2ffe84462240ed36946b9127b63421a60 (patch) | |
| tree | d33bab536c55fec309ae38cfb269d448cccefc4b /Library/Homebrew/cmd/pull.rb | |
| parent | 4e5d92dc1011bb09fa4db3282e938b4a55dc2d21 (diff) | |
| download | brew-166e33c2ffe84462240ed36946b9127b63421a60.tar.bz2 | |
pull: do fetch after everything else, sleep more.
Use an exponential back-off on the sleep and try the fetch more times.
Hopefully this will mean that we spent less time waiting for Bintray.
Closes Homebrew/homebrew#43240.
Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
Diffstat (limited to 'Library/Homebrew/cmd/pull.rb')
| -rw-r--r-- | Library/Homebrew/cmd/pull.rb | 26 |
1 files changed, 19 insertions, 7 deletions
diff --git a/Library/Homebrew/cmd/pull.rb b/Library/Homebrew/cmd/pull.rb index 809e4b5a4..35576fee0 100644 --- a/Library/Homebrew/cmd/pull.rb +++ b/Library/Homebrew/cmd/pull.rb @@ -57,6 +57,8 @@ module Homebrew odie "You meant `git pull --rebase`." end + bintray_fetch_formulae =[] + ARGV.named.each do |arg| if arg.to_i > 0 url = "https://github.com/Homebrew/homebrew/pull/#{arg}" @@ -189,19 +191,29 @@ module Homebrew "-u#{bintray_user}:#{bintray_key}", "-X", "POST", "-d", '{"publish_wait_for_secs": -1}', "https://api.bintray.com/content/homebrew/#{repo}/#{package}/#{version}/publish" - sleep 5 - success = system "brew", "fetch", "--retry", "--force-bottle", f.full_name - unless success - ohai "That didn't work; sleeping another 10 and trying again..." - sleep 10 - system "brew", "fetch", "--retry", "--force-bottle", f.full_name - end + bintray_fetch_formulae << f end else opoo "You must set BINTRAY_USER and BINTRAY_KEY to add or update bottles on Bintray!" end end + bintray_fetch_formulae.each do |f| + max_retries = 5 + retry_count = 0 + begin + success = system "brew", "fetch", "--force-bottle", f.full_name + raise "Failed to download #{f} bottle!" unless success + rescue RuntimeError => e + retry_count += 1 + raise e if retry_count >= max_retries + sleep_seconds = 2**retry_count + ohai "That didn't work; sleeping #{sleep_seconds} seconds and trying again..." + sleep sleep_seconds + retry + end + end + ohai "Patch changed:" safe_system "git", "diff-tree", "-r", "--stat", revision, "HEAD" |
