chore(deps): pin sdk dependencies to patch version (#77)

* chore(deps): pin sdk dependencies to patch

* chore(ci): use python3.14 in CI

* feat(ci): auto-tag when sdk version change merged to main

* chore(ci): use actions/checkout@v6
This commit is contained in:
Tobias Fried
2026-05-22 15:35:16 -06:00
committed by GitHub
parent 45fcedbb46
commit e129da7cd1
5 changed files with 98 additions and 21 deletions
+8 -8
View File
@@ -9,25 +9,25 @@ on:
jobs: jobs:
ruff-check: ruff-check:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v6
- name: Install uv - name: Install uv
uses: astral-sh/setup-uv@v1 uses: astral-sh/setup-uv@v1
with: with:
version: "latest" version: "latest"
- name: Set up Python - name: Set up Python
uses: actions/setup-python@v4 uses: actions/setup-python@v4
with: with:
python-version: "3.12" python-version: "3.12"
- name: Install dependencies - name: Install dependencies
run: UV_GIT_LFS=1 uv sync --dev run: UV_GIT_LFS=1 uv sync --dev
- name: Run ruff linter - name: Run ruff linter
run: uv run ruff check --output-format=github . run: uv run ruff check --output-format=github .
- name: Run ruff formatter - name: Run ruff formatter
run: uv run ruff format --check --diff . run: uv run ruff format --check --diff .
+77
View File
@@ -0,0 +1,77 @@
name: Tag livekit-agents version
on:
push:
branches: [main]
paths:
- 'pyproject.toml'
permissions:
contents: write
jobs:
tag-version:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 2
fetch-tags: true
- name: Detect livekit-agents version change
id: version
run: |
set -euo pipefail
extract_version() {
local ref="$1"
git show "$ref:pyproject.toml" 2>/dev/null \
| grep -oE '"livekit-agents(\[[^]]*\])?==[^"]+"' \
| head -n1 \
| sed -E 's/.*==([^"]+)"/\1/' \
|| true
}
current=$(extract_version HEAD)
previous=$(extract_version HEAD^ || true)
echo "current=$current"
echo "previous=$previous"
if [ -z "$current" ]; then
echo "No livekit-agents==X.Y.Z pin found in pyproject.toml; skipping."
echo "should_tag=false" >> "$GITHUB_OUTPUT"
exit 0
fi
if [ "$current" = "$previous" ]; then
echo "livekit-agents version unchanged ($current); skipping."
echo "should_tag=false" >> "$GITHUB_OUTPUT"
exit 0
fi
echo "livekit-agents bumped: ${previous:-<none>} -> $current"
echo "should_tag=true" >> "$GITHUB_OUTPUT"
echo "version=$current" >> "$GITHUB_OUTPUT"
- name: Create and push tag
if: steps.version.outputs.should_tag == 'true'
run: |
set -euo pipefail
tag="v${{ steps.version.outputs.version }}"
if git rev-parse --verify "refs/tags/$tag" >/dev/null 2>&1; then
existing=$(git rev-list -n1 "$tag")
if [ "$existing" = "$GITHUB_SHA" ]; then
echo "Tag $tag already points at $GITHUB_SHA; nothing to do."
exit 0
fi
echo "Error: tag $tag already exists on a different commit ($existing)."
exit 1
fi
git config user.name "github-actions[bot]"
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
git tag -a "$tag" -m "livekit-agents $tag"
git push origin "$tag"
+5 -5
View File
@@ -1,6 +1,6 @@
# As this is a starter template project, we don't want to check in the uv.lock and livekit.toml files in its template form # As this is a starter template project, we don't want to check in the uv.lock and livekit.toml files in its template form
# However, once you have cloned this repo for your own use, LiveKit recommends you check them in and delete this github workflow entirely # However, once you have cloned this repo for your own use, LiveKit recommends you check them in and delete this github workflow entirely
name: Template Check name: Template Check
on: on:
@@ -12,10 +12,10 @@ on:
jobs: jobs:
check-template-files: check-template-files:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v6
- name: Check template files not tracked in git - name: Check template files not tracked in git
run: | run: |
if git ls-files | grep -q "^uv\.lock$"; then if git ls-files | grep -q "^uv\.lock$"; then
@@ -28,4 +28,4 @@ jobs:
echo "Disable this test and commit the file once you have cloned this repo for your own use" echo "Disable this test and commit the file once you have cloned this repo for your own use"
exit 1 exit 1
fi fi
echo "✓ uv.lock and livekit.toml are correctly not tracked in git" echo "✓ uv.lock and livekit.toml are correctly not tracked in git"
+7 -7
View File
@@ -9,23 +9,23 @@ on:
jobs: jobs:
test: test:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v6
- name: Install uv - name: Install uv
uses: astral-sh/setup-uv@v1 uses: astral-sh/setup-uv@v1
with: with:
version: "latest" version: "latest"
- name: Set up Python - name: Set up Python
uses: actions/setup-python@v4 uses: actions/setup-python@v4
with: with:
python-version: "3.12" python-version: "3.14"
- name: Install dependencies - name: Install dependencies
run: UV_GIT_LFS=1 uv sync --dev run: UV_GIT_LFS=1 uv sync --dev
- name: Run tests - name: Run tests
env: env:
LIVEKIT_URL: ${{ secrets.LIVEKIT_URL }} LIVEKIT_URL: ${{ secrets.LIVEKIT_URL }}
+1 -1
View File
@@ -9,7 +9,7 @@ description = "Simple voice AI assistant built with LiveKit Agents for Python"
requires-python = ">=3.10, <3.15" requires-python = ">=3.10, <3.15"
dependencies = [ dependencies = [
"livekit-agents[silero,turn-detector]~=1.5", "livekit-agents[silero,turn-detector]==1.5.12",
"livekit-plugins-ai-coustics~=0.2", "livekit-plugins-ai-coustics~=0.2",
"python-dotenv", "python-dotenv",
] ]