chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,199 @@
|
||||
name: tests
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
pull_request:
|
||||
branches:
|
||||
- main
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
workflow_dispatch:
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
actions: write
|
||||
|
||||
jobs:
|
||||
blockguard-tests:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [ubuntu-latest, macos-latest, windows-latest]
|
||||
runs-on: ${{ matrix.os }}
|
||||
steps:
|
||||
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7
|
||||
|
||||
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6
|
||||
with:
|
||||
python-version: "3.12"
|
||||
|
||||
- name: Build and install blockguard
|
||||
run: pip install livekit-plugins/livekit-blockguard/
|
||||
|
||||
- name: Install pytest
|
||||
run: pip install pytest
|
||||
|
||||
- name: Run blockguard tests
|
||||
working-directory: livekit-plugins/livekit-blockguard
|
||||
run: python -m pytest test_blockguard.py -v
|
||||
|
||||
unit-tests:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7
|
||||
- name: Install uv
|
||||
uses: astral-sh/setup-uv@cec208311dfd045dd5311c1add060b2062131d57 # v8.0.0
|
||||
with:
|
||||
enable-cache: true
|
||||
cache-dependency-glob: "uv.lock"
|
||||
|
||||
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6
|
||||
with:
|
||||
python-version: "3.12"
|
||||
|
||||
- name: Install the project
|
||||
run: uv sync --all-extras --dev
|
||||
|
||||
- name: Download NLTK data
|
||||
run: uv run python -c "import nltk; nltk.download('punkt_tab')"
|
||||
|
||||
- name: Run tests
|
||||
env:
|
||||
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
|
||||
run: make unit-tests
|
||||
|
||||
evaluation:
|
||||
# don't run tests for PRs on forks
|
||||
if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.fork == false
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7
|
||||
- name: Install uv
|
||||
uses: astral-sh/setup-uv@cec208311dfd045dd5311c1add060b2062131d57 # v8.0.0
|
||||
with:
|
||||
enable-cache: true
|
||||
cache-dependency-glob: "uv.lock"
|
||||
|
||||
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6
|
||||
with:
|
||||
python-version: "3.12"
|
||||
|
||||
- name: Install the project
|
||||
run: uv sync --all-extras --dev
|
||||
|
||||
- name: Run evals
|
||||
env:
|
||||
LIVEKIT_API_KEY: ${{ secrets.LIVEKIT_API_KEY }}
|
||||
LIVEKIT_API_SECRET: ${{ secrets.LIVEKIT_API_SECRET }}
|
||||
|
||||
run: uv run pytest --evals
|
||||
|
||||
tests:
|
||||
# don't run tests for PRs on forks
|
||||
if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.fork == false
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
plugin:
|
||||
[
|
||||
cartesia,
|
||||
deepgram,
|
||||
elevenlabs,
|
||||
groq,
|
||||
openai,
|
||||
inworld,
|
||||
]
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
name: livekit-plugins-${{ matrix.plugin }}
|
||||
steps:
|
||||
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7
|
||||
|
||||
- name: Setup Google credentials
|
||||
if: matrix.plugin == 'google'
|
||||
shell: bash
|
||||
run: |
|
||||
printf '%s' '${{ secrets.GOOGLE_CREDENTIALS_JSON }}' > tests/google.json
|
||||
|
||||
- name: Run tests
|
||||
shell: bash
|
||||
env:
|
||||
PLUGIN: ${{ matrix.plugin }}
|
||||
LIVEKIT_URL: ${{ secrets.LIVEKIT_URL }}
|
||||
LIVEKIT_API_KEY: ${{ secrets.LIVEKIT_API_KEY }}
|
||||
LIVEKIT_API_SECRET: ${{ secrets.LIVEKIT_API_SECRET }}
|
||||
DEEPGRAM_API_KEY: ${{ secrets.DEEPGRAM_API_KEY }}
|
||||
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
|
||||
MISTRAL_API_KEY: ${{ secrets.MISTRAL_API_KEY }}
|
||||
ELEVEN_API_KEY: ${{ secrets.ELEVEN_API_KEY }}
|
||||
CARTESIA_API_KEY: ${{ secrets.CARTESIA_API_KEY }}
|
||||
AZURE_SPEECH_KEY: ${{ secrets.AZURE_SPEECH_KEY }}
|
||||
AZURE_SPEECH_REGION: ${{ secrets.AZURE_SPEECH_REGION }} # nit: doesn't have to be secret
|
||||
GOOGLE_CREDENTIALS_JSON: ${{ secrets.GOOGLE_CREDENTIALS_JSON }}
|
||||
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
|
||||
GROQ_API_KEY: ${{ secrets.GROQ_API_KEY }}
|
||||
ASSEMBLYAI_API_KEY: ${{ secrets.ASSEMBLYAI_API_KEY }}
|
||||
FAL_KEY: ${{ secrets.FAL_KEY }}
|
||||
PLAYHT_API_KEY: ${{ secrets.PLAYHT_API_KEY }}
|
||||
GOOGLE_API_KEY: ${{ secrets.GOOGLE_API_KEY }}
|
||||
PLAYHT_USER_ID: ${{ secrets.PLAYHT_USER_ID }}
|
||||
RIME_API_KEY: ${{ secrets.RIME_API_KEY }}
|
||||
SPEECHMATICS_API_KEY: ${{ secrets.SPEECHMATICS_API_KEY }}
|
||||
GOOGLE_APPLICATION_CREDENTIALS: tests/google.json
|
||||
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||
NEUPHONIC_API_KEY: ${{ secrets.NEUPHONIC_API_KEY }}
|
||||
RESEMBLE_API_KEY: ${{ secrets.RESEMBLE_API_KEY }}
|
||||
SPEECHIFY_API_KEY: ${{ secrets.SPEECHIFY_API_KEY }}
|
||||
HUME_API_KEY: ${{ secrets.HUME_API_KEY }}
|
||||
SPITCH_API_KEY: ${{ secrets.SPITCH_API_KEY }}
|
||||
LMNT_API_KEY: ${{ secrets.LMNT_API_KEY }}
|
||||
INWORLD_API_KEY: ${{ secrets.INWORLD_API_KEY }}
|
||||
SONIOX_API_KEY: ${{ secrets.SONIOX_API_KEY }}
|
||||
working-directory: tests
|
||||
run: make test
|
||||
|
||||
- name: Upload LiveKit dump
|
||||
if: always()
|
||||
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
|
||||
with:
|
||||
name: lk-dump-${{ matrix.plugin }}
|
||||
path: lk_dump/**
|
||||
if-no-files-found: ignore
|
||||
retention-days: 1
|
||||
|
||||
aggregate-dumps:
|
||||
if: always()
|
||||
needs: tests
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: download all dump shards
|
||||
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8
|
||||
with:
|
||||
pattern: lk-dump-*
|
||||
path: all_lk_dump
|
||||
merge-multiple: true
|
||||
|
||||
- name: create tarball
|
||||
id: tar
|
||||
run: |
|
||||
if [ -d "all_lk_dump" ] && [ "$(ls -A all_lk_dump)" ]; then
|
||||
tar -czf lk-dump-all.tar.gz -C all_lk_dump .
|
||||
echo "created=true" >> "$GITHUB_OUTPUT"
|
||||
else
|
||||
echo "No dump shards found, skipping tarball creation."
|
||||
echo "created=false" >> "$GITHUB_OUTPUT"
|
||||
fi
|
||||
|
||||
- name: upload merged dump
|
||||
if: steps.tar.outputs.created == 'true'
|
||||
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
|
||||
with:
|
||||
name: lk-dump-all
|
||||
path: lk-dump-all.tar.gz
|
||||
retention-days: 5
|
||||
Reference in New Issue
Block a user