Skip to content

fix(ci): parameterize pinned FFmpeg version with explicit preflight check (BtbN dropped 7.1) - #13169

Open
santhiprakash wants to merge 2 commits into
continuedev:mainfrom
santhiprakash:fix/13164-jetbrains-ffmpeg-8.1
Open

fix(ci): parameterize pinned FFmpeg version with explicit preflight check (BtbN dropped 7.1)#13169
santhiprakash wants to merge 2 commits into
continuedev:mainfrom
santhiprakash:fix/13164-jetbrains-ffmpeg-8.1

Conversation

@santhiprakash

@santhiprakash santhiprakash commented Aug 21, 2026

Copy link
Copy Markdown

Closes #13164.

BtbN/FFmpeg-Builds keeps only the most recent release branches under its rolling latest tag. The 7.1 artifacts were dropped as newer branches shipped, so AnimMouse/setup-ffmpeg@v1's built URL silently 404s, wget -q suppresses the body, and tar -xJ reports a misleading xz: (stdin): File format not recognized two stages downstream. The whole jetbrains-tests job then short-circuits at the FFmpeg step before Gradle, prepackage, the binary build, or Run tests execute — every PR appears red on this check for a reason that has nothing to do with the diff.

This PR does two things on .github/actions/run-jetbrains-tests/action.yml:

  1. Parameterize the pin. Adds a ffmpeg-version input (default "8.1") and routes both the preflight check and AnimMouse/setup-ffmpeg@v1's version through it. When BtbN drops 8.1 the next time, the change is a single input value rather than a hard-coded version: swap.

  2. Preflight-check the artifact. Adds a Check FFmpeg artifact is available step that HEADs the asset URL with curl -sSIL --retry before the action runs and fails with an explicit ::error::FFmpeg $VERSION is no longer published by BtbN/FFmpeg-Builds. Bump ffmpeg-version. Missing: $url annotation when the asset is missing or unreachable. The next time BtbN rotates a branch out, the log says so directly instead of surfacing as a cryptic tar format error.

The 8.1 default was verified against BtbN's latest tag at PR time: the URL https://github.com/BtbN/FFmpeg-Builds/releases/download/latest/ffmpeg-n8.1-latest-linux64-gpl-8.1.tar.xz returns 200, downloads, extracts, and produces working ffmpeg/ffprobe binaries (also confirmed in the recent green run on #13163 which already carries this exact input+preflight pair as part of its larger diff).

Test plan

  • Pre-flighted the BtbN URL with curl HEAD: 200 OK.
  • Triggered fresh CI run via follow-up commit; verify preflight passes, FFmpeg downloads, all downstream steps execute.
  • Verify jetbrains-tests outcome on the fresh run.

Note on the autocomplete test failure

The first push of this PR (commit f0d8a029d) showed jetbrains-tests failing at extensions/intellij/src/testIntegration/.../Autocomplete.kt:42 (assertTrue(text.contains("TEST_LLM_RESPONSE_0"))) instead of at the FFmpeg step — i.e. fixing the pin unblocked the test runner and surfaced a separate, pre-existing failure in the autocomplete integration test that had been hidden by the 7.1 404 since 2026-08-19T22:00Z. That failure appears tied to other code changes also being carried by #13163 (which is the last PR observed with a green jetbrains-tests on this branch); fixing it is out of scope for the FFmpeg bump here. Happy to follow up in a separate PR if the maintainer wants me to dig into it; otherwise #13163 should land the relevant changes alongside this fix.

The JetBrains test job pins AnimMouse/setup-ffmpeg to version 7.1, but
BtbN/FFmpeg-Builds keeps only the most recent release branches under its
rolling 'latest' tag and the 7.1 assets are no longer published, so the
asset URL the action builds now 404s:

  https://github.com/BtbN/FFmpeg-Builds/releases/download/latest/ffmpeg-n7.1-latest-linux64-gpl-7.1.tar.xz

AnimMouse/setup-ffmpeg pipes the download into tar -xJ, so the 404 body
reaches tar and the failure surfaces one stage downstream as
'xz: (stdin): File format not recognized' rather than an explicit
HTTP error. Setup FFmpeg runs early in the composite action, so the job
dies before Gradle, prepackage, the binary build or any tests run,
which means every PR fails jetbrains-tests (and therefore
require-all-checks-to-pass) even when the change has no JetBrains
impact.

Bump the pin to 8.1, which BtbN currently publishes. Verified:
  ffmpeg-n7.1-latest-linux64-gpl-7.1.tar.xz -> 404
  ffmpeg-n8.1-latest-linux64-gpl-8.1.tar.xz -> 200

Closes continuedev#13164
@santhiprakash
santhiprakash requested a review from a team as a code owner August 21, 2026 06:42
@santhiprakash
santhiprakash requested review from sestinj and removed request for a team August 21, 2026 06:42
@santhiprakash

Copy link
Copy Markdown
Author

I have read the CLA Document and I hereby sign the CLA

@santhiprakash santhiprakash changed the title fix(ci): bump pinned JetBrains FFmpeg to 8.1 (BtbN dropped 7.1) fix(ci): parameterize pinned FFmpeg version with explicit preflight check (BtbN dropped 7.1) Aug 21, 2026
…heck

Builds on the 7.1→8.1 bump in the parent commit. Instead of hard-coding
'version: 8.1', expose ffmpeg-version as a composite-action input
(default 8.1) so the next rotation only needs a single line change.

The 7.1 failure mode was particularly nasty: the setup-ffmpeg action
pipes the artifact URL through 'wget -q' and straight into 'tar -xJ', so
a 404 produces 'xz: (stdin): File format not recognized' two stages
downstream. Add a preflight step that HEADs the asset URL with curl and
fails explicitly with the missing artifact path so the next time BtbN
rotates a branch out, the log says so directly.

Closes continuedev#13164
@santhiprakash
santhiprakash force-pushed the fix/13164-jetbrains-ffmpeg-8.1 branch from 7491323 to 2e6fadc Compare August 21, 2026 09:35
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.

[CI/CD] JetBrains tests fail: pinned FFmpeg 7.1 artifact no longer published by BtbN, surfacing as a cryptic tar error

1 participant