Skip to content

ci(deploy-examples): include avatar deployment#1599

Open
rosetta-livekit-bot[bot] wants to merge 1 commit into
mainfrom
borax-bugged-dustless
Open

ci(deploy-examples): include avatar deployment#1599
rosetta-livekit-bot[bot] wants to merge 1 commit into
mainfrom
borax-bugged-dustless

Conversation

@rosetta-livekit-bot
Copy link
Copy Markdown
Contributor

@rosetta-livekit-bot rosetta-livekit-bot Bot commented May 25, 2026

Summary

The avatar example shipped in #5834 was intentionally left out of the CI deploy matrix while its secret-provisioning story was pinned down — that's why the workflow runs for the avatar PR didn't actually push a new build of the agent.

This adds `avatar` to the matrix and plumbs `LEMONSLICE_API_KEY` through the same `.env.deploy` secrets-file mechanism healthcare uses for `OPENAI_API_KEY`.

Prereq

`LEMONSLICE_API_KEY` needs to be set as a GitHub Actions secret on the repo (settings → Secrets and variables → Actions) before the next deploy. Today it's only set per-agent via `lk agent update-secrets` for local out-of-band deploys.

Test plan

  • Add the `LEMONSLICE_API_KEY` repo secret.
  • Trigger the workflow (workflow_dispatch with ref=`main` after this merges).
  • Confirm the `Deploy avatar` matrix job succeeds and `CA_dzjZwsBsRKzZ` picks up the new build.

@changeset-bot
Copy link
Copy Markdown

changeset-bot Bot commented May 25, 2026

⚠️ No Changeset found

Latest commit: b95cb4c

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR


- name: Prepare deploy directory
env:
AGENT_ID: ${{ secrets[matrix.agent_id_secret] }}
Copy link
Copy Markdown
Contributor

@devin-ai-integration devin-ai-integration Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 1 potential issue.

View 4 additional findings in Devin Review.

Open in Devin Review

Comment on lines +100 to +107
case "${{ matrix.example }}" in
avatar)
keys="LEMONSLICE_API_KEY"
;;
*)
keys=""
;;
esac
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 OPENAI_API_KEY pulled into env but never written to secrets file for any example

The Build secrets file step maps OPENAI_API_KEY from GitHub secrets into the shell environment (line 93), but the case statement (lines 100-107) never adds it to .env.deploy for any example — the wildcard *) branch sets keys="". The frontdesk and drive-thru examples directly instantiate new openai.LLM(...) (examples/src/frontdesk/frontdesk_agent.ts:225 and examples/src/drive-thru/drivethru_agent.ts:389), which reads OPENAI_API_KEY from the environment at runtime. Unless this key is separately configured at the LiveKit Cloud project level, those deployed agents will fail when attempting OpenAI API calls. At minimum, OPENAI_API_KEY in env: is dead code if intentionally managed elsewhere, or a missing case entry if it was intended to be passed through the secrets file.

Prompt for agents
In the 'Build secrets file' step of deploy-examples.yml, the OPENAI_API_KEY is pulled from GitHub secrets into the env block (line 93) but never written to .env.deploy. The case statement at lines 100-107 only adds LEMONSLICE_API_KEY for the avatar example and sets keys to empty for all others.

The frontdesk example (examples/src/frontdesk/frontdesk_agent.ts) and drive-thru example (examples/src/drive-thru/drivethru_agent.ts) both directly instantiate openai.LLM, deepgram.STT, and elevenlabs.TTS plugins, which require OPENAI_API_KEY, DEEPGRAM_API_KEY, and ELEVENLABS_API_KEY respectively in the runtime environment.

Either:
1. Add appropriate case entries for frontdesk and drive-thru to include OPENAI_API_KEY (and potentially DEEPGRAM_API_KEY, ELEVENLABS_API_KEY) in keys, or
2. If these are managed at the LiveKit Cloud project level, remove the unused OPENAI_API_KEY from the env block to avoid confusion, or
3. Refactor frontdesk and drive-thru examples to use inference gateway strings (like survey_agent.ts does) so they don't need local API keys.
Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant