Skip to content

CI: retry + GitHub mirror fallback for the static-ffmpeg download - #95

Merged
MyNamesEMurray merged 1 commit into
mainfrom
claude/issues-91-93-obs-updates-m5z1vp
Aug 5, 2026
Merged

CI: retry + GitHub mirror fallback for the static-ffmpeg download#95
MyNamesEMurray merged 1 commit into
mainfrom
claude/issues-91-93-obs-updates-m5z1vp

Conversation

@MyNamesEMurray

Copy link
Copy Markdown
Owner

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 peer downloading ffmpeg-7.1.tar.xz from 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.sh in the static-ffmpeg action, used by all three platform builds:

  • downloads with curl -f --retry 5 --retry-delay 2 --retry-all-errors (a plain --retry does not retry on connection resets — exactly the failure seen);
  • on failure, falls back to the GitHub tag archive 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 under obs-plugin/, ios-app/, or installer/ changed).

How it was tested

Verified in the Linux container: actionlint passes, the action YAML parses, both shell scripts pass bash -n, and fetch-ffmpeg.sh's primary path was run for real (downloads and unpacks ffmpeg-7.1 from 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 its FFmpeg-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

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
@MyNamesEMurray
MyNamesEMurray merged commit 37dcf0d into main Aug 5, 2026
6 checks passed
@MyNamesEMurray
MyNamesEMurray deleted the claude/issues-91-93-obs-updates-m5z1vp branch August 5, 2026 06:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants