Move docs to the repo root #114
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
| name: Integrations (live) | |
| # Live agent-framework coverage. Each matrix leg installs ONE framework extra in an | |
| # isolated env and runs that framework's live test, so a single SDK's dependency tree | |
| # can't mask or break another. Kept off the default PR gate (the core CI matrix no | |
| # longer installs agent frameworks — see `all` extra in pyproject.toml); runs on PRs | |
| # that touch the integration surface, nightly, and on demand. | |
| on: | |
| pull_request: | |
| branches: [dev] | |
| paths: | |
| - "sdk/src/unplug/integrations/**" | |
| - "sdk/tests/optional/live/**" | |
| - "sdk/pyproject.toml" | |
| - ".github/workflows/integrations-live.yml" | |
| schedule: | |
| - cron: "0 6 * * *" | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| jobs: | |
| live: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - extra: langgraph | |
| test: tests/optional/live/test_langgraph_live.py | |
| - extra: agno | |
| test: tests/optional/live/test_agno_live.py | |
| - extra: crewai | |
| test: tests/optional/live/test_crewai_live.py | |
| - extra: autogen | |
| test: tests/optional/live/test_autogen_live.py | |
| - extra: llama-index | |
| test: tests/optional/live/test_llama_index_live.py | |
| - extra: pydantic-ai | |
| test: tests/optional/live/test_pydantic_ai_live.py | |
| - extra: semantic-kernel | |
| test: tests/optional/live/test_semantic_kernel_live.py | |
| - extra: openai-agents | |
| test: tests/optional/live/test_openai_agents_live.py | |
| - extra: langchain | |
| test: tests/optional/live/test_langchain_live.py | |
| - extra: google-adk | |
| test: tests/optional/live/test_google_adk_live.py | |
| - extra: smolagents | |
| test: tests/optional/live/test_smolagents_live.py | |
| - extra: dspy | |
| test: tests/optional/live/test_dspy_live.py | |
| - extra: strands | |
| test: tests/optional/live/test_strands_live.py | |
| - extra: letta | |
| test: tests/optional/live/test_letta_live.py | |
| - extra: griptape | |
| test: tests/optional/live/test_griptape_live.py | |
| - extra: ag2 | |
| test: tests/optional/live/test_ag2_live.py | |
| - extra: atomic-agents | |
| test: tests/optional/live/test_atomic_agents_live.py | |
| name: live (${{ matrix.extra }}) | |
| defaults: | |
| run: | |
| working-directory: sdk | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v6 | |
| - uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1 | |
| with: | |
| enable-cache: true | |
| version: "0.6.14" | |
| - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 | |
| with: | |
| python-version: "3.12" | |
| - name: Install (fresh per-framework resolution — matches `pip install "unplug-ai[extra]"`) | |
| # Deliberately NOT `uv sync` from the unified lock: that lock co-resolves | |
| # every extra together and pins some frameworks down to old, broken | |
| # releases (e.g. semantic-kernel 1.15, which imports `Url` from | |
| # `pydantic.networks` — gone in Pydantic v2). A user never installs all | |
| # frameworks at once; they run `pip install "unplug-ai[langgraph]"`, which | |
| # resolves that one framework freshly. We mirror that here. | |
| run: | | |
| uv venv | |
| # Framework extra freshly resolved; pytest via dependency-group (not a PyPI extra). | |
| uv pip install -e ".[${{ matrix.extra }}]" --group dev | |
| - name: Live integration test | |
| run: | | |
| set +e | |
| .venv/bin/python -m pytest -q -m requires_integrations ${{ matrix.test }} | |
| rc=$? | |
| set -e | |
| # Exit 5 = the module self-skipped: the framework is unimportable even | |
| # under a fresh resolution (a genuine upstream break). Surface it loudly | |
| # but don't block the release. Real test failures (exit 1) still fail. | |
| if [ "$rc" -eq 5 ]; then | |
| echo "::warning title=Live integration skipped::${{ matrix.extra }} installed but its live tests were skipped (framework unimportable under a fresh resolution). Tolerated; not blocking." | |
| exit 0 | |
| fi | |
| exit $rc |