mirror of
https://github.com/QuentinFuxa/WhisperLiveKit.git
synced 2026-03-07 14:23:18 +00:00
deps(diart): improve diart dependency tree. rename gpu-cu129 dependency group to cu129
This commit is contained in:
134
.github/workflows/support-matrix.yml
vendored
134
.github/workflows/support-matrix.yml
vendored
@@ -1,134 +0,0 @@
|
||||
name: Support Matrix
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
timeout_sec:
|
||||
description: "Per-case timeout in seconds"
|
||||
required: true
|
||||
default: "300"
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
test-and-support-matrix:
|
||||
name: |
|
||||
${{ matrix.os }} | py${{ matrix.python-version }} | tests + support matrix
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [ubuntu-latest, macos-latest, windows-latest]
|
||||
python-version: ["3.11", "3.12", "3.13"]
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Setup uv
|
||||
uses: astral-sh/setup-uv@v6
|
||||
|
||||
- name: Install dependencies for tests
|
||||
run: uv sync --extra test --python ${{ matrix.python-version }}
|
||||
|
||||
# - name: Run unit tests
|
||||
# run: uv run pytest tests/ -v
|
||||
|
||||
- name: Run compatibility matrix
|
||||
shell: bash
|
||||
env:
|
||||
MATRIX_PY: ${{ matrix.python-version }}
|
||||
TIMEOUT_SEC: ${{ github.event.inputs.timeout_sec || '300' }}
|
||||
run: |
|
||||
set -euo pipefail
|
||||
|
||||
base_port=8010
|
||||
|
||||
run_case() {
|
||||
local name="$1"
|
||||
shift 1
|
||||
|
||||
echo "[matrix] scenario=${name}"
|
||||
|
||||
uv run wlk \
|
||||
--host 127.0.0.1 \
|
||||
--port "${base_port}" \
|
||||
--warmup-file "" \
|
||||
--model tiny \
|
||||
"$@" &
|
||||
local server_pid=$!
|
||||
|
||||
cleanup() {
|
||||
kill "${server_pid}" >/dev/null 2>&1 || true
|
||||
wait "${server_pid}" >/dev/null 2>&1 || true
|
||||
}
|
||||
trap cleanup RETURN
|
||||
|
||||
local ready=0
|
||||
local checks=$((TIMEOUT_SEC / 2))
|
||||
local i=0
|
||||
while [ "${i}" -lt "${checks}" ]; do
|
||||
if python -c "import urllib.request; urllib.request.urlopen('http://127.0.0.1:${base_port}/', timeout=2).read(1)" >/dev/null 2>&1; then
|
||||
ready=1
|
||||
break
|
||||
fi
|
||||
if ! kill -0 "${server_pid}" >/dev/null 2>&1; then
|
||||
break
|
||||
fi
|
||||
sleep 2
|
||||
i=$((i + 1))
|
||||
done
|
||||
|
||||
if [ "${ready}" -ne 1 ]; then
|
||||
echo "[matrix] ${name} failed (startup_not_ready)"
|
||||
return 1
|
||||
fi
|
||||
|
||||
echo "[matrix] ${name} passed"
|
||||
base_port=$((base_port + 1))
|
||||
}
|
||||
|
||||
# FW profile: cpu + diart + sortformer + translation
|
||||
export UV_PROJECT_ENVIRONMENT=".ci-envs/${{ matrix.os }}-py${{ matrix.python-version }}-fw"
|
||||
uv sync --python "${MATRIX_PY}" --no-dev \
|
||||
--extra cpu \
|
||||
--extra diarization-diart \
|
||||
--extra diarization-sortformer \
|
||||
--extra translation
|
||||
|
||||
run_case \
|
||||
"fw-diart-translation" \
|
||||
--backend faster-whisper \
|
||||
--diarization \
|
||||
--diarization-backend diart \
|
||||
--language en \
|
||||
--target-language es
|
||||
|
||||
run_case \
|
||||
"fw-sortformer-translation" \
|
||||
--backend faster-whisper \
|
||||
--diarization \
|
||||
--diarization-backend sortformer \
|
||||
--language en \
|
||||
--target-language es
|
||||
|
||||
unset UV_PROJECT_ENVIRONMENT
|
||||
|
||||
# Voxtral profile: cpu + diart + voxtral-hf + translation
|
||||
export UV_PROJECT_ENVIRONMENT=".ci-envs/${{ matrix.os }}-py${{ matrix.python-version }}-voxtral"
|
||||
uv sync --python "${MATRIX_PY}" --no-dev \
|
||||
--extra cpu \
|
||||
--extra diarization-diart \
|
||||
--extra voxtral-hf \
|
||||
--extra translation
|
||||
|
||||
run_case \
|
||||
"voxtral-diart-translation" \
|
||||
--backend voxtral \
|
||||
--diarization \
|
||||
--diarization-backend diart \
|
||||
--language en \
|
||||
--target-language es
|
||||
|
||||
unset UV_PROJECT_ENVIRONMENT
|
||||
Reference in New Issue
Block a user