diff --git a/.github/workflows/release-audio-tests.yml b/.github/workflows/release-audio-tests.yml index eb318e49b..49307c603 100644 --- a/.github/workflows/release-audio-tests.yml +++ b/.github/workflows/release-audio-tests.yml @@ -22,4 +22,8 @@ jobs: - uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6 with: python-version: '3.12' + - name: Install tools for the offline MP3 decode test + run: | + sudo apt-get update + sudo apt-get install -y --no-install-recommends ffmpeg - run: python3 -m unittest discover -s release/audio -p 'test_*.py' -v diff --git a/.github/workflows/release-audio.yml b/.github/workflows/release-audio.yml index 72e2e8d0c..cc078c734 100644 --- a/.github/workflows/release-audio.yml +++ b/.github/workflows/release-audio.yml @@ -58,6 +58,11 @@ jobs: - uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6 with: python-version: '3.12' + - name: Install MP3 inspection tools before generation + if: env.AUDIO_MODE == 'audio' && env.AUDIO_ENABLED == 'true' + run: | + sudo apt-get update + sudo apt-get install -y --no-install-recommends ffmpeg - name: Resolve sources and check limits and duplicate attempts id: prepare env: diff --git a/release/audio/README.md b/release/audio/README.md index 1790a9b49..ea15c507e 100644 --- a/release/audio/README.md +++ b/release/audio/README.md @@ -164,8 +164,9 @@ The suite blocks unmocked network access. Fixtures preserve the public bodies of v0.64.0/.1/.2 and test consequential omissions, unsafe tags/output, disabled generation, exact event identity, changing notes, duplicates/expiry/force, budget caps, error responses, and no retries. The separate PR test workflow -never receives `OPENAI_API_KEY`. Generation uses only Python's standard library; -the Ubuntu runner must have `ffprobe` and `ffmpeg` before speech is requested. +never receives `OPENAI_API_KEY`. Generation uses only Python's standard library. +Both workflows install `ffprobe` and `ffmpeg` in a credential-free step; audio +generation installs them before source preparation or any OpenAI request. ## References