CI: retry + GitHub mirror fallback for the static-ffmpeg download - #95
Merged
Merged
Conversation
ffmpeg.org reset connections from the Windows runners twice an hour apart, failing the v1.9.1 Auto Release's Windows job both on the original run and on a re-run of failed jobs (the tag is pushed, the release unpublished until a new run succeeds). The msys2 mirror worked fine in the same jobs, so this is host-specific — likely rate limiting of shared runner egress. fetch-ffmpeg.sh now downloads with curl --retry-all-errors (a plain --retry ignores connection resets) and falls back to the GitHub tag archive of FFmpeg/FFmpeg, which is the same source served from infrastructure runners can always reach. All three platform builds use it. Editing the action also rotates its hashFiles-keyed caches, so the next run rebuilds FFmpeg once per platform and exercises the fetch. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AeWct1Rvpqi4ptgogiwsCL
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What & why
The v1.9.1 Auto Release (the #91/#93 fix) is stuck half-shipped: the tag was pushed, but the Windows build failed on
curl: (35) Recv failure: Connection reset by peerdownloadingffmpeg-7.1.tar.xzfrom ffmpeg.org — twice, an hour apart (original run and a re-run of failed jobs), while the msys2 mirror worked fine in the same jobs and Linux/macOS fetched the same file without trouble. That points at ffmpeg.org rate-limiting or resetting the shared Windows-runner egress, so plain retries aren't a reliable fix.New
fetch-ffmpeg.shin the static-ffmpeg action, used by all three platform builds:curl -f --retry 5 --retry-delay 2 --retry-all-errors(a plain--retrydoes not retry on connection resets — exactly the failure seen);FFmpeg/FFmpeg@n<version>— the same source, served from infrastructure Actions runners can always reach.Editing the action rotates its
hashFiles-keyed caches, so this PR's CI rebuilds FFmpeg on all three platforms and exercises the new fetch path under the current network conditions. CI-only change — no release is cut by merging this (nothing underobs-plugin/,ios-app/, orinstaller/changed).How it was tested
Verified in the Linux container:
actionlintpasses, the action YAML parses, both shell scripts passbash -n, andfetch-ffmpeg.sh's primary path was run for real (downloads and unpacksffmpeg-7.1from ffmpeg.org). The mirror fallback URL couldn't be fetched end-to-end from the sandbox (its egress proxy 403s GitHub archive downloads for out-of-scope repos), but the tag-archive endpoint and itsFFmpeg-n7.1/top-level directory are GitHub's fixed conventions, and this PR's own Windows/macOS/Linux CI jobs exercise the full fetch on real runners.🤖 Generated with Claude Code
https://claude.ai/code/session_01AeWct1Rvpqi4ptgogiwsCL
Generated by Claude Code