@@ -300,6 +300,49 @@ jobs:
300300 - name : Run cattrs tests
301301 run : cd cattrs; pdm run pytest tests
302302
303+ sqlalchemy :
304+ name : sqlalchemy tests
305+ needs : skip-schedule-on-fork
306+ strategy :
307+ fail-fast : false
308+ matrix :
309+ # PyPy is deliberately omitted here, since SQLAlchemy's tests
310+ # fail on PyPy for reasons unrelated to typing_extensions.
311+ python-version : [ "3.9", "3.10", "3.11", "3.12", "3.13" ]
312+ # sqlalchemy tests fail when using the Ubuntu 24.04 runner
313+ # https://github.com/sqlalchemy/sqlalchemy/commit/8d73205f352e68c6603e90494494ef21027ec68f
314+ runs-on : ubuntu-22.04
315+ timeout-minutes : 60
316+ steps :
317+ - name : Setup Python
318+ uses : actions/setup-python@v5
319+ with :
320+ python-version : ${{ matrix.python-version }}
321+ allow-prereleases : true
322+ - name : Install uv
323+ run : curl -LsSf https://astral.sh/uv/install.sh | sh
324+ - name : Checkout sqlalchemy
325+ run : git clone --depth=1 https://github.com/sqlalchemy/sqlalchemy.git || git clone --depth=1 https://github.com/sqlalchemy/sqlalchemy.git
326+ - name : Checkout typing_extensions
327+ uses : actions/checkout@v4
328+ with :
329+ path : typing-extensions-latest
330+ - name : Install test dependencies
331+ run : |
332+ cd sqlalchemy
333+ uv add --editable ../typing-extensions-latest
334+ uv add tox setuptools
335+ uv sync
336+ - name : List installed dependencies
337+ # Note: additional dependencies are installed when running tox below
338+ run : cd sqlalchemy; uv pip list
339+ - name : Run sqlalchemy tests
340+ run : |
341+ cd sqlalchemy
342+ uv run tox -e github-nocext -- -q --nomemory --notimingintensive
343+ env :
344+ TOX_WORKERS : -n4
345+
303346 create-issue-on-failure :
304347 name : Create an issue if daily tests failed
305348 runs-on : ubuntu-latest
@@ -312,6 +355,7 @@ jobs:
312355 - typed-argument-parser
313356 - mypy
314357 - cattrs
358+ - sqlalchemy
315359
316360 if : >-
317361 ${{
@@ -326,6 +370,7 @@ jobs:
326370 || needs.typed-argument-parser.result == 'failure'
327371 || needs.mypy.result == 'failure'
328372 || needs.cattrs.result == 'failure'
373+ || needs.sqlalchemy.result == 'failure'
329374 )
330375 }}
331376
0 commit comments