From 3eb65fa67a741c1d3df57cce146a930f77e2dbe0 Mon Sep 17 00:00:00 2001 From: Kerry Lu Date: Wed, 9 Sep 2026 14:16:29 -0700 Subject: [PATCH] ci: run the failure-path load test nightly instead of on every pull request A load test that measures RSS and latency over a dozen requests belongs on a schedule, not in the per-PR matrix. Drop the unit-test shard and add a nightly workflow (09:00 UTC, plus manual dispatch) that runs it alone against the default branch. It needs no secrets, database or network beyond localhost. Co-Authored-By: Claude Fable 5.1 Claude-Session: https://claude.ai/code/session_014ZDULyJPp17ZFiJenRxs2T --- .../workflows/nightly_failure_path_load.yml | 50 +++++++++++++++++++ .github/workflows/test-unit.yml | 8 --- 2 files changed, 50 insertions(+), 8 deletions(-) create mode 100644 .github/workflows/nightly_failure_path_load.yml diff --git a/.github/workflows/nightly_failure_path_load.yml b/.github/workflows/nightly_failure_path_load.yml new file mode 100644 index 00000000000..7b01168d90f --- /dev/null +++ b/.github/workflows/nightly_failure_path_load.yml @@ -0,0 +1,50 @@ +name: "Nightly Failure-Path Load Test" + +on: + schedule: + - cron: "0 9 * * *" + workflow_dispatch: + +permissions: + contents: read + +jobs: + failure-path-load: + if: github.event_name != 'schedule' || github.repository == 'BerriAI/litellm' + runs-on: ubuntu-latest + timeout-minutes: 20 + steps: + - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0 + with: + persist-credentials: false + + - name: Set up Python + uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0 + with: + python-version: "3.12" + + - name: Set up uv + uses: ./.github/actions/setup-uv-with-retries + with: + version: "0.10.9" + + - name: Cache the Rust build + uses: ./.github/actions/cache-cargo-build + + - name: Install dependencies + run: | + .github/scripts/uv_sync_with_retries.sh --frozen --group ci --group proxy-dev --extra proxy + + - name: Cache Prisma binaries + uses: ./.github/actions/cache-prisma-binaries + + - name: Generate Prisma client + run: | + uv run --no-sync prisma generate --schema litellm/proxy/schema.prisma + + - name: Run the failure-path load test + env: + LITELLM_LOG: WARNING + run: | + uv run --no-sync pytest tests/load_tests/test_failing_dependencies_load.py -v --tb=short -rA \ + -o log_cli=true -o log_cli_level=INFO diff --git a/.github/workflows/test-unit.yml b/.github/workflows/test-unit.yml index e72cc859270..cc606339a20 100644 --- a/.github/workflows/test-unit.yml +++ b/.github/workflows/test-unit.yml @@ -244,14 +244,6 @@ jobs: reruns: 2 timeout-minutes: 20 job-timeout-minutes: 60 - - - shard: failure-path-load - artifact-name: failure-path-load - test-path: "tests/load_tests/test_failing_dependencies_load.py" - workers: 1 - reruns: 1 - timeout-minutes: 10 - job-timeout-minutes: 20 uses: ./.github/workflows/_test-unit-base.yml with: test-path: ${{ matrix.test-path }}