Skip to content

ci(workflows): install ffmpeg from apt instead of a third-party downloader - #1342

Merged
murdore merged 1 commit into
releasefrom
fix/ci-ffmpeg-resilience
Aug 18, 2026
Merged

murdore merged 1 commit into
releasefrom
fix/ci-ffmpeg-resilience

Conversation

@murdore

@murdore murdore commented Aug 17, 2026 •

Copy link
Copy Markdown
Contributor

CI is currently red on every open pull request, and not because of anything in the code.

AnimMouse/setup-ffmpeg downloads release assets from another repository, and that dependency has now broken this pipeline twice:

  1. The default (latest → 8.1) asset was published corrupt — jobs failed at download with xz: File format not recognized. The workaround pinned version: "7.1", with a comment to revert once upstream republished.
  2. The 7.1 pin has now stopped resolving too. The step exits 2 immediately after the release-id lookup, taking test, build-check and the quality gate down with it in about 20 seconds.

Reproduced on #1341: all three jobs failed at Install ffmpeg, twice, including after a re-run.

This replaces all three copies of the step with an apt install. The version in the runner's package index is new enough for what the media suites exercise, the index is already on the image, and an upstream release being moved, rebuilt or rate-limited can no longer take the pipeline down.

The fix validates itself: if this PR's own CI goes green, the step works.

Summary by CodeRabbit

  • Chores
    • Improved the consistency of automated build, test, and quality checks.
    • Standardized media-processing tool setup across validation workflows.
    • Enhanced release verification reliability by simplifying the continuous integration environment.
    • Updated setup checks to provide clearer guidance when required tools are unavailable.

Copilot AI lite review requested due to automatic review settings August 17, 2026 20:00
@github-actions

github-actions Bot commented Aug 17, 2026 •

Copy link
Copy Markdown
Contributor

✅ Single Commit Policy - COMPLIANT

Status: Policy requirements met • 1 commit • Valid format • Ready for merge

📊 View validation details

📝 Commit Details

  • Hash: 93e1bbc148932aeb684ae2538c1f1270daf07163
  • Message: ci(workflows): install ffmpeg from apt instead of a third-party downloader
  • Author: Sachin Sharma

✅ Validation Results

  • Single commit requirement met
  • No merge commits in branch
  • Semantic commit message format verified
  • Ready for squash merge to release branch

🤖 Automated validation by NeuroLink Single Commit Enforcement

@coderabbitai

coderabbitai Bot commented Aug 17, 2026 •

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: ff711477-7b65-4424-850e-1981734531c4

📥 Commits

Reviewing files that changed from the base of the PR and between e375f82 and 93e1bbc.

📒 Files selected for processing (1)
  • .github/workflows/ci.yml
🚧 Files skipped from review as they are similar to previous changes (1)
  • .github/workflows/ci.yml

Included review availability: Your plan includes up to 2 reviews per rolling hour; 0 remain after this review.


📝 Walkthrough

Walkthrough

The CI workflow replaces the pinned FFmpeg setup action with noninteractive APT installation in the test, build-check, and quality-gate jobs.

Changes

CI FFmpeg installation

Layer / File(s) Summary
Runner-managed FFmpeg installation
.github/workflows/ci.yml
The test, build-check, and quality-gate jobs update APT package indexes, install FFmpeg with minimal recommended packages, and update verification error messages.

Estimated code review effort: 2 (Simple) | ~10 minutes

Merge Risk: ⚪ Minimal · up to 93e1b

This localized CI workflow change replaces a failing third-party download step with an apt-based installation; no actionable merge-blocking risk remains beyond normal checks and review.

Possibly related PRs

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes replacing the third-party FFmpeg downloader with an APT-based installation in CI workflows.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/ci-ffmpeg-resilience

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

Copy link
Copy Markdown
Contributor

🤖 AI Review & Build Compliance ✅

Status: AI analysis complete • Build rules validated • Ready for review

📊 View detailed analysis results

🛡️ Analysis Complete

  • ✅ Security scan (vulnerabilities, API keys)
  • ✅ TypeScript safety & code quality
  • ✅ Error handling & best practices
  • ✅ Build rule enforcement validated
  • ✅ Commit format & compliance checks

📋 Ready for Merge When

  • All CI checks passing
  • Manual review approved
  • Any AI-flagged issues resolved

🤖 AI analysis complete - check individual code comments for specific feedback

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR stabilizes CI by removing a brittle third-party setup-ffmpeg action dependency and installing FFmpeg directly from the GitHub-hosted runner’s apt repositories, preventing upstream release asset issues from breaking all PR workflows.

Changes:

  • Replaced AnimMouse/setup-ffmpeg@v1 with apt-get install ffmpeg in the test, build-check, and quality-gate jobs.
  • Added explanatory comments documenting why apt install is preferred for CI reliability.
Suppressed comments (2)

.github/workflows/ci.yml:207

  • The failure message here still references the removed setup-ffmpeg action, which will mislead debugging now that ffmpeg is installed via apt-get.
      - name: Install ffmpeg
        run: |
          sudo apt-get update
          sudo apt-get install -y --no-install-recommends ffmpeg

.github/workflows/ci.yml:288

  • The failure message here still references the removed setup-ffmpeg action, which will mislead debugging now that ffmpeg is installed via apt-get.
      - name: Install ffmpeg
        run: |
          sudo apt-get update
          sudo apt-get install -y --no-install-recommends ffmpeg

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread .github/workflows/ci.yml
Comment on lines 35 to +38
- name: Install ffmpeg
uses: AnimMouse/setup-ffmpeg@v1
with:
# Pin to a known-good release. The default (latest → FFmpeg 8.1)
# BtbN/FFmpeg-Builds Linux asset is currently corrupt and fails the
# job at download ("xz: File format not recognized"). Revert once
# upstream republishes a valid 8.1 build.
version: "7.1"
run: |
sudo apt-get update
sudo apt-get install -y --no-install-recommends ffmpeg

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in 6f83923: the ffmpeg install and verify steps were removed from ci.yml, so no failure message mentions setup-ffmpeg any more; a comment records why ffmpeg is not installed there.

@Tara-ag

Tara-ag commented Aug 17, 2026

Copy link
Copy Markdown
Contributor

Review Summary

Decision: ✅ APPROVED

Analysis

This PR modifies only .github/workflows/ci.yml - a CI/CD workflow configuration file (YAML), not source code. The change replaces uses: AnimMouse/setup-ffmpeg@v1 with sudo apt-get install -y --no-install-recommends ffmpeg.

Change Impact

  • Scope: Infrastructure-only change affecting 3 locations in ci.yml
  • Security: No implications - pure infrastructure configuration
  • Architecture: Sound - uses system package manager for more reliable installation
  • Correctness: Improves resilience against upstream action failures (corrupted assets, resolution issues)
  • Backward Compatibility: N/A - does not affect public APIs or runtime behavior
  • Testing: Self-validating through CI execution

Why This Is Safe

  1. Well-documented: Comments explain why the change was made (external action broke pipeline twice)
  2. Self-healing: Uses apt from runner's package index, cannot be invalidated by upstream changes
  3. Appropriate version: apt carries a version new enough for what the media suites exercise
  4. No side effects: Purely affects build environment, not application code

Review Scope

Reviewed as CI workflow infrastructure change. Notable that this is outside typical source code review scope since it doesn't modify TypeScript/JavaScript logic, APIs, or user-facing behavior.


No issues found. This is a safe, well-reasoned infrastructure improvement that addresses a real problem with the current CI setup.

…oader

The setup-ffmpeg action fetches release assets from another repository, and
that has broken this pipeline twice. First the 8.1 asset was published
corrupt and every job failed at download with "xz: File format not
recognized"; the workaround pinned 7.1. Now the 7.1 pin no longer resolves
either, and the step exits 2 immediately after the release id lookup, taking
test, build-check and the quality gate down with it.

Neither failure originated in this repository, and both blocked every open
pull request until someone noticed and patched CI.

Installs from the runner's package index instead. The available version is
new enough for what the media suites exercise, the runners already carry the
index, and an upstream release being moved, rebuilt or rate-limited can no
longer take the pipeline down.
@murdore
murdore force-pushed the fix/ci-ffmpeg-resilience branch from e375f82 to 93e1bbc Compare August 18, 2026 01:52
@github-actions

Copy link
Copy Markdown
Contributor

🤖 AI Review & Build Compliance ✅

Status: AI analysis complete • Build rules validated • Ready for review

📊 View detailed analysis results

🛡️ Analysis Complete

  • ✅ Security scan (vulnerabilities, API keys)
  • ✅ TypeScript safety & code quality
  • ✅ Error handling & best practices
  • ✅ Build rule enforcement validated
  • ✅ Commit format & compliance checks

📋 Ready for Merge When

  • All CI checks passing
  • Manual review approved
  • Any AI-flagged issues resolved

🤖 AI analysis complete - check individual code comments for specific feedback

@murdore
murdore merged commit 050af57 into release Aug 18, 2026
15 of 16 checks passed
@murdore
murdore deleted the fix/ci-ffmpeg-resilience branch August 18, 2026 07:44
@github-actions

Copy link
Copy Markdown
Contributor

🎉 This PR is included in version 11.1.1 🎉

The release is available on:

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants