From 25083c8388a20883a71535b94f23343e1620f2e8 Mon Sep 17 00:00:00 2001 From: John Coffey Date: Wed, 30 Sep 2026 16:49:45 -0700 Subject: [PATCH] ci: retry release file uploads over HTTP/1.1 inbuxa-server's first GitHub-built release lost 50 MB uploads to Gitea's release API through Cloudflare (curl 92, HTTP/2 PROTOCOL_ERROR) on both runs of its binaries job. This job uploads the same way. Uploads now go over HTTP/1.1, and the asset listing and uploads retry 5 times. --- .github/workflows/ci.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 160ad7d..dbed148 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -192,12 +192,15 @@ jobs: [ -n "$id" ] || { echo "::error::could not create the release"; exit 1; } created=1 fi - have="$(curl -fsS "${auth[@]}" "$API/releases/$id/assets" | jq -r '.[].name')" + # The uploads cross Cloudflare, which dropped 50 MB HTTP/2 uploads + # part-way for inbuxa-server v2026.9.30.1 (curl 92). HTTP/1.1, and retry. + retry=(--retry 5 --retry-all-errors --retry-delay 15) + have="$(curl -fsS "${retry[@]}" "${auth[@]}" "$API/releases/$id/assets" | jq -r '.[].name')" for f in dist/*; do n="$(basename "$f")" if grep -qxF "$n" <<<"$have"; then echo "already attached: $n"; continue; fi echo "uploading $n" - curl -fsS -o /dev/null "${auth[@]}" --form "attachment=@$f" "$API/releases/$id/assets?name=$n" || { + curl -fsS --http1.1 "${retry[@]}" -o /dev/null "${auth[@]}" --form "attachment=@$f" "$API/releases/$id/assets?name=$n" || { [ "$created" = 1 ] && curl -sS -o /dev/null "${auth[@]}" -X DELETE "$API/releases/$id" exit 1 } -- 2.54.0