@@ -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+ checkout-ref : [ "main", "rel_2_0" ]
313+ # sqlalchemy tests fail when using the Ubuntu 24.04 runner
314+ # https://github.com/sqlalchemy/sqlalchemy/commit/8d73205f352e68c6603e90494494ef21027ec68f
315+ runs-on : ubuntu-22.04
316+ timeout-minutes : 60
317+ steps :
318+ - name : Setup Python
319+ uses : actions/setup-python@v5
320+ with :
321+ python-version : ${{ matrix.python-version }}
322+ allow-prereleases : true
323+ - name : Install uv
324+ run : curl -LsSf https://astral.sh/uv/install.sh | sh
325+ - name : Checkout sqlalchemy
326+ run : git clone -b ${{ matrix.checkout-ref }} --depth=1 https://github.com/sqlalchemy/sqlalchemy.git || git clone -b ${{ matrix.checkout-ref }} --depth=1 https://github.com/sqlalchemy/sqlalchemy.git
327+ - name : Checkout typing_extensions
328+ uses : actions/checkout@v4
329+ with :
330+ path : typing-extensions-latest
331+ - name : Install sqlalchemy test dependencies
332+ run : uv pip install --system tox setuptools
333+ - name : List installed dependencies
334+ # Note: tox installs SQLAlchemy and its dependencies in a different isolated
335+ # environment before running the tests. To see the dependencies installed
336+ # in the test environment, look for the line 'freeze> python -m pip freeze --all'
337+ # in the output of the test step below.
338+ run : uv pip list
339+ - name : Run sqlalchemy tests
340+ run : |
341+ cd sqlalchemy
342+ tox -e github-nocext \
343+ --force-dep "typing-extensions @ file://$(pwd)/../typing-extensions-latest" \
344+ -- -q --nomemory --notimingintensive
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