ci: run python SDK agent e2e against a SQLite server built from source - #1350
Closed
ling-senpeng13 wants to merge 1 commit into
Closed
ci: run python SDK agent e2e against a SQLite server built from source#1350ling-senpeng13 wants to merge 1 commit into
ling-senpeng13 wants to merge 1 commit into
Conversation
Adds a `python-sdk-e2e` job to CI that boots the conductor server built from the current commit in SQLite mode (the default persistence — no external DB) and runs the released python SDK agent e2e suite against it, so a server change can't silently break the SDK before a release. - The suite + bundle come from conductor-oss/python-sdk (conductor-ai-e2e-python-<version>, pinned); fetched at runtime, sha256-verified. - The server auto-configures the openai provider from OPENAI_API_KEY (conductor.ai.openai.api-key), so no manual integration setup is needed. - Known failures are xfail-ed via an external pytest plugin (.github/agent-e2e/known_failures_plugin.py loaded with -p) + a per-repo list (known-failures-python.json). The suite is green today so the list is empty; the mechanism stays so the lane can gate while any future gap is fixed (a fixed bug XPASSes; a stale entry is a harmless no-op). - Gating. Runs on push/dispatch and on PRs touching agent-relevant paths (ai/, conductor-agentspan/, server/, core/, sqlite-persistence/, the workflow) via a detect-changes `agent` filter, to avoid spending LLM budget on unrelated PRs. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Contributor
Author
|
Superseded by #1351 — same change pushed to an internal branch so the org OPENAI_API_KEY/ANTHROPIC_API_KEY secrets are available to CI (GitHub withholds secrets from fork PRs, so this draft could never exercise the job). |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Adds a gating
python-sdk-e2ejob to CI that boots the conductor server built from this commit in SQLite mode (the default persistence — no external DB) and runs the released python SDK agent e2e suite against it. This catches server changes that would break the SDK end-to-end before a release.Why
Today nothing in this repo's CI exercises the agent SDK against a from-source server. The python SDK ships an e2e suite (
conductor-oss/python-sdk, released as theconductor-ai-e2e-python-*bundle); wiring it here means a server-side regression in the agent surface (LLM chat/complete, tools, MCP, guardrails, scheduling, …) fails CI instead of surfacing after release.How
:conductor-server:bootJarand boots it on:8080. SQLite is the default (conductor.db.type=sqlite/queue.type=sqlite/indexing.type=sqlite), so no Postgres/Redis/ES services are needed.conductor.ai.openai.api-key=${OPENAI_API_KEY:}, so setting the env var is enough — no manual integration registration.conductor-ai-e2e-python-2.0.0-rc2bundle fromconductor-oss/python-sdkat runtime, sha256-verified;run.shinstallsconductor-python[agents]==<version>and runs the full suite..github/agent-e2e/known_failures_plugin.py, loaded with-p known_failures_plugin) reading a per-repo list (.github/agent-e2e/known-failures-python.json). The suite is green against this server, so the list is empty — the mechanism stays so the lane can gate while any future gap is fixed (a fix XPASSes; a stale/mismatched entry is a harmless no-op that can't hide a regression).ai/,conductor-agentspan/,server/,core/,sqlite-persistence/, the workflow) via adetect-changesagentfilter — so unrelated PRs don't spend LLM budget.The job needs
OPENAI_API_KEY(and optionallyANTHROPIC_API_KEY) configured as a repository/organization secret. GitHub does not pass secrets to fork PRs, so this job can only run with real LLM calls on branches in this repo (or once the secret is available) — a maintainer should validate it on a branch. The bundle version pin (2.0.0-rc2) should be bumped deliberately as new python-sdk releases cut their e2e bundles.