@@ -1255,7 +1255,15 @@ jobs:
12551255 ls
12561256 # Add --timeout to kill hanging tests after 120s (2 min)
12571257 # Add --durations=20 to show 20 slowest tests for debugging
1258- python -m pytest -vv tests/llm_translation --cov=litellm --cov-report=xml -v --junitxml=test-results/junit.xml --durations=20 -n 4 --timeout=120 --timeout_method=thread
1258+ # Subdirectories with dedicated jobs (maintain this list as new jobs are added)
1259+ IGNORE_DIRS=(
1260+ "tests/llm_translation/realtime"
1261+ )
1262+ IGNORE_ARGS=""
1263+ for dir in "${IGNORE_DIRS[@]}"; do
1264+ IGNORE_ARGS="$IGNORE_ARGS --ignore=$dir"
1265+ done
1266+ python -m pytest -vv tests/llm_translation $IGNORE_ARGS --cov=litellm --cov-report=xml -v --junitxml=test-results/junit.xml --durations=20 -n 4 --timeout=120 --timeout_method=thread
12591267 no_output_timeout : 120m
12601268 - run :
12611269 name : Rename the coverage files
@@ -1271,6 +1279,54 @@ jobs:
12711279 paths :
12721280 - llm_translation_coverage.xml
12731281 - llm_translation_coverage
1282+ realtime_translation_testing :
1283+ docker :
1284+ - image : cimg/python:3.11
1285+ auth :
1286+ username : ${DOCKERHUB_USERNAME}
1287+ password : ${DOCKERHUB_PASSWORD}
1288+ working_directory : ~/project
1289+
1290+ steps :
1291+ - checkout
1292+ - setup_google_dns
1293+ - run :
1294+ name : Install Dependencies
1295+ command : |
1296+ python -m pip install --upgrade pip
1297+ python -m pip install -r requirements.txt
1298+ pip install "pytest==7.3.1"
1299+ pip install "pytest-retry==1.6.3"
1300+ pip install "pytest-cov==5.0.0"
1301+ pip install "pytest-asyncio==0.21.1"
1302+ pip install "respx==0.22.0"
1303+ pip install "pytest-xdist==3.6.1"
1304+ pip install "pytest-timeout==2.2.0"
1305+ pip install "websockets"
1306+ # Run pytest and generate JUnit XML report
1307+ - run :
1308+ name : Run realtime tests
1309+ command : |
1310+ pwd
1311+ ls
1312+ # Add --timeout to kill hanging tests after 120s (2 min)
1313+ # Add --durations=20 to show 20 slowest tests for debugging
1314+ python -m pytest -vv tests/llm_translation/realtime --cov=litellm --cov-report=xml -v --junitxml=test-results/junit.xml --durations=20 -n 4 --timeout=120 --timeout_method=thread
1315+ no_output_timeout : 120m
1316+ - run :
1317+ name : Rename the coverage files
1318+ command : |
1319+ mv coverage.xml realtime_translation_coverage.xml
1320+ mv .coverage realtime_translation_coverage
1321+
1322+ # Store test results
1323+ - store_test_results :
1324+ path : test-results
1325+ - persist_to_workspace :
1326+ root : .
1327+ paths :
1328+ - realtime_translation_coverage.xml
1329+ - realtime_translation_coverage
12741330 mcp_testing :
12751331 docker :
12761332 - image : cimg/python:3.11
@@ -1316,6 +1372,51 @@ jobs:
13161372 paths :
13171373 - mcp_coverage.xml
13181374 - mcp_coverage
1375+ agent_testing :
1376+ docker :
1377+ - image : cimg/python:3.11
1378+ auth :
1379+ username : ${DOCKERHUB_USERNAME}
1380+ password : ${DOCKERHUB_PASSWORD}
1381+ working_directory : ~/project
1382+
1383+ steps :
1384+ - checkout
1385+ - setup_google_dns
1386+ - run :
1387+ name : Install Dependencies
1388+ command : |
1389+ python -m pip install --upgrade pip
1390+ python -m pip install -r requirements.txt
1391+ pip install "pytest==7.3.1"
1392+ pip install "pytest-retry==1.6.3"
1393+ pip install "pytest-cov==5.0.0"
1394+ pip install "pytest-asyncio==0.21.1"
1395+ pip install "respx==0.22.0"
1396+ pip install "pydantic==2.11.0"
1397+ pip install "a2a-sdk"
1398+ # Run pytest and generate JUnit XML report
1399+ - run :
1400+ name : Run tests
1401+ command : |
1402+ pwd
1403+ ls
1404+ python -m pytest -vv tests/agent_tests --ignore=tests/agent_tests/local_only_agent_tests --cov=litellm --cov-report=xml -x -s -v --junitxml=test-results/junit.xml --durations=5
1405+ no_output_timeout : 120m
1406+ - run :
1407+ name : Rename the coverage files
1408+ command : |
1409+ mv coverage.xml agent_coverage.xml
1410+ mv .coverage agent_coverage
1411+
1412+ # Store test results
1413+ - store_test_results :
1414+ path : test-results
1415+ - persist_to_workspace :
1416+ root : .
1417+ paths :
1418+ - agent_coverage.xml
1419+ - agent_coverage
13191420 guardrails_testing :
13201421 docker :
13211422 - image : cimg/python:3.11
@@ -3532,7 +3633,7 @@ jobs:
35323633 python -m venv venv
35333634 . venv/bin/activate
35343635 pip install coverage
3535- coverage combine llm_translation_coverage llm_responses_api_coverage ocr_coverage search_coverage mcp_coverage logging_coverage audio_coverage litellm_router_coverage litellm_router_unit_coverage local_testing_part1_coverage local_testing_part2_coverage litellm_assistants_api_coverage auth_ui_unit_tests_coverage langfuse_coverage caching_coverage litellm_proxy_unit_tests_part1_coverage litellm_proxy_unit_tests_part2_coverage image_gen_coverage pass_through_unit_tests_coverage batches_coverage litellm_security_tests_coverage guardrails_coverage litellm_mapped_tests_coverage
3636+ coverage combine llm_translation_coverage realtime_translation_coverage llm_responses_api_coverage ocr_coverage search_coverage mcp_coverage logging_coverage audio_coverage litellm_router_coverage litellm_router_unit_coverage local_testing_part1_coverage local_testing_part2_coverage litellm_assistants_api_coverage auth_ui_unit_tests_coverage langfuse_coverage caching_coverage litellm_proxy_unit_tests_part1_coverage litellm_proxy_unit_tests_part2_coverage image_gen_coverage pass_through_unit_tests_coverage batches_coverage litellm_security_tests_coverage guardrails_coverage litellm_mapped_tests_coverage
35363637 coverage xml
35373638 - codecov/upload :
35383639 file : ./coverage.xml
@@ -3754,6 +3855,9 @@ jobs:
37543855
37553856 cd ui/litellm-dashboard
37563857
3858+ # Remove node_modules and package-lock to ensure clean install (fixes dependency resolution issues)
3859+ rm -rf node_modules package-lock.json
3860+
37573861 # Install dependencies first
37583862 npm install
37593863
@@ -4193,12 +4297,24 @@ workflows:
41934297 only :
41944298 - main
41954299 - /litellm_.*/
4300+ - realtime_translation_testing :
4301+ filters :
4302+ branches :
4303+ only :
4304+ - main
4305+ - /litellm_.*/
41964306 - mcp_testing :
41974307 filters :
41984308 branches :
41994309 only :
42004310 - main
42014311 - /litellm_.*/
4312+ - agent_testing :
4313+ filters :
4314+ branches :
4315+ only :
4316+ - main
4317+ - /litellm_.*/
42024318 - guardrails_testing :
42034319 filters :
42044320 branches :
@@ -4304,7 +4420,9 @@ workflows:
43044420 - upload-coverage :
43054421 requires :
43064422 - llm_translation_testing
4423+ - realtime_translation_testing
43074424 - mcp_testing
4425+ - agent_testing
43084426 - google_generate_content_endpoint_testing
43094427 - guardrails_testing
43104428 - llm_responses_api_testing
@@ -4381,7 +4499,9 @@ workflows:
43814499 - e2e_openai_endpoints
43824500 - test_bad_database_url
43834501 - llm_translation_testing
4502+ - realtime_translation_testing
43844503 - mcp_testing
4504+ - agent_testing
43854505 - google_generate_content_endpoint_testing
43864506 - llm_responses_api_testing
43874507 - ocr_testing
0 commit comments