Skip to content

Pin the e2e provider-launch tests to fixed CI MPSes (Haiku / Nano) - #471

Open
masonc08 wants to merge 4 commits into
mainfrom
masonc08/e2e-pin-ci-anthropic-mps
Open

Pin the e2e provider-launch tests to fixed CI MPSes (Haiku / Nano)#471
masonc08 wants to merge 4 commits into
mainfrom
masonc08/e2e-pin-ci-anthropic-mps

Conversation

@masonc08

@masonc08 masonc08 commented Sep 2, 2026

Copy link
Copy Markdown
Collaborator

What & why

TestModelProviderLaunch picked whichever non-relayed MPS listed first, so the inference it ran was non-deterministic (any provider, any model) and its cost uncontrolled. Pin each path to a dedicated CI MPS that exposes only its cheapest model — reproducible, and ~a cent per run.

  • claudemain.ucode.ci_e2e_anthropic_nonrelay_mps (api-key Anthropic, Haiku 4.5 only). route_root_model pins ANTHROPIC_MODEL to the one allowed target, since Claude Code's default tier isn't in the allowlist.
  • codexmain.ucode.ci_openai_mps (api-key OpenAI, gpt-5-nano only), pinned via state["codex_default_model"].

Each skips (not fails) when its MPS is absent, so e2e runs against other workspaces still work.

How do you know it works?

Both models verified to route HTTP 200 through their MPS on the CI workspace (eng-ml-inference-team-us-east-1): claude-haiku-4-5-20251001 via /ai-gateway/anthropic/v1/messages, gpt-5-nano via /ai-gateway/codex/v1/responses. ruff clean; all 31 e2e tests still collect. The tests themselves run in CI's e2e job.

This pull request and its description were written by Isaac.

masonc08 and others added 2 commits September 2, 2026 21:19
TestModelProviderLaunch picked whichever non-relayed service listed first, so the
inference it ran was non-deterministic (any provider, any model) and its cost
uncontrolled. Pin each path to a dedicated CI MPS that exposes only its cheapest
model, so runs are reproducible and cost ~a cent each:

- claude -> main.ucode.ci_e2e_anthropic_nonrelay_mps (api-key Anthropic, Haiku 4.5
  only); route_root_model pins ANTHROPIC_MODEL to the one allowed target.
- codex  -> main.ucode.ci_openai_mps (api-key OpenAI, gpt-5-nano only); pinned via
  state["codex_default_model"].

Each skips (rather than fails) when its MPS is absent, so e2e runs against other
workspaces still work. Both were verified to route 200 on the CI workspace.

Co-authored-by: Isaac <no-reply@databricks.com>
Both its callers (the claude and codex provider tests) now pin a fixed CI MPS, so
the "pick the first non-relayed service" helper is unused. Its three imports stay
used by TestModelProviderServicesDiscovery, so nothing is orphaned.

Co-authored-by: Isaac <no-reply@databricks.com>
@masonc08
masonc08 marked this pull request as ready for review September 2, 2026 21:24
@masonc08
masonc08 enabled auto-merge (squash) September 2, 2026 21:40
@masonc08
masonc08 force-pushed the masonc08/e2e-pin-ci-anthropic-mps branch from cb3fb8e to 7c80f3e Compare September 2, 2026 21:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant