mirror of
https://github.com/supermemoryai/supermemory.git
synced 2026-09-06 08:16:03 +00:00
ci: run the Python SDK test suites on pull requests
The Python packages ship real test suites that nothing executes. `ci.yml` only covers TypeScript (Bun, turbo check-types, Biome), and the publish-*-python workflows publish to PyPI without running any tests, so these packages are released on the strength of local runs alone. Adds a path-filtered workflow covering the three packages whose suites currently pass: - agent-framework-python installs the package and runs pytest (54 tests) - cartesia-sdk-python and pipecat-sdk-python stub their heavy runtime dependencies at import time, so they run under unittest against the sources with nothing installed Python 3.10 is the lowest version these packages declare, so a change that only works on a newer interpreter fails here. `fail-fast` is disabled so one package failing still reports the others. openai-sdk-python is deliberately left out: its suite cannot be collected against current supermemory, which is issue #1235. It should be added here once that is fixed.
This commit is contained in:
parent
570ed22b6c
commit
e6f64c03d1
1 changed files with 56 additions and 0 deletions
56
.github/workflows/ci-python.yml
vendored
Normal file
56
.github/workflows/ci-python.yml
vendored
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
name: CI - Python SDK Tests
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
paths:
|
||||
- "packages/agent-framework-python/**"
|
||||
- "packages/cartesia-sdk-python/**"
|
||||
- "packages/pipecat-sdk-python/**"
|
||||
- ".github/workflows/ci-python.yml"
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
test:
|
||||
name: ${{ matrix.package }}
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 15
|
||||
strategy:
|
||||
# Report every package, rather than masking the rest behind the first failure.
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
# Has a pytest suite and needs its runtime dependencies installed.
|
||||
- package: agent-framework-python
|
||||
install: pip install -e . pytest pytest-asyncio
|
||||
test: pytest
|
||||
# These suites stub their heavy runtime dependencies (cartesia-line,
|
||||
# pipecat-ai, loguru) at import time, so they run against the sources
|
||||
# with nothing installed and need no install step.
|
||||
- package: cartesia-sdk-python
|
||||
test: PYTHONPATH=src python -m unittest discover -s tests -v
|
||||
- package: pipecat-sdk-python
|
||||
test: PYTHONPATH=src python -m unittest discover -s tests -v
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Setup Python
|
||||
uses: actions/setup-python@v5
|
||||
with:
|
||||
# The lowest version these packages declare support for, so a change
|
||||
# that only works on newer Python is caught here.
|
||||
python-version: "3.10"
|
||||
cache: pip
|
||||
cache-dependency-path: packages/${{ matrix.package }}/pyproject.toml
|
||||
|
||||
- name: Install dependencies
|
||||
if: matrix.install
|
||||
working-directory: packages/${{ matrix.package }}
|
||||
run: ${{ matrix.install }}
|
||||
|
||||
- name: Run tests
|
||||
working-directory: packages/${{ matrix.package }}
|
||||
run: ${{ matrix.test }}
|
||||
Loading…
Add table
Reference in a new issue