ci: add Python server integration-test and happy-path workflow#120
Merged
damaz91 merged 5 commits intoJul 16, 2026
Merged
Conversation
This was referenced Jul 7, 2026
damaz91
self-requested a review
July 10, 2026 14:38
vishkaty
force-pushed
the
ci/python-server-tests
branch
from
July 13, 2026 16:04
c8d7a6c to
c78f1ab
Compare
8 tasks
Contributor
Path-filter push/pull_request triggers to rest/python/** and the workflow file itself, matching the path-filtered shape of the Node.js workflow proposed in Universal-Commerce-Protocol#126, so unrelated changes do not spend CI minutes booting the Python server.
Follows samples#131: the server's pyproject now resolves ucp-sdk from pip, so the workflow no longer checks out the python-sdk repo (and no longer needs the nested checkout path that made the editable ../python-sdk reference work). CI exercises the same released SDK a user installs; catching SDK-main drift is python-sdk CI's job, not this workflow's.
vishkaty
force-pushed
the
ci/python-server-tests
branch
from
July 15, 2026 16:44
c78f1ab to
73f29fc
Compare
Contributor
Author
|
Reworked per #131 — the workflow now installs ucp-sdk from pip: dropped the python-sdk checkout step and the nested checkout path it required. Verified every step locally end-to-end on ucp-sdk 0.4.3 (server pytest suite + DB init + server boot + happy-path client all green). Thanks for the heads-up @damaz91. |
…client This allows the CI workflow to rely on the exit status of the client instead of grepping the logs for success. Simplified the workflow step accordingly.
damaz91
approved these changes
Jul 16, 2026
carolinerg1
approved these changes
Jul 16, 2026
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.
Follow-up to #118. CI today is lint-only: nothing installs the Python server's dependencies, boots it, or runs the integration tests that already exist at
rest/python/server/integration_test.py— so incompatibilities like #118 (the server on main cannot import against python-sdk@main since python-sdk#48) stay invisible until a newcomer follows the README and hits the ImportError.This adds a workflow that exercises the documented paths end-to-end on every PR/push:
uv syncforrest/python/server(with thepython-sdksibling checkout the editable path dependency expects, pinned to the last compatible commitf54858e; the pin comment documents why and how to bump);rest/python/test_data/flower_shopper the server README;/.well-known/ucpfor readiness;Had this workflow existed, it would have turned red the day python-sdk#48 merged — exactly the early signal #118 asks for.
Verification: full local dry-run of every step, plus the identical workflow running green in my fork: https://github.com/vishkaty/samples/actions/runs/28898090014
Scope notes
pyproject.tomlor the README here. The complementary fix for the human setup path (pinning the dependency itself, per Python server won't start when following the README: samples main is incompatible with python-sdk main (ap2_mandate.Checkout removed in sdk #48) #118) is a small follow-up I'm happy to make in whichever direction you prefer (pinned git rev vs released PyPI version).rest/pythononly; the nodejs sample and a2a could get sibling jobs as follow-ups.