From be9a501ab4c65d79ad8936be17cbecfba5419cc8 Mon Sep 17 00:00:00 2001 From: Krzysztof kuhy Rudnicki Date: Mon, 31 Aug 2026 15:40:44 +0200 Subject: [PATCH] fix: install every tool the e2e fixtures need, not just the first one The previous commit added ffmpeg and exiftool and CI got exactly one step further before failing on `heif-enc: No such file or directory`. Fixing a missing dependency one CI run at a time is a guess repeated; the list comes from the source instead -- every argv[0] handed to run_tool in tool/e2e_fixtures.py is ffmpeg, exiftool and heif-enc, and heif-enc ships in libheif-examples on Ubuntu. Each binary is resolved after the install rather than the apt exit code being taken as the claim, so a package that renames its binary fails here with a message naming it instead of failing later inside a fixture builder. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01416TegJ3sa8xL5qGGgrygP --- .github/workflows/ci.yml | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2e8520f..42bb163 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -21,12 +21,22 @@ jobs: # and MP4 fixtures with ffmpeg, and signal_bot/media_strip.py strips # metadata with exiftool. Verified rather than trusted, because an # apt exit code is not the same claim as "the binary resolves". - - name: Install ffmpeg and exiftool + # Every binary tool/e2e_fixtures.py shells out to, which is the whole + # list rather than the first one that failed: ffmpeg builds the JPEG + # and MP4 fixtures, heif-enc the HEIC one, and exiftool is what + # signal_bot/media_strip.py strips metadata with. scripts/e2e.sh has + # needed all three since it was written and this file installed none of + # them, which is why CI has been red on every commit. + # + # Verified by resolving each binary, not by trusting apt's exit code -- + # the same distinction install_service.sh makes for the host. + - name: Install the tools the fixtures are built with run: | sudo apt-get update - sudo apt-get install -y ffmpeg libimage-exiftool-perl - ffmpeg -version | head -1 - exiftool -ver + sudo apt-get install -y ffmpeg libimage-exiftool-perl libheif-examples + for tool in ffmpeg exiftool heif-enc; do + command -v "$tool" || { echo "::error::$tool did not resolve"; exit 1; } + done - name: Install uv uses: astral-sh/setup-uv@v5