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
@santhiprakash

Copy link
Copy Markdown
Author

CI status update — FFmpeg fix works; testAutocomplete failure exposed

Re-verified against the latest push (2e6fadcbd):

  • FFmpeg step: Setup FFmpeg succeeds. Cache hit FFmpeg-8.1-373784774-Linux-X64 from the parameterized input, ffmpeg/ffprobe available. The original 7.1/404/tar issue is resolved.
  • jetbrains-tests: still failing, but the cause has moved. :testIntegration > Autocomplete.testAutocomplete() now runs to completion (1m04s) and asserts text.contains("TEST_LLM_RESPONSE_0") — fails with expected: <true> but was: <false> at Autocomplete.kt:42. The test never invoked FFmpeg.

This is the same failure mode on every PR that gets past the FFmpeg step. Quick check from recent runs:

PR FFmpeg step :testIntegration
#13169 (this) ✓ 8.1 cache hit Autocomplete.kt:42 assertFalse
#13170 ✗ 7.1 404 (untouched action.yml) skipped — never reached
#13171 (docs-typos) ✗ 7.1 404 (untouched action.yml) skipped — never reached
ScrewTSW #13165 (closed Aug 19) n/a (closed before CI ran) n/a

So once the FFmpeg issue is out of the way, this test has been failing on every PR for at least 2 days. The plugin, the test LLM provider (TestLLM in core/llm/llms/Test.ts, returns TEST_LLM_RESPONSE_<n> for prompts containing TEST_USER_MESSAGE_<n>), and the test config (test-continue/config.json with provider: "test") all look wired correctly. Happy to dig further, but I didn't want to keep the PR blocked on a finding the FFmpeg fix unmasks without surfacing it.

CI failure artifact for the current push: https://github.com/continuedev/continue/actions/runs/32468648181jb-failure-report (test report HTML + recording).

cc @ScrewTSW since #13165 was closed on the same CI symptom.

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