Skip to content

Commit a875246

Browse files
committed
Tolerate unimportable framework in live job
1 parent b644591 commit a875246

2 files changed

Lines changed: 22 additions & 1 deletion

File tree

‎.github/workflows/integrations-live.yml‎

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,4 +62,18 @@ jobs:
6262
run: uv sync --extra dev --extra ${{ matrix.extra }}
6363

6464
- name: Live integration test
65-
run: uv run pytest -q -m requires_integrations ${{ matrix.test }}
65+
run: |
66+
set +e
67+
uv run pytest -q -m requires_integrations ${{ matrix.test }}
68+
rc=$?
69+
set -e
70+
# Exit 5 = pytest collected nothing because the module self-skipped:
71+
# the framework installed but is unimportable under our pinned deps
72+
# (e.g. an upstream release incompatible with our Pydantic v2). That is
73+
# an upstream conflict, not an Unplug regression — surface it loudly but
74+
# don't block. Real test failures (exit 1) still fail the job.
75+
if [ "$rc" -eq 5 ]; then
76+
echo "::warning title=Live integration skipped::${{ matrix.extra }} installed but its live tests were skipped (framework unimportable under current deps). Tolerated; not blocking."
77+
exit 0
78+
fi
79+
exit $rc

‎sdk/integrations/TESTING.md‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,13 @@ uv run pytest -q -m requires_integrations tests/optional/live/
102102
> Unplug guard's decision (block on injection / destructive tool, allow benign), so they stay
103103
> hermetic and need no API keys.
104104
105+
**Tolerated skips.** Each leg installs its framework, so a test that runs and fails is a real
106+
regression. But some optional frameworks ship releases that are unimportable under our pinned
107+
core deps (e.g. a `semantic-kernel` build that imports `Url` from `pydantic.networks`, removed
108+
in Pydantic v2). When that happens the module `importorskip`s, pytest exits `5` ("no tests
109+
ran"), and the job emits a non-blocking `::warning::` rather than failing — that is an upstream
110+
conflict, not an Unplug bug. Genuine test failures (exit `1`) still fail the job.
111+
105112
## CI markers
106113

107114
| Marker | When |

0 commit comments

Comments
 (0)