ci: add harness integration CI for the four agent CLIs - #596
omkargaikwad23 wants to merge 23 commits into
Conversation
|
/gcbrun |
…del versions and environment settings
…e redundant config comments
…ount it to harness containers
…ividual harness tasks
…che strategy to push on failure
Updated the OpenAI API key secret version to 'latest'.
Updated the version of the OpenAI API key secret in the configuration file.
…ud SQL smoke test conversation plan
Out of scope for the CI harness smoke test PR.
… telemetry values in verify_harness.py
|
/gcbrun |
1 similar comment
|
/gcbrun |
…rameterized YAML file using environment variables
|
/gcbrun |
|
/gcbrun |
|
Lets write a design document on this first. |
| @@ -0,0 +1,23 @@ | |||
| claude_code_version: "@anthropic-ai/claude-code@2.1.85" | |||
There was a problem hiding this comment.
check against latest
| GOOGLE_CLOUD_LOCATION: "us-central1" | ||
|
|
||
| setup: | ||
| mcp_servers: |
There was a problem hiding this comment.
we should test for skills as well
There was a problem hiding this comment.
That would be covered in followup CL (I have already added a note in PR description)
Thanks for reviewing the changes! |
|
/gcbrun |
Summary
Adds
.ci/— a Cloud Build pipeline running integration smoke tests for all four agent CLIs (agy,Claude Code,Codex,Gemini) against the real Cloud SQL Admin MCP endpoint. Existing coverage relies on unit tests with mocked subprocesses, which cannot catch CLI flag changes, self-updates, or output format shifts.Key Design Choices
<server>__<tool>viatool_naming.py, and a parameterized run config keyed byCI_HARNESSso results remain comparable across harnesses.allowFailureso failures in one CLI do not cancel the others.agyuses a service-account key fetched from Secret Manager to carryquota_project_id; the other three CLIs authenticate via build credentials.@latestandagyself-updates, so the build surfaces version drift as it ships rather than when a pin is bumped.Verification Gate (
verify_harness.py)Because
evalbench.eval()exits 0 on run completion,verify_harness.pyenforces a two-tier evaluation gate:trajectory_matcher> 00.0insidecomparison_logsinstead of raising an error. Gatingtrajectory_matcher > 0verifies that expected MCP tools were actually invoked rather than falling back to shell execution.Test Plan
verify_harness.pyagainst synthetic results (healthy passes, Tier 1 at 0 fails, judges at 0 pass).${...}reaches agent).verify-harnesses) and confirmed execution across all harnesses.