downloader.rb: unlink broken symlink before caching to fix ENOENT
On GitHub CI, the downloader's cache is shared across different jobs. For some systems, the cached config.guess ends up being a symlink to /usr/share/autoconf/build-aux/config.guess and containers that don't have that file end up consuming the cache anyways, leading to ENOENT when trying to cache the downloaded file. This error happened on forks: - https://github.com/XrXr/ruby/actions/runs/5675262636/job/15380232344 - https://github.com/peterzhu2118/ruby/actions/runs/5684765421/job/15408188728
This commit is contained in:
parent
f72f3ab15b
commit
83f9d80c0b
@ -270,6 +270,7 @@ class Downloader
|
|||||||
end
|
end
|
||||||
dest = (cache_save && cache && !cache.exist? ? cache : file)
|
dest = (cache_save && cache && !cache.exist? ? cache : file)
|
||||||
dest.parent.mkpath
|
dest.parent.mkpath
|
||||||
|
dest.unlink if dest.symlink? && !dest.exist?
|
||||||
dest.open("wb", 0600) do |f|
|
dest.open("wb", 0600) do |f|
|
||||||
f.write(data)
|
f.write(data)
|
||||||
f.chmod(mode_for(data))
|
f.chmod(mode_for(data))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user