Skip to content

Commit e8391f6

Browse files
committed
ci(test-extra): wire liquid-audio backend smoke test
The backend ships test.py + a `make test` target and is listed in backend-matrix.yml, so scripts/changed-backends.js already writes a `liquid-audio=true|false` output when files under backend/python/liquid-audio/ change. The workflow just wasn't reading it. - Expose the `liquid-audio` output on the detect-changes job - Add a tests-liquid-audio job that runs `make` + `make test` in backend/python/liquid-audio, gated on the per-backend detect flag The smoke covers Health() and LoadModel(mode:finetune); fine-tune mode short-circuits before any HuggingFace download (backend.py:192), so the job needs neither weights nor a GPU. The full-inference path remains gated on LIQUID_AUDIO_MODEL_ID, which CI doesn't set. The four new Go test files (core/gallery/importers/liquid-audio_test.go, core/http/endpoints/openai/realtime_gate_test.go, core/http/routes/ui_pipeline_models_test.go, pkg/functions/parse_lfm2_test.go) are already picked up by the existing test.yml workflow via `make test` → `ginkgo -r ./pkg/... ./core/...`; their packages all carry RunSpecs entries. Assisted-by: Claude:claude-opus-4-7 Signed-off-by: Richard Palethorpe <io@richiejp.com>
1 parent 27a1357 commit e8391f6

1 file changed

Lines changed: 27 additions & 0 deletions

File tree

.github/workflows/test-extra.yml

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ jobs:
2828
qwen-asr: ${{ steps.detect.outputs.qwen-asr }}
2929
nemo: ${{ steps.detect.outputs.nemo }}
3030
voxcpm: ${{ steps.detect.outputs.voxcpm }}
31+
liquid-audio: ${{ steps.detect.outputs.liquid-audio }}
3132
llama-cpp-quantization: ${{ steps.detect.outputs.llama-cpp-quantization }}
3233
llama-cpp: ${{ steps.detect.outputs.llama-cpp }}
3334
ik-llama-cpp: ${{ steps.detect.outputs.ik-llama-cpp }}
@@ -447,6 +448,32 @@ jobs:
447448
run: |
448449
make --jobs=5 --output-sync=target -C backend/python/voxcpm
449450
make --jobs=5 --output-sync=target -C backend/python/voxcpm test
451+
# liquid-audio: LFM2.5-Audio any-to-any backend. The CI smoke test
452+
# exercises Health() and LoadModel(mode:finetune) — fine-tune mode
453+
# short-circuits before pulling weights (backend.py:192), so no
454+
# HuggingFace download or GPU is needed. The full-inference path is
455+
# gated on LIQUID_AUDIO_MODEL_ID, which we don't set here.
456+
tests-liquid-audio:
457+
needs: detect-changes
458+
if: needs.detect-changes.outputs.liquid-audio == 'true' || needs.detect-changes.outputs.run-all == 'true'
459+
runs-on: ubuntu-latest
460+
steps:
461+
- name: Clone
462+
uses: actions/checkout@v6
463+
with:
464+
submodules: true
465+
- name: Dependencies
466+
run: |
467+
sudo apt-get update
468+
sudo apt-get install -y build-essential ffmpeg
469+
sudo apt-get install -y ca-certificates cmake curl patch python3-pip
470+
# Install UV
471+
curl -LsSf https://astral.sh/uv/install.sh | sh
472+
pip install --user --no-cache-dir grpcio-tools==1.64.1
473+
- name: Test liquid-audio
474+
run: |
475+
make --jobs=5 --output-sync=target -C backend/python/liquid-audio
476+
make --jobs=5 --output-sync=target -C backend/python/liquid-audio test
450477
tests-llama-cpp-quantization:
451478
needs: detect-changes
452479
if: needs.detect-changes.outputs.llama-cpp-quantization == 'true' || needs.detect-changes.outputs.run-all == 'true'

0 commit comments

Comments
 (0)