diff --git a/.gitea/actions/rust-cache/action.yml b/.gitea/actions/rust-cache/action.yml index bb30a69..0820148 100644 --- a/.gitea/actions/rust-cache/action.yml +++ b/.gitea/actions/rust-cache/action.yml @@ -79,8 +79,16 @@ runs: base_url="https://github.com/mozilla/sccache/releases/download/${version}" tmp="$(mktemp -d)" trap 'rm -rf "$tmp"' EXIT - curl -fsSLo "$tmp/$asset" "$base_url/$asset" - curl -fsSLo "$tmp/$asset.sha256" "$base_url/$asset.sha256" + curl_retry() { + curl --http1.1 --retry 5 --retry-all-errors --retry-delay 3 --connect-timeout 20 -fsSLo "$1" "$2" + } + if ! curl_retry "$tmp/$asset" "$base_url/$asset" || ! curl_retry "$tmp/$asset.sha256" "$base_url/$asset.sha256"; then + echo "sccache release download failed; falling back to cargo install" >&2 + crate_version="${version#v}" + cargo install sccache --locked --version "$crate_version" --features s3 + sccache --version + exit 0 + fi expected="$(tr -d '[:space:]' < "$tmp/$asset.sha256")" if command -v sha256sum >/dev/null 2>&1; then actual="$(sha256sum "$tmp/$asset" | cut -d ' ' -f 1)"