From 68489f62ff5db52005bfd4084b8c4f46dafebe53 Mon Sep 17 00:00:00 2001 From: yuneng-jiang Date: Sat, 22 Aug 2026 22:57:50 -0700 Subject: [PATCH] ci: run the enterprise package suite in GitHub Actions (#37798) tests/enterprise is 13 files and 244 tests that only CircleCI runs, and CircleCI gates nothing: it triggers on PR labeled events, none of its jobs are required, and red runs get merged past. So the suite that covers the enterprise package's guardrails, auth and management endpoints has had no say in whether a change lands. Measured on 2026-08-21 with every credential stripped from the environment: 240 passed, 4 skipped, nothing failed. It needs no provider key, so it can be a required shard rather than a scheduled lane, unlike the other CircleCI suites in this group, which each carry a live-API minority. The CircleCI job is removed in the same commit so the suite runs once, not twice. --- .circleci/config.yml | 37 --------------------------------- .github/workflows/test-unit.yml | 8 +++++++ 2 files changed, 8 insertions(+), 37 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index a261b7c78fc..4615a6a5a7e 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1154,40 +1154,6 @@ jobs: paths: - search_coverage.xml - search_coverage - litellm_mapped_enterprise_tests: - docker: - - *python312_image - working_directory: ~/project - resource_class: large - - steps: - - checkout - - skip_if_unrelated_changes - - setup_google_dns - - install_uv - - install_rust - - run: - name: Install Dependencies - command: | - uv sync --frozen --all-groups --all-extras --python 3.12 - - setup_litellm_enterprise_pip - - run: - name: Run enterprise tests - command: | - uv run --no-sync python -m prisma generate - mkdir -p test-results - TEST_FILES=$(circleci tests glob "tests/enterprise/**/test_*.py") - echo "$TEST_FILES" | circleci tests run \ - --verbose \ - --command="tr ' ' '\\n' | awk '/\\.py/ {print; next} {sub(/\\.[A-Z][^.]*$/, \"\"); gsub(/\\./, \"/\"); print \$0 \".py\"}' | xargs uv run --no-sync python -m pytest \ - -v -x \ - --junitxml=test-results/junit-enterprise.xml \ - --durations=10 \ - -n 4" - no_output_timeout: 15m - # Store test results - - store_test_results: - path: test-results batches_testing: docker: - *python312_image @@ -3041,8 +3007,6 @@ workflows: filters: *main_branches - search_testing: filters: *main_branches - - litellm_mapped_enterprise_tests: - filters: *main_branches - batches_testing: filters: *main_branches - litellm_utils_testing: @@ -3065,7 +3029,6 @@ workflows: - guardrails_testing - ocr_testing - search_testing - - litellm_mapped_enterprise_tests - batches_testing - litellm_utils_testing - pass_through_unit_testing diff --git a/.github/workflows/test-unit.yml b/.github/workflows/test-unit.yml index 368680d9ec2..1370a05181a 100644 --- a/.github/workflows/test-unit.yml +++ b/.github/workflows/test-unit.yml @@ -221,6 +221,14 @@ jobs: timeout-minutes: 20 job-timeout-minutes: 55 + - shard: enterprise-package + artifact-name: enterprise-package + test-path: "tests/enterprise" + workers: 4 + reruns: 2 + timeout-minutes: 20 + job-timeout-minutes: 55 + - shard: responses-caching-types artifact-name: responses-caching-types test-path: >-