Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions .github/workflows/run_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,18 @@ jobs:
test:
name: Test "${{ inputs.marker }}"
runs-on: ubuntu-latest
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
CARTESIA_API_KEY: ${{ secrets.CARTESIA_API_KEY }}
DEEPGRAM_API_KEY: ${{ secrets.DEEPGRAM_API_KEY }}
ELEVENLABS_API_KEY: ${{ secrets.ELEVENLABS_API_KEY }}
FAL_KEY: ${{ secrets.FAL_KEY }}
GOOGLE_API_KEY: ${{ secrets.GOOGLE_API_KEY }}
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
OPENAI_MODEL: ${{ secrets.OPENAI_MODEL }}
STREAM_API_KEY: ${{ secrets.STREAM_API_KEY }}
STREAM_API_SECRET: ${{ secrets.STREAM_API_SECRET }}
XAI_API_KEY: ${{ secrets.XAI_API_KEY }}
Comment on lines +31 to +42
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

Declare the required secrets for this reusable workflow.

Because workflow_call currently exposes no secrets (secrets: {}), every ${{ secrets.* }} reference here resolves to an empty string at runtime. The CI job will therefore boot without the keys you expect, and any step needing them will fail (actionlint is already flagging this). Define the secrets under on.workflow_call.secrets (or set secrets: inherit) so callers can pass them through.

 on:
   workflow_call:
-    inputs:
-      marker:
-        description: 'pytest -m expression (e.g., `not integration` or `integration`)'
-        required: true
-        type: string
-    secrets: {}
+    inputs:
+      marker:
+        description: 'pytest -m expression (e.g., `not integration` or `integration`)'
+        required: true
+        type: string
+    secrets:
+      ANTHROPIC_API_KEY:
+        required: true
+      CARTESIA_API_KEY:
+        required: true
+      DEEPGRAM_API_KEY:
+        required: true
+      ELEVENLABS_API_KEY:
+        required: true
+      FAL_KEY:
+        required: true
+      GOOGLE_API_KEY:
+        required: true
+      OPENAI_API_KEY:
+        required: true
+      OPENAI_MODEL:
+        required: true
+      STREAM_API_KEY:
+        required: true
+      STREAM_API_SECRET:
+        required: true
+      XAI_API_KEY:
+        required: true
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
CARTESIA_API_KEY: ${{ secrets.CARTESIA_API_KEY }}
DEEPGRAM_API_KEY: ${{ secrets.DEEPGRAM_API_KEY }}
ELEVENLABS_API_KEY: ${{ secrets.ELEVENLABS_API_KEY }}
FAL_KEY: ${{ secrets.FAL_KEY }}
GOOGLE_API_KEY: ${{ secrets.GOOGLE_API_KEY }}
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
OPENAI_MODEL: ${{ secrets.OPENAI_MODEL }}
STREAM_API_KEY: ${{ secrets.STREAM_API_KEY }}
STREAM_API_SECRET: ${{ secrets.STREAM_API_SECRET }}
XAI_API_KEY: ${{ secrets.XAI_API_KEY }}
on:
workflow_call:
inputs:
marker:
description: 'pytest -m expression (e.g., `not integration` or `integration`)'
required: true
type: string
secrets:
ANTHROPIC_API_KEY:
required: true
CARTESIA_API_KEY:
required: true
DEEPGRAM_API_KEY:
required: true
ELEVENLABS_API_KEY:
required: true
FAL_KEY:
required: true
GOOGLE_API_KEY:
required: true
OPENAI_API_KEY:
required: true
OPENAI_MODEL:
required: true
STREAM_API_KEY:
required: true
STREAM_API_SECRET:
required: true
XAI_API_KEY:
required: true
🧰 Tools
🪛 actionlint (1.7.7)

32-32: property "anthropic_api_key" is not defined in object type {actions_runner_debug: string; actions_step_debug: string; github_token: string}

(expression)


33-33: property "cartesia_api_key" is not defined in object type {actions_runner_debug: string; actions_step_debug: string; github_token: string}

(expression)


34-34: property "deepgram_api_key" is not defined in object type {actions_runner_debug: string; actions_step_debug: string; github_token: string}

(expression)


35-35: property "elevenlabs_api_key" is not defined in object type {actions_runner_debug: string; actions_step_debug: string; github_token: string}

(expression)


36-36: property "fal_key" is not defined in object type {actions_runner_debug: string; actions_step_debug: string; github_token: string}

(expression)


37-37: property "google_api_key" is not defined in object type {actions_runner_debug: string; actions_step_debug: string; github_token: string}

(expression)


38-38: property "openai_api_key" is not defined in object type {actions_runner_debug: string; actions_step_debug: string; github_token: string}

(expression)


39-39: property "openai_model" is not defined in object type {actions_runner_debug: string; actions_step_debug: string; github_token: string}

(expression)


40-40: property "stream_api_key" is not defined in object type {actions_runner_debug: string; actions_step_debug: string; github_token: string}

(expression)


41-41: property "stream_api_secret" is not defined in object type {actions_runner_debug: string; actions_step_debug: string; github_token: string}

(expression)


42-42: property "xai_api_key" is not defined in object type {actions_runner_debug: string; actions_step_debug: string; github_token: string}

(expression)

🤖 Prompt for AI Agents
.github/workflows/run_tests.yml around lines 31-42: the workflow references
multiple secrets via `${{ secrets.* }}` but `workflow_call` currently exposes no
secrets so those values are empty at runtime; update the reusable workflow to
declare each secret under `on.workflow_call.secrets` (or set `secrets: inherit`)
so callers can pass them through — add entries for ANTHROPIC_API_KEY,
CARTESIA_API_KEY, DEEPGRAM_API_KEY, ELEVENLABS_API_KEY, FAL_KEY, GOOGLE_API_KEY,
OPENAI_API_KEY, OPENAI_MODEL, STREAM_API_KEY, STREAM_API_SECRET, XAI_API_KEY,
and ensure callers supply the secrets when invoking the workflow.

timeout-minutes: 30
steps:
- name: Checkout
Expand Down
10 changes: 5 additions & 5 deletions plugins/gemini/tests/test_gemini_realtime.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,20 +43,20 @@ async def on_audio(event: RealtimeAudioOutputEvent):
assert len(events) > 0

@pytest.mark.integration
async def test_audio_sending_flow(self, realtime2, mia_audio_16khz):
async def test_audio_sending_flow(self, realtime, mia_audio_16khz):
"""Test sending real audio data and verify connection remains stable"""
events = []

@realtime2.events.subscribe
@realtime.events.subscribe
async def on_audio(event: RealtimeAudioOutputEvent):
events.append(event)

await asyncio.sleep(0.01)
await realtime2.connect()
await realtime.connect()

await realtime2.simple_response("Listen to the following story, what is Mia looking for?")
await realtime.simple_response("Listen to the following story, what is Mia looking for?")
await asyncio.sleep(10.0)
await realtime2.simple_audio_response(mia_audio_16khz)
await realtime.simple_audio_response(mia_audio_16khz)

# Wait a moment to ensure processing
await asyncio.sleep(10.0)
Expand Down
2 changes: 2 additions & 0 deletions plugins/xai/tests/test_xai_llm.py
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ async def test_memory(self):
await llm.simple_response(
text="There are 2 dogs in the room",
)
await llm.events.wait()
response = await llm.simple_response(
text="How many paws are there in the room?",
)
Expand All @@ -90,6 +91,7 @@ async def test_native_memory(self):
await llm.create_response(
input="There are 2 dogs in the room",
)
await llm.events.wait()
response = await llm.create_response(
input="How many paws are there in the room?",
)
Expand Down
Loading