Skip to content

ci: GitHub Actions CI/CD (lint, types, tests, multimodal + token/usage, secret scan)#17

Merged
Khurdhula-Harshavardhan merged 4 commits into
mainfrom
ci/github-actions
Jul 22, 2026
Merged

ci: GitHub Actions CI/CD (lint, types, tests, multimodal + token/usage, secret scan)#17
Khurdhula-Harshavardhan merged 4 commits into
mainfrom
ci/github-actions

Conversation

@Abhinavexist

Copy link
Copy Markdown
Collaborator

Adds CI/CD for the SDK.

ci.yml — runs on push to main and every PR

  • Lintruff check (src/tests/scripts)
  • Typesmypy --strict
  • Unit testspytest across a Python 3.9–3.13 matrix
  • Secret/token scangitleaks over the working tree (fails on any leaked key/token; verified clean locally)

qa-live.yml — end-to-end against the real Interfaze API

Gated: workflow_dispatch + weekly schedule, using the INTERFAZE_API_KEY repo secret (never on PRs — secrets aren't available to forks and it hits the live API). Runs scripts/qa_live.py, which covers text, structured output, json_object fence, tools, streaming/reasoning, precontext, guardrails, every task, the full multimodal input matrix (image / pdf / audio / video, URL and base64), and now token/usage.

Coverage this PR adds (so CI genuinely exercises the asks)

  • Multimodalities: unit tests for the video and base64-image input builders (image/file/audio already covered); the live matrix covers real image/pdf/audio/video URL+base64.
  • Token checks: a mocked unit test asserting usage (prompt_tokens/completion_tokens/total_tokens) is surfaced, plus a live token usage assertion in qa_live.py. And gitleaks guards against leaked auth tokens.

Unit suite: 27 passing; ruff + mypy --strict clean.

Notes / follow-ups

@Khurdhula-Harshavardhan Khurdhula-Harshavardhan left a comment

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.

please help resolve the following.

@Khurdhula-Harshavardhan Khurdhula-Harshavardhan left a comment

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.

please help resolve the following.

Comment thread .github/workflows/ci.yml
@Abhinavexist

Copy link
Copy Markdown
Collaborator Author

Bumped requires-python to >=3.9 in cfe48f0 (openai 2.x dropped 3.8). Note the CI matrix is 3.10–3.13 (the langchain extra is gated >=3.10), so 3.9 core support is declared but not CI-exercised — say the word if you'd like a core-only 3.9 leg.

@Abhinavexist

Copy link
Copy Markdown
Collaborator Author

Update: added a core-only py3.9 leg in 0b53faa, so >=3.9 is now actually CI-exercised (not just declared). It installs --extra dev (langchain-openai is marker-gated >=3.10, so it's skipped and its tests no-op); mypy stays on the 3.12 leg with --all-extras.

Locally exercised 3.9 first across the risky surfaces before wiring it up:

@Khurdhula-Harshavardhan
Khurdhula-Harshavardhan merged commit 1ef5fa1 into main Jul 22, 2026
6 checks passed
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.

2 participants