Skip to content

Commit f398825

Browse files
authored
chore: add a script to do model specific minimal setup installation on release (#3208)
## Summary House keeping: - For each of the model tests, ensure it works if only the minimal packages are installed. I.e. to prevent that we accidentally require packages for all users. Run locally- `sh scripts/model_tests_setup.sh <model_name>` for example- `sh scripts/model_tests_setup.sh openai` ![image](https://github.com/user-attachments/assets/53ca58fe-1bb1-40f2-87fd-086055e9a5f9) ![image](https://github.com/user-attachments/assets/d58e454a-94a6-43f2-876b-7732faf07c44) (If applicable, issue number: #____) ## Type of change - [ ] Bug fix - [ ] New feature - [ ] Breaking change - [x] Improvement - [ ] Model update - [ ] Other: --- ## Checklist - [x] Code complies with style guidelines - [x] Ran format/validation scripts (`./scripts/format.sh` and `./scripts/validate.sh`) - [x] Self-review completed - [ ] Documentation updated (comments, docstrings) - [x] Examples and guides: Relevant cookbook examples have been included or updated (if applicable) - [x] Tested in clean environment - [ ] Tests added/updated (if applicable) --- ## Additional Notes Add any important context (deployment instructions, screenshots, security considerations, etc.)
1 parent 1f05f41 commit f398825

File tree

3 files changed

+289
-120
lines changed

3 files changed

+289
-120
lines changed

.github/workflows/test_on_release.yml

Lines changed: 35 additions & 119 deletions
Original file line numberDiff line numberDiff line change
@@ -62,15 +62,10 @@ jobs:
6262
run: |
6363
curl -LsSf https://astral.sh/uv/install.sh | sh
6464
echo "$HOME/.cargo/bin" >> $GITHUB_PATH
65-
- name: Run dev setup
66-
working-directory: .
67-
run: |
68-
./scripts/dev_setup.sh
69-
- name: Run OpenAI tests
65+
- name: Run dev setup and OpenAI tests
7066
working-directory: .
7167
run: |
72-
source .venv/bin/activate
73-
python -m pytest ./libs/agno/tests/integration/models/openai
68+
./scripts/run_model_tests.sh openai
7469
7570
# Run tests for Google
7671
test-google:
@@ -93,15 +88,10 @@ jobs:
9388
run: |
9489
curl -LsSf https://astral.sh/uv/install.sh | sh
9590
echo "$HOME/.cargo/bin" >> $GITHUB_PATH
96-
- name: Run dev setup
91+
- name: Run dev setup and Google tests
9792
working-directory: .
9893
run: |
99-
./scripts/dev_setup.sh
100-
- name: Run Google tests
101-
working-directory: .
102-
run: |
103-
source .venv/bin/activate
104-
python -m pytest ./libs/agno/tests/integration/models/google
94+
./scripts/run_model_tests.sh google
10595
10696
# Run tests for Anthropic
10797
test-anthropic:
@@ -123,15 +113,10 @@ jobs:
123113
run: |
124114
curl -LsSf https://astral.sh/uv/install.sh | sh
125115
echo "$HOME/.cargo/bin" >> $GITHUB_PATH
126-
- name: Run dev setup
116+
- name: Run dev setup and Anthropic tests
127117
working-directory: .
128118
run: |
129-
./scripts/dev_setup.sh
130-
- name: Run Anthropic tests
131-
working-directory: .
132-
run: |
133-
source .venv/bin/activate
134-
python -m pytest ./libs/agno/tests/integration/models/anthropic
119+
./scripts/run_model_tests.sh anthropic
135120
136121
# Run tests for AWS
137122
test-aws:
@@ -155,15 +140,10 @@ jobs:
155140
run: |
156141
curl -LsSf https://astral.sh/uv/install.sh | sh
157142
echo "$HOME/.cargo/bin" >> $GITHUB_PATH
158-
- name: Run dev setup
143+
- name: Run dev setup and AWS tests
159144
working-directory: .
160145
run: |
161-
./scripts/dev_setup.sh
162-
- name: Run AWS tests
163-
working-directory: .
164-
run: |
165-
source .venv/bin/activate
166-
python -m pytest ./libs/agno/tests/integration/models/aws
146+
./scripts/run_model_tests.sh aws
167147
168148
# Run tests for Cohere
169149
test-cohere:
@@ -186,15 +166,10 @@ jobs:
186166
run: |
187167
curl -LsSf https://astral.sh/uv/install.sh | sh
188168
echo "$HOME/.cargo/bin" >> $GITHUB_PATH
189-
- name: Run dev setup
169+
- name: Run dev setup and Cohere tests
190170
working-directory: .
191171
run: |
192-
./scripts/dev_setup.sh
193-
- name: Run Cohere tests
194-
working-directory: .
195-
run: |
196-
source .venv/bin/activate
197-
python -m pytest ./libs/agno/tests/integration/models/cohere
172+
./scripts/run_model_tests.sh cohere
198173
199174
# Run tests for Deepseek
200175
test-deepseek:
@@ -215,15 +190,10 @@ jobs:
215190
run: |
216191
curl -LsSf https://astral.sh/uv/install.sh | sh
217192
echo "$HOME/.cargo/bin" >> $GITHUB_PATH
218-
- name: Run dev setup
193+
- name: Run dev setup and Deepseek tests
219194
working-directory: .
220195
run: |
221-
./scripts/dev_setup.sh
222-
- name: Run Deepseek tests
223-
working-directory: .
224-
run: |
225-
source .venv/bin/activate
226-
python -m pytest ./libs/agno/tests/integration/models/deepseek
196+
./scripts/run_model_tests.sh deepseek
227197
228198
# Run tests for Fireworks
229199
test-fireworks:
@@ -276,15 +246,10 @@ jobs:
276246
run: |
277247
curl -LsSf https://astral.sh/uv/install.sh | sh
278248
echo "$HOME/.cargo/bin" >> $GITHUB_PATH
279-
- name: Run dev setup
249+
- name: Run dev setup and Groq tests
280250
working-directory: .
281251
run: |
282-
./scripts/dev_setup.sh
283-
- name: Run Groq tests
284-
working-directory: .
285-
run: |
286-
source .venv/bin/activate
287-
python -m pytest ./libs/agno/tests/integration/models/groq
252+
./scripts/run_model_tests.sh groq
288253
289254
# Run tests for Mistral
290255
test-mistral:
@@ -306,15 +271,10 @@ jobs:
306271
run: |
307272
curl -LsSf https://astral.sh/uv/install.sh | sh
308273
echo "$HOME/.cargo/bin" >> $GITHUB_PATH
309-
- name: Run dev setup
310-
working-directory: .
311-
run: |
312-
./scripts/dev_setup.sh
313-
- name: Run Mistral tests
274+
- name: Run dev setup and Mistral tests
314275
working-directory: .
315276
run: |
316-
source .venv/bin/activate
317-
python -m pytest ./libs/agno/tests/integration/models/mistral
277+
./scripts/run_model_tests.sh mistral
318278
319279
# Run tests for Nvidia
320280
test-nvidia:
@@ -336,15 +296,11 @@ jobs:
336296
run: |
337297
curl -LsSf https://astral.sh/uv/install.sh | sh
338298
echo "$HOME/.cargo/bin" >> $GITHUB_PATH
339-
- name: Run dev setup
340-
working-directory: .
341-
run: |
342-
./scripts/dev_setup.sh
343-
- name: Run Nvidia tests
299+
- name: Run dev setup and Nvidia tests
344300
working-directory: .
345301
run: |
346-
source .venv/bin/activate
347-
python -m pytest ./libs/agno/tests/integration/models/nvidia
302+
./scripts/run_model_tests.sh nvidia
303+
348304
# Run tests for OpenRouter
349305
test-openrouter:
350306
if: false # Disable openrouter tests until we get a test account
@@ -366,15 +322,10 @@ jobs:
366322
run: |
367323
curl -LsSf https://astral.sh/uv/install.sh | sh
368324
echo "$HOME/.cargo/bin" >> $GITHUB_PATH
369-
- name: Run dev setup
325+
- name: Run dev setup and OpenRouter tests
370326
working-directory: .
371327
run: |
372-
./scripts/dev_setup.sh
373-
- name: Run OpenRouter tests
374-
working-directory: .
375-
run: |
376-
source .venv/bin/activate
377-
python -m pytest ./libs/agno/tests/integration/models/openrouter
328+
./scripts/run_model_tests.sh openrouter
378329
379330
# Run tests for Perplexity
380331
test-perplexity:
@@ -396,15 +347,10 @@ jobs:
396347
run: |
397348
curl -LsSf https://astral.sh/uv/install.sh | sh
398349
echo "$HOME/.cargo/bin" >> $GITHUB_PATH
399-
- name: Run dev setup
400-
working-directory: .
401-
run: |
402-
./scripts/dev_setup.sh
403-
- name: Run Perplexity tests
350+
- name: Run dev setup and Perplexity tests
404351
working-directory: .
405352
run: |
406-
source .venv/bin/activate
407-
python -m pytest ./libs/agno/tests/integration/models/perplexity
353+
./scripts/run_model_tests.sh perplexity
408354
409355
# Run tests for SambaNova
410356
test-sambanova:
@@ -425,15 +371,10 @@ jobs:
425371
run: |
426372
curl -LsSf https://astral.sh/uv/install.sh | sh
427373
echo "$HOME/.cargo/bin" >> $GITHUB_PATH
428-
- name: Run dev setup
429-
working-directory: .
430-
run: |
431-
./scripts/dev_setup.sh
432-
- name: Run SambaNova tests
374+
- name: Run dev setup and SambaNova tests
433375
working-directory: .
434376
run: |
435-
source .venv/bin/activate
436-
python -m pytest ./libs/agno/tests/integration/models/sambanova
377+
./scripts/run_model_tests.sh sambanova
437378
438379
# Run tests for Together
439380
test-together:
@@ -456,15 +397,10 @@ jobs:
456397
run: |
457398
curl -LsSf https://astral.sh/uv/install.sh | sh
458399
echo "$HOME/.cargo/bin" >> $GITHUB_PATH
459-
- name: Run dev setup
460-
working-directory: .
461-
run: |
462-
./scripts/dev_setup.sh
463-
- name: Run Together tests
400+
- name: Run dev setup and Together tests
464401
working-directory: .
465402
run: |
466-
source .venv/bin/activate
467-
python -m pytest ./libs/agno/tests/integration/models/together
403+
./scripts/run_model_tests.sh together
468404
469405
# Run tests for xAI
470406
test-xai:
@@ -486,15 +422,10 @@ jobs:
486422
run: |
487423
curl -LsSf https://astral.sh/uv/install.sh | sh
488424
echo "$HOME/.cargo/bin" >> $GITHUB_PATH
489-
- name: Run dev setup
490-
working-directory: .
491-
run: |
492-
./scripts/dev_setup.sh
493-
- name: Run xAI tests
425+
- name: Run dev setup and XAI tests
494426
working-directory: .
495427
run: |
496-
source .venv/bin/activate
497-
python -m pytest ./libs/agno/tests/integration/models/xai
428+
./scripts/run_model_tests.sh xai
498429
499430
test-ibm-watsonx:
500431
if: false # Our account is not working
@@ -518,15 +449,10 @@ jobs:
518449
run: |
519450
curl -LsSf https://astral.sh/uv/install.sh | sh
520451
echo "$HOME/.cargo/bin" >> $GITHUB_PATH
521-
- name: Run dev setup
452+
- name: Run dev setup and IBM-WatsonX tests
522453
working-directory: .
523454
run: |
524-
./scripts/dev_setup.sh
525-
- name: Run xAI tests
526-
working-directory: .
527-
run: |
528-
source .venv/bin/activate
529-
python -m pytest ./libs/agno/tests/integration/models/ibm/watsonx
455+
./scripts/run_model_tests.sh ibm
530456
531457
# Run tests for Cerebras
532458
test-cerebras:
@@ -547,15 +473,10 @@ jobs:
547473
run: |
548474
curl -LsSf https://astral.sh/uv/install.sh | sh
549475
echo "$HOME/.cargo/bin" >> $GITHUB_PATH
550-
- name: Run dev setup
476+
- name: Run dev setup and Cerebras tests
551477
working-directory: .
552478
run: |
553-
./scripts/dev_setup.sh
554-
- name: Run Cerebras tests
555-
working-directory: .
556-
run: |
557-
source .venv/bin/activate
558-
python -m pytest ./libs/agno/tests/integration/models/cerebras
479+
./scripts/run_model_tests.sh cerebras
559480
560481
test-deepinfra:
561482
runs-on: ubuntu-latest
@@ -576,15 +497,10 @@ jobs:
576497
run: |
577498
curl -LsSf https://astral.sh/uv/install.sh | sh
578499
echo "$HOME/.cargo/bin" >> $GITHUB_PATH
579-
- name: Run dev setup
500+
- name: Run dev setup and Deepinfra tests
580501
working-directory: .
581502
run: |
582-
./scripts/dev_setup.sh
583-
- name: Run DeepInfra tests
584-
working-directory: .
585-
run: |
586-
source .venv/bin/activate
587-
python -m pytest ./libs/agno/tests/integration/models/deepinfra
503+
./scripts/run_model_tests.sh deepinfra
588504
589505
test-agents:
590506
runs-on: ubuntu-latest

libs/agno/pyproject.toml

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,15 @@ dependencies = [
4848
[project.optional-dependencies]
4949
dev = ["mypy", "pytest", "pytest-asyncio", "pytest-cov", "pytest-mock", "ruff", "timeout-decorator", "types-pyyaml", "types-aiofiles", "fastapi", "uvicorn", "arxiv"]
5050

51+
# Models integration test dependencies
52+
integration-tests = [
53+
"exa_py",
54+
"duckduckgo-search",
55+
"yfinance",
56+
"sqlalchemy",
57+
"Pillow",
58+
]
59+
5160
# Dependencies for Telemetry
5261
opentelemetry = ["opentelemetry-sdk", "opentelemetry-exporter-otlp"]
5362
weave = ["weave"]
@@ -371,4 +380,4 @@ module = [
371380
"youtube_transcript_api.*",
372381
"zep_cloud.*"
373382
]
374-
ignore_missing_imports = true
383+
ignore_missing_imports = true

0 commit comments

Comments
 (0)