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:
@@ -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 .
|
||||||
|
|||||||
@@ -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"
|
||||||
@@ -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"
|
||||||
|
|||||||
@@ -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
@@ -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",
|
||||||
]
|
]
|
||||||
|
|||||||
Reference in New Issue
Block a user