Skip to content

[NA] [GHA] ci: trim genai/adk test matrix to reduce Vertex AI 429s#7403

Closed
alexkuzmik wants to merge 1 commit into
mainfrom
aliaksandrk/NA-trim-genai-adk-python-matrix
Closed

[NA] [GHA] ci: trim genai/adk test matrix to reduce Vertex AI 429s#7403
alexkuzmik wants to merge 1 commit into
mainfrom
aliaksandrk/NA-trim-genai-adk-python-matrix

Conversation

@alexkuzmik

Copy link
Copy Markdown
Collaborator

Details

The GenAI and ADK integration suites make live Vertex AI calls against the shared opik-sdk-tests GCP project. Expanding the full 3.10–3.14 matrix (five jobs per suite, and the two suites run concurrently) re-multiplied those live calls and tripped 429 RESOURCE_EXHAUSTED on the shared project's quota — surfacing as flaky failures unrelated to the code under test.

  • lib-genai-tests.yml / lib-adk-tests.yml: run only the oldest and newest supported Python versions (3.10, 3.14) instead of the full vars.PYTHON_VERSIONS list.
  • Cuts sustained live-request volume ~60% while still exercising the compat endpoints where version-specific breakage would show. The existing max-parallel: 2 concurrency cap is kept.

Change checklist

  • User facing
  • Documentation update

Issues

  • N/A — CI flakiness mitigation (Vertex AI 429 quota); no tracking ticket.

AI-WATERMARK

AI-WATERMARK: yes

  • Tools: Claude Code
  • Model(s): Claude Opus 4.8 (1M context)
  • Scope: full implementation
  • Human verification: reviewed diff; CI is the real validation

Testing

  • python -c "import yaml; ..." on both workflow files → they parse and resolve python_version to ['3.10', '3.14'].
  • Behavioral validation is CI itself: the genai and adk lanes now schedule 2 jobs each instead of 5.

Not applicable: no library code changed, so no unit/integration tests were run locally.

Documentation

N/A — CI-only change, no user-facing or API surface.

The GenAI and ADK integration suites make live Vertex AI calls against the
shared opik-sdk-tests GCP project. Expanding the full 3.10-3.14 matrix (five
jobs per suite, two suites running concurrently) re-multiplied those calls and
tripped 429 RESOURCE_EXHAUSTED on the shared project's quota.

Run only the oldest and newest supported Python versions (3.10, 3.14) for both
suites. This still catches version-specific breakage at the compat endpoints
while cutting the sustained live-request volume ~60%. The existing max-parallel
concurrency cap is kept.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@github-actions

github-actions Bot commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

⏱️ pre-commit per-hook timing

Hook Description Result Duration
☕ spotless — java backend Format Java code 3.60s
⚙️ actionlint — github workflows Lint GitHub Actions workflows 0.59s
Total (2 ran) 4.19s
⏭️ 39 skipped (no matching files changed)
Hook Description Result
🐍 trim trailing whitespace — python sdk Strip trailing whitespace ⏭️
🐍 fix end of files — python sdk Ensure files end in a newline ⏭️
🐍 ruff — python sdk Lint + autofix Python (ruff) ⏭️
🐍 ruff-format — python sdk Format Python code (ruff) ⏭️
🐍 mypy — python sdk Static type check ⏭️
🤖 trim trailing whitespace — optimizer Strip trailing whitespace ⏭️
🤖 fix end of files — optimizer Ensure files end in a newline ⏭️
🤖 check yaml — optimizer Validate YAML syntax ⏭️
🤖 check json — optimizer Validate JSON syntax ⏭️
🤖 check toml — optimizer Validate TOML syntax ⏭️
🤖 check for added large files — optimizer Block large files (>1MB) ⏭️
🔐 detect private key — optimizer Block committed private keys ⏭️
🤖 check for merge conflicts — optimizer Block merge-conflict markers ⏭️
🤖 check for case conflicts — optimizer Block case-only name clashes ⏭️
🤖 pyupgrade — optimizer Modernize Python syntax ⏭️
🤖 ruff — optimizer Lint + autofix Python (ruff) ⏭️
🤖 ruff-format — optimizer Format Python code (ruff) ⏭️
🤖 mypy — optimizer Static type check ⏭️
📓 nbstripout — optimizer notebooks Strip notebook output ⏭️
📝 markdownlint — optimizer Lint Markdown ⏭️
🔤 codespell — optimizer Fix common misspellings ⏭️
📊 radon cc — optimizer Cyclomatic-complexity gate ⏭️
📊 radon raw — optimizer Raw size metrics gate ⏭️
📊 xenon — optimizer Fail on complexity thresholds ⏭️
📊 lizard — optimizer Cyclomatic-complexity gate ⏭️
🧹 vulture — optimizer Find dead code ⏭️
🛡️ trim trailing whitespace — guardrails Strip trailing whitespace ⏭️
🛡️ fix end of files — guardrails Ensure files end in a newline ⏭️
🛡️ ruff — guardrails Lint + autofix Python (ruff) ⏭️
🛡️ ruff-format — guardrails Format Python code (ruff) ⏭️
🛡️ mypy — guardrails Static type check ⏭️
⚓ helm-docs Regenerate Helm chart README ⏭️
block non-public FE plugins Block non-public FE plugins ⏭️
🧪 pre-commit wrapper smoke tests Self-test the wrapper scripts ⏭️
🌐 eslint — frontend Lint + autofix JS/TS ⏭️
🌐 typecheck — frontend Whole-project tsc type check ⏭️
📘 eslint — typescript sdk Lint + autofix JS/TS ⏭️
📘 typecheck — typescript sdk Whole-project tsc type check ⏭️
🐳 hadolint — dockerfiles Lint Dockerfiles ⏭️

Comment on lines +38 to +41
# full 3.10-3.14 matrix re-multiplied those calls into 429
# RESOURCE_EXHAUSTED, so we run only the oldest and newest supported
# Python versions — enough to catch version-specific breakage at a
# fraction of the request volume — and keep the concurrency cap.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Duplicated Vertex AI matrix config

The strategy block for the Vertex AI suites is duplicated in lib-adk-tests.yml, so any matrix or max-parallel: 2 change has to be updated in two places and one suite can drift into lost coverage or 429s — should we extract it into a reusable workflow call or YAML anchor?

Severity

Want Baz to fix this for you? Activate Fixer

@alexkuzmik

Copy link
Copy Markdown
Collaborator Author

Superseded by #7405, which folds this matrix trim together with the Sonnet model switch and the removal of the broken genai rate-limit retry code.

@alexkuzmik alexkuzmik closed this Jul 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant