Skip to content

Commit a55454f

Browse files
committed
add retry for upload to saucelabs
1 parent c0e91b9 commit a55454f

File tree

1 file changed

+25
-14
lines changed

1 file changed

+25
-14
lines changed

rake-tasks/ci.rb

Lines changed: 25 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -29,20 +29,31 @@ def net_http
2929
body = infile.read
3030
end
3131

32-
uri = URI.parse(upload_url)
33-
request = Net::HTTP::Post.new(uri.request_uri)
34-
request.basic_auth(username, apikey)
35-
request["Content-Type"] = "application/octet-stream"
36-
request.body = body
37-
http = net_http.new(uri.host, uri.port)
38-
http.read_timeout = 60 * 5 # 5 min
39-
response = http.request(request)
40-
metadata = JSON.parse(response.body)
41-
local_digest = Digest::MD5.hexdigest(body)
42-
if metadata['md5'] == local_digest
43-
puts "file successfully uploaded: #{metadata['filename']}"
44-
else
45-
puts "issues uploading file: #{response.code} - #{response.body}"
32+
for i in 0..5
33+
uri = URI.parse(upload_url)
34+
request = Net::HTTP::Post.new(uri.request_uri)
35+
request.basic_auth(username, apikey)
36+
request["Content-Type"] = "application/octet-stream"
37+
request.body = body
38+
http = net_http.new(uri.host, uri.port)
39+
http.read_timeout = 60 * 5 # 5 min
40+
begin
41+
response = http.request(request)
42+
rescue => error
43+
puts "issue uploading file: #{error}"
44+
next
45+
end
46+
metadata = JSON.parse(response.body)
47+
local_digest = Digest::MD5.hexdigest(body)
48+
if metadata['md5'] == local_digest
49+
puts "file successfully uploaded: #{metadata['filename']}"
50+
else
51+
puts "issues uploading file: #{response.code} - #{response.body}"
52+
end
53+
break
54+
end
55+
if i == 5
56+
raise "failed to upload to saucelabs after numerous retries"
4657
end
4758
end
4859
end

0 commit comments

Comments
 (0)