Skip to content

Commit

Permalink
If cache.julialang.org is down, try to download Busybox from the up…
Browse files Browse the repository at this point in the history
…stream URL (#47015)

Co-authored-by: LilithHafner <[email protected]>

Co-authored-by: LilithHafner <[email protected]>
  • Loading branch information
DilumAluthge and LilithHafner authored Oct 4, 2022
1 parent b722507 commit 7f507e6
Showing 1 changed file with 27 additions and 2 deletions.
29 changes: 27 additions & 2 deletions test/spawn.jl
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
###################################

using Random, Sockets
using Downloads: download
using Downloads: Downloads, download

valgrind_off = ccall(:jl_running_on_valgrind, Cint, ()) == 0

Expand All @@ -20,8 +20,33 @@ shcmd = `sh`
sleepcmd = `sleep`
lscmd = `ls`
havebb = false

function _tryonce_download_from_cache(desired_url::AbstractString)
cache_url = "https://cache.julialang.org/foo/$(desired_url)"
cache_output_filename = joinpath(mktempdir(), "myfile")
cache_response = Downloads.request(
cache_url;
output = cache_output,
throw = false,
timeout = 60,
)
if cache_response isa Downloads.Response
if Downloads.status_ok(cache_response.proto, cache_response.status)
return cache_output_filename
end
end
return Downloads.download(desired_url; timeout = 60)
end

function download_from_cache(desired_url::AbstractString)
f = () -> _tryonce_download_from_cache(desired_url)
delays = Float64[30, 30, 60, 60, 60]
g = retry(f; delays)
return g()
end

if Sys.iswindows()
busybox = download("https://cache.julialang.org/https://frippery.org/files/busybox/busybox.exe", joinpath(tempdir(), "busybox.exe"))
busybox = download_from_cache("https://frippery.org/files/busybox/busybox.exe")
havebb = try # use busybox-w32 on windows, if available
success(`$busybox`)
true
Expand Down

2 comments on commit 7f507e6

@nanosoldier
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Executing the daily package evaluation, I will reply here when finished:

@nanosoldier runtests(ALL, isdaily = true)

@nanosoldier
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Your package evaluation job has completed - possible new issues were detected. A full report can be found here.

Please sign in to comment.