From 26c5ec3c8bf01af231d8539ca58b1e1ce8974f24 Mon Sep 17 00:00:00 2001 From: yuneng-jiang Date: Thu, 13 Aug 2026 23:52:46 -0700 Subject: [PATCH] ci: drop the CircleCI ui_build and ui_unit_tests jobs (#36893) Both are covered on GitHub Actions. test-litellm-ui-build.yml runs the dashboard build on every PR, and test-litellm-ui-unit.yml runs the vitest suite with ui-unit-tests already a required check, so neither CircleCI job gates anything that GHA does not already gate. ui_build additionally produced nothing anyone consumed. It persisted litellm/proxy/_experimental/out to the workspace, and the only job downstream of it was ui_unit_tests, which never attached the workspace and reinstalled from source instead. The requires edge was pure sequencing, so the build output was written and discarded on every client-touching PR. One real narrowing comes with this, and it is deliberate. ui_unit_tests ran the full vitest suite on PRs, while the GHA job scopes PR runs to tests reachable from the diff and keeps the full suite on pushes to staging. That split was a measured decision in #34175 and it still holds: the suite is 252s and 248s of that is CreateMCPServer.integration.test.tsx alone, so running everything per PR buys about four minutes to re-run one file. Note that assert-ci-coverage does not speak to this. It walks tests/**/test_*.py only, so it is blind to vitest files by construction; it stays green here because no Python test lost a runner, which is a narrower claim than the UI side being unaffected. auth_ui_unit_tests is a different job, a Python suite on a Postgres sidecar, and is untouched --- .circleci/config.yml | 84 -------------------------------------------- 1 file changed, 84 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index cc485aa0595..e8a8483781b 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -2744,84 +2744,6 @@ jobs: file: ./coverage.xml flags: circleci - ui_build: - docker: - - image: cimg/node:24.19@sha256:8966565f07189a67d64d6808a2b127f31dafae566508e3547f55640e1070bfad - auth: - username: ${DOCKERHUB_USERNAME} - password: ${DOCKERHUB_PASSWORD} - resource_class: medium+ - working_directory: ~/project - steps: - - checkout - - skip_if_unrelated_changes: - category: client - - setup_google_dns - - restore_cache: - keys: - - ui-build-deps-v1-{{ checksum "ui/litellm-dashboard/package-lock.json" }} - - ui-build-deps-v1- - - restore_cache: - keys: - - ui-nextjs-cache-v1-{{ checksum "ui/litellm-dashboard/package-lock.json" }} - - ui-nextjs-cache-v1- - - run: - name: Install dependencies - command: | - cd ui/litellm-dashboard - npm ci - - save_cache: - key: ui-build-deps-v1-{{ checksum "ui/litellm-dashboard/package-lock.json" }} - paths: - - ui/litellm-dashboard/node_modules - - run: - name: Build UI - command: | - cd ui/litellm-dashboard - source ./build_ui.sh - - save_cache: - key: ui-nextjs-cache-v1-{{ checksum "ui/litellm-dashboard/package-lock.json" }} - paths: - - ui/litellm-dashboard/.next/cache - - persist_to_workspace: - root: . - paths: - - litellm/proxy/_experimental/out - - ui_unit_tests: - docker: - - image: cimg/node:24.19@sha256:8966565f07189a67d64d6808a2b127f31dafae566508e3547f55640e1070bfad - auth: - username: ${DOCKERHUB_USERNAME} - password: ${DOCKERHUB_PASSWORD} - resource_class: xlarge - working_directory: ~/project - steps: - - checkout - - skip_if_unrelated_changes: - category: client - - setup_google_dns - - restore_cache: - keys: - - ui-unit-deps-v1-{{ checksum "ui/litellm-dashboard/package-lock.json" }} - - ui-unit-deps-v1- - - run: - name: Install dependencies - command: | - cd ui/litellm-dashboard - npm ci - - save_cache: - key: ui-unit-deps-v1-{{ checksum "ui/litellm-dashboard/package-lock.json" }} - paths: - - ui/litellm-dashboard/node_modules - - run: - name: Run UI unit tests (Vitest) - command: | - cd ui/litellm-dashboard - - CI=true npm run test -- --run \ - --pool forks --poolOptions.forks.maxForks=6 - e2e_ui_testing: docker: - image: cimg/python:3.12-browsers@sha256:b432899af01c9a311bf74f4f22e9ada2e5306d4b1b4383f8d29e1228a5844ef2 @@ -3181,12 +3103,6 @@ workflows: filters: *main_branches - litellm_router_unit_testing: filters: *main_branches - - ui_build: - filters: *main_branches - - ui_unit_tests: - requires: - - ui_build - filters: *main_branches - auth_ui_unit_tests: filters: *main_branches - proxy_behavior_tests: