ci(audio-api): hermetic test deps + Gitea Actions workflow (#35)
The 67-test suite existed and was green, but only under a --system-site-packages venv — which made it quietly host-dependent. A system python bump to 3.14 dropped fastapi/httpx from that venv and the whole suite went to "no tests collected" (red, but for an env reason, not a code reason). CI that inherits the host's site-packages would hide exactly this class of breakage. Fix = make the suite hermetic and prove it: - requirements-test.txt pins the real test surface — fastapi/uvicorn/ multipart (via requirements.txt) + numpy + soundfile + librosa + pyloudnorm + httpx + pytest. NOT --system-site-packages. - The heavy ML stack (torch, laion_clap, demucs) is deliberately absent: those engines aren't exercised by the tests, so CI installs in seconds- to-a-minute instead of pulling multi-GB wheels. - Rehearsed in a clean throwaway venv: first run surfaced two masked deps the system venv had been silently supplying — librosa (lazy-imported by signal/feats/ears/grade) and pyloudnorm (the LUFS loudness engine). Pinned both; clean-venv run is now 67 passed. - .gitea/workflows/api-ci.yml runs it on git.plnech.fr for any push/PR touching armada/api/**. Dormant until an act_runner is registered for the repo; the workflow is correct and locally rehearsed. Closes the test-suite + CI task (#35): the suite is reproducible and the pipeline is declared.
Showing
.gitea/workflows/api-ci.yml
0 → 100644
armada/api/requirements-test.txt
0 → 100644
Please
register
or
sign in
to comment