test(e2e): add google-adk arm to priority-runtimes e2e (registration + BYOK) #2334
Reference in New Issue
Block a user
Delete Branch "cr2/google-adk-e2e-coverage"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What
Closes the google-adk slice of core#2332 P0.1: google-adk is a shipped runtime (providers.yaml runtimes block; registered cp#568 / core#2327) but had zero serving/runtime e2e. This adds a google-adk arm to
tests/e2e/test_priority_runtimes_e2e.sh.Arm design (matches the file's existing idioms; fail-closed, NEVER fail-open)
google-adk serves Gemini two ways: the platform arm (keyless Vertex via the Molecule LLM proxy + server-side WIF mint — the org-default PROD path, needs a platform WIF identity CI lacks) and the google arm (AI-Studio API-key BYOK — the CI-/staging-exercisable path). The new
run_google_adkhas a two-part contract:manifest.jsonworkspace_templates— the SSOT the Create-handler's runtime allowlist is derived from (runtime_registry.go::loadRuntimesFromManifest, with the same-defaultsuffix normalization). Absence would 422RUNTIME_UNSUPPORTED, so this is the precondition for any serving and is now gated even on a key-less CI run. Does not bumpVALIDATED(registration != end-to-end serving).E2E_GOOGLE_API_KEYset, provision the AI-Studio BYOK path (baregemini-2.5-pro+ GOOGLE/GEMINI key inline, mirroringrun_openai_runtime) end-to-end (online + non-error A2A). A miss is a HARDfail()(fail-closed-if-present) — the same idiom as the claude-code/hermes/openai arms, NOT a best-effort/bestfailarm. Without the key the live portion is a LOUDskip(). The keyless-Vertex path is deliberately not driven (no fail-open arm for a path CI cannot actually exercise).Wired into the
E2E_RUNTIMESdispatcher,all, the defaultWANTset, and the header/usage docs.Validation
bash -nclean.shellcheck -x— no new findings vsorigin/main(the only 2 infos, SC1091 on the sourced_lib.shand SC2329 on thetrap-invokedcleanup, are pre-existing).tests/e2e/test_require_live_priority_gate_unit.sh-> 7/7 green (the REQUIRE-LIVE zero-validated gate is untouched; the unit source-guard still returns cleanly before platform I/O).manifest.json(yes) and negative when google-adk is removed (no:[claude-code, codex, hermes, openclaw, seo-agent]-> wouldfail()).🤖 Generated with Claude Code
APPROVED on current head
08f77162c4.5-axis / no-regression review:
CI / all-requiredand E2E API Smoke Test are green. Governance qa/sop failures are separate token/gate wiring, not this e2e logic.APPROVED after current-head no-regression E2E review at
08f77162c4.Gating test verified fail-closed: yes. The google-adk registration check is unconditional and calls fail() if manifest.json is missing or google-adk is absent from the Create-handler runtime allowlist SSOT. With E2E_GOOGLE_API_KEY set, create/online/token/reply failures all call fail(), not bestfail(), and the final evaluate_require_live_gate exits non-zero whenever FAIL>0. Without the key, the live arm is a loud skip only; registration still runs and cannot silently pass if the runtime is dropped. No new best-effort/fail-open path was introduced.
Correctness: adds google-adk to the priority runtime dispatcher/default set and exercises the AI-Studio BYOK arm with GOOGLE_API_KEY/GEMINI_API_KEY when keyed.
Robustness/security: keyed failures are hard failures; secrets are injected only as workspace secrets and not logged. Performance: one extra keyed runtime arm, skipped when unkeyed. Readability: comments clearly distinguish platform Vertex not exercised vs BYOK AI-Studio exercised.
CI: CI/all-required and the runtime test lanes are green on this head; review/checklist governance statuses were red before this review and should be re-evaluated by their review-triggered gates.