2323
2424jobs :
2525 test :
26- runs-on : ubuntu-latest
2726 strategy :
2827 matrix :
29- python-version :
30- - " 3.7"
31- - " 3.8"
32- - " 3.9"
33- - " 3.10"
34- - " 3.11"
35- - " 3.12"
28+ os : [ ubuntu-latest, windows-latest, macos-latest ]
29+ python-version : [ "3.13" ]
3630 pydantic-version :
3731 - pydantic-v1
3832 - pydantic-v2
33+ include :
34+ - os : macos-latest
35+ python-version : " 3.8"
36+ pydantic-version : pydantic-v1
37+ - os : windows-latest
38+ python-version : " 3.9"
39+ pydantic-version : pydantic-v2
40+ - os : ubuntu-latest
41+ python-version : " 3.10"
42+ pydantic-version : pydantic-v1
43+ - os : macos-latest
44+ python-version : " 3.11"
45+ pydantic-version : pydantic-v2
46+ - os : windows-latest
47+ python-version : " 3.12"
48+ pydantic-version : pydantic-v1
49+ - os : ubuntu-latest
50+ python-version : " 3.12"
51+ pydantic-version : pydantic-v2
3952 fail-fast : false
53+ runs-on : ${{ matrix.os }}
4054 steps :
41- - uses : actions/checkout@v4
55+ - uses : actions/checkout@v5
4256 - name : Set up Python
43- uses : actions/setup-python@v5
57+ uses : actions/setup-python@v6
4458 with :
4559 python-version : ${{ matrix.python-version }}
4660 - name : Setup uv
47- uses : astral-sh/setup-uv@v5
61+ uses : astral-sh/setup-uv@v6
4862 with :
4963 version : " 0.4.15"
5064 enable-cache : true
6478 run : uv pip install --upgrade "pydantic>=1.10.0,<2.0.0"
6579 - name : Install Pydantic v2
6680 if : matrix.pydantic-version == 'pydantic-v2'
67- run : uv pip install --upgrade "pydantic>=2.0.2,<3.0.0" "typing-extensions==4.6.1"
81+ run : uv pip install --upgrade "pydantic>=2.0.2,<3.0.0"
6882 - name : Lint
69- # Do not run on Python 3.7 as mypy behaves differently
70- if : matrix.python-version != '3.7' && matrix.pydantic-version == 'pydantic-v2'
83+ if : matrix.pydantic-version == 'pydantic-v2' && matrix.python-version != '3.8'
7184 run : bash scripts/lint.sh
7285 - run : mkdir coverage
7386 - name : Test
7891 - name : Store coverage files
7992 uses : actions/upload-artifact@v4
8093 with :
81- name : coverage-${{ matrix.python-version }}-${{ matrix.pydantic-version }}
94+ name : coverage-${{ runner.os }}-${{ matrix.python-version }}-${{ matrix.pydantic-version }}
8295 path : coverage
8396 include-hidden-files : true
8497
@@ -87,20 +100,20 @@ jobs:
87100 - test
88101 runs-on : ubuntu-latest
89102 steps :
90- - uses : actions/checkout@v4
91- - uses : actions/setup-python@v5
103+ - uses : actions/checkout@v5
104+ - uses : actions/setup-python@v6
92105 with :
93- python-version : ' 3.12 '
106+ python-version : ' 3.13 '
94107 - name : Setup uv
95- uses : astral-sh/setup-uv@v5
108+ uses : astral-sh/setup-uv@v6
96109 with :
97110 version : " 0.4.15"
98111 enable-cache : true
99112 cache-dependency-glob : |
100113 requirements**.txt
101114 pyproject.toml
102115 - name : Get coverage files
103- uses : actions/download-artifact@v4
116+ uses : actions/download-artifact@v5
104117 with :
105118 pattern : coverage-*
106119 path : coverage
0 commit comments