Skip to content

Commit 28146d0

Browse files
committed
update CI test matrix
1 parent 22af0a0 commit 28146d0

File tree

2 files changed

+149
-50
lines changed

2 files changed

+149
-50
lines changed

.github/workflows/test.yml

Lines changed: 142 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,20 @@ jobs:
1515
POSTGRES_PORT: 5432
1616
strategy:
1717
matrix:
18-
python-version: ['3.8', '3.9', '3.10', '3.11', '3.12']
18+
python-version: ['3.8', '3.9', '3.10', '3.11', '3.12', '3.13.0-rc.1']
1919
postgres-version: ['9.6', '12', 'latest']
2020
psycopg-version: ['psycopg2', 'psycopg3']
2121
django-version:
2222
- '3.2' # LTS April 2024
2323
- '4.2' # LTS April 2026
2424
- '5.0' # April 2025
25+
- '5.1' # December 2025
26+
drf-version:
27+
- '3.14'
28+
- '3.15'
29+
filter-version:
30+
- '23.5'
31+
- '24.0'
2532
exclude:
2633
- django-version: '4.2'
2734
postgres-version: '9.6'
@@ -41,6 +48,35 @@ jobs:
4148
django-version: '5.0'
4249
- django-version: '3.2'
4350
postgres-version: 'latest'
51+
52+
- python-version: '3.8'
53+
django-version: '5.1'
54+
- python-version: '3.9'
55+
django-version: '5.1'
56+
- python-version: '3.13.0-rc.1'
57+
django-version: '3.2'
58+
- python-version: '3.13.0-rc.1'
59+
django-version: '4.2'
60+
- python-version: '3.13.0-rc.1'
61+
django-version: '5.0'
62+
63+
- django-version: '3.2'
64+
drf-version: '3.15'
65+
- django-version: '4.2'
66+
drf-version: '3.14'
67+
- django-version: '5.0'
68+
drf-version: '3.14'
69+
- django-version: '5.1'
70+
drf-version: '3.14'
71+
72+
- django-version: '3.2'
73+
filter-version: '24.0'
74+
- django-version: '4.2'
75+
filter-version: '23.5'
76+
- django-version: '5.0'
77+
filter-version: '23.5'
78+
- django-version: '5.1'
79+
filter-version: '23.5'
4480

4581
# Service containers to run with `runner-job`
4682
services:
@@ -77,15 +113,16 @@ jobs:
77113
run: |
78114
poetry config virtualenvs.in-project true
79115
poetry run pip install --upgrade pip
80-
poetry install --with ${{ matrix.psycopg-version }}
81-
poetry run pip install -U "Django~=${{ matrix.django-version }}"
116+
poetry add django@^${{ matrix.django-version }}
117+
poetry add django-filter@^${{ matrix.filter-version }}
118+
poetry add djangorestframework@^${{ matrix.drf-version }}
119+
poetry install --no-interaction --with ${{ matrix.psycopg-version }}
82120
- name: No Optional Dependency Unit Tests
83121
run: |
84122
poetry run pytest --cov-append
85123
- name: Install enum-properties
86124
run: |
87125
poetry install -E properties
88-
poetry run pip install -U "Django~=${{ matrix.django-version }}"
89126
- name: Unit Tests w/ enum-properties
90127
run: |
91128
poetry run pytest --cov-append
@@ -95,26 +132,18 @@ jobs:
95132
- name: Install djangorestframework
96133
run: |
97134
poetry install -E djangorestframework
98-
poetry run pip install -U "Django~=${{ matrix.django-version }}"
99135
- name: Run Unit Tests w/ djangorestframework
100136
run: |
101137
poetry run pytest --cov-append
102138
- name: Install django-filters
103139
run: |
104140
poetry install -E filters
105-
poetry run pip install -U "Django~=${{ matrix.django-version }}"
106-
- name: Conditionally Install django-filter
107-
run: |
108-
if [ $(echo "${{ matrix.django-version }}" | awk '{print ($1 < 4.2)}') -eq 1 ]; then
109-
poetry run pip install -U "django-filter~=23.5"
110-
fi
111141
- name: Run Unit Tests w/ django-filter
112142
run: |
113143
poetry run pytest --cov-append
114144
- name: Install all deps
115145
run: |
116146
poetry install -E all
117-
poetry run pip install -U "Django~=${{ matrix.django-version }}"
118147
- name: Run Full Unit Tests
119148
run: |
120149
poetry run pytest --cov-append
@@ -135,12 +164,30 @@ jobs:
135164
django-version:
136165
- '3.2' # LTS April 2024
137166
- '4.2' # LTS April 2026
138-
- '5.0' # LTS April 2026
167+
- '5.1' # December 2025
168+
drf-version:
169+
- '3.14'
170+
- '3.15'
171+
filter-version:
172+
- '23.5'
173+
- '24.0'
139174
exclude:
140175
- python-version: '3.8'
141-
django-version: '5.0'
176+
django-version: '5.1'
142177
- python-version: '3.12'
143178
django-version: '3.2'
179+
- djang-version: '3.2'
180+
drf-version: '3.15'
181+
- djang-version: '3.2'
182+
filter-version: '24.0'
183+
- djang-version: '4.2'
184+
drf-version: '3.14'
185+
- djang-version: '4.2'
186+
filter-version: '23.5'
187+
- djang-version: '5.1'
188+
drf-version: '3.14'
189+
- djang-version: '5.1'
190+
filter-version: '23.5'
144191

145192
steps:
146193
- uses: actions/checkout@v4
@@ -158,8 +205,10 @@ jobs:
158205
run: |
159206
poetry config virtualenvs.in-project true
160207
poetry run pip install --upgrade pip
161-
poetry install -E all
162-
poetry run pip install -U "Django~=${{ matrix.django-version }}"
208+
poetry add django@^${{ matrix.django-version }}
209+
poetry add django-filter@^${{ matrix.filter-version }}
210+
poetry add djangorestframework@^${{ matrix.drf-version }}
211+
poetry install --no-interaction -E all
163212
- name: Run Full Unit Tests
164213
run: |
165214
poetry run pytest
@@ -176,25 +225,44 @@ jobs:
176225
django-version:
177226
- '3.2' # LTS April 2024
178227
- '4.2' # LTS April 2026
179-
- '5.0' # April 2025
228+
- '5.1' # December 2025
229+
drf-version:
230+
- '3.14'
231+
- '3.15'
232+
filter-version:
233+
- '23.5'
234+
- '24.0'
180235
exclude:
181236
- python-version: '3.12'
182237
django-version: '3.2'
183238
- python-version: '3.8'
184-
django-version: '5.0'
239+
django-version: '5.1'
185240

186241
- django-version: '3.2'
187242
mysql-version: 'latest'
188243
- django-version: '4.2'
189244
mysql-version: '5.7'
190-
- django-version: '5.0'
245+
- django-version: '5.1'
191246
mysql-version: '5.7'
192247

193248
- mysql-version: '5.7'
194249
mysqlclient-version: ''
195250
- mysql-version: 'latest'
196251
mysqlclient-version: '1.4.3'
197252

253+
- djang-version: '3.2'
254+
drf-version: '3.15'
255+
- djang-version: '3.2'
256+
filter-version: '24.0'
257+
- djang-version: '4.2'
258+
drf-version: '3.14'
259+
- djang-version: '4.2'
260+
filter-version: '23.5'
261+
- djang-version: '5.1'
262+
drf-version: '3.14'
263+
- djang-version: '5.1'
264+
filter-version: '23.5'
265+
198266
services:
199267
mysql:
200268
# Docker Hub image
@@ -229,8 +297,10 @@ jobs:
229297
run: |
230298
poetry config virtualenvs.in-project true
231299
poetry run pip install --upgrade pip
300+
poetry add django@^${{ matrix.django-version }}
301+
poetry add django-filter@^${{ matrix.filter-version }}
302+
poetry add djangorestframework@^${{ matrix.drf-version }}
232303
poetry install -E all --with mysql
233-
poetry run pip install -U "Django~=${{ matrix.django-version }}"
234304
- name: Install mysqlclient if needed
235305
if: ${{ matrix.mysqlclient-version != '' }}
236306
run: poetry run pip install -U mysqlclient=="${{ matrix.mysqlclient-version }}"
@@ -253,18 +323,24 @@ jobs:
253323
django-version:
254324
- '3.2' # LTS April 2024
255325
- '4.2' # LTS April 2026
256-
- '5.0' # April 2025
326+
- '5.1' # December 2025
327+
drf-version:
328+
- '3.14'
329+
- '3.15'
330+
filter-version:
331+
- '23.5'
332+
- '24.0'
257333
exclude:
258334
- python-version: '3.12'
259335
django-version: '3.2'
260336
- python-version: '3.8'
261-
django-version: '5.0'
337+
django-version: '5.1'
262338

263339
- django-version: '3.2'
264340
mariadb-version: 'latest'
265341
- django-version: '4.2'
266342
mariadb-version: '10.2'
267-
- django-version: '5.0'
343+
- django-version: '5.1'
268344
mariadb-version: '10.2'
269345

270346
- mariadb-version: '10.2'
@@ -277,6 +353,19 @@ jobs:
277353
- mariadb-version: '10.2'
278354
mariadb-healthcheck: "healthcheck.sh --connect --innodb_initialized"
279355

356+
- djang-version: '3.2'
357+
drf-version: '3.15'
358+
- djang-version: '3.2'
359+
filter-version: '24.0'
360+
- djang-version: '4.2'
361+
drf-version: '3.14'
362+
- djang-version: '4.2'
363+
filter-version: '23.5'
364+
- djang-version: '5.1'
365+
drf-version: '3.14'
366+
- djang-version: '5.1'
367+
filter-version: '23.5'
368+
280369
services:
281370
mysql:
282371
# Docker Hub image
@@ -311,8 +400,10 @@ jobs:
311400
run: |
312401
poetry config virtualenvs.in-project true
313402
poetry run pip install --upgrade pip
403+
poetry add django@^${{ matrix.django-version }}
404+
poetry add django-filter@^${{ matrix.filter-version }}
405+
poetry add djangorestframework@^${{ matrix.drf-version }}
314406
poetry install -E all --with mysql
315-
poetry run pip install -U "Django~=${{ matrix.django-version }}"
316407
- name: Install mysqlclient if needed
317408
if: ${{ matrix.mysqlclient-version != '' }}
318409
run: poetry run pip install -U mysqlclient=="${{ matrix.mysqlclient-version }}"
@@ -330,15 +421,21 @@ jobs:
330421
django-version:
331422
- '3.2' # LTS April 2024
332423
- '4.2' # LTS April 2026
333-
- '5.0' # April 2025
424+
- '5.1' # April 2025
334425
oracle-version:
335426
- '18'
336427
- 'latest'
428+
drf-version:
429+
- '3.14'
430+
- '3.15'
431+
filter-version:
432+
- '23.5'
433+
- '24.0'
337434
exclude:
338435
- python-version: '3.8'
339-
django-version: '5.0'
436+
django-version: '5.1'
340437
- python-version: '3.10'
341-
django-version: '5.0'
438+
django-version: '5.1'
342439
- python-version: '3.10'
343440
django-version: '3.2'
344441
- python-version: '3.12'
@@ -351,8 +448,22 @@ jobs:
351448
oracle-version: 'latest'
352449
- django-version: '4.2'
353450
oracle-version: '18'
354-
- django-version: '5.0'
451+
- django-version: '5.1'
355452
oracle-version: '18'
453+
454+
- djang-version: '3.2'
455+
drf-version: '3.15'
456+
- djang-version: '3.2'
457+
filter-version: '24.0'
458+
- djang-version: '4.2'
459+
drf-version: '3.14'
460+
- djang-version: '4.2'
461+
filter-version: '23.5'
462+
- djang-version: '5.1'
463+
drf-version: '3.14'
464+
- djang-version: '5.1'
465+
filter-version: '23.5'
466+
356467
services:
357468
oracle:
358469

@@ -400,8 +511,10 @@ jobs:
400511
run: |
401512
poetry config virtualenvs.in-project true
402513
poetry run pip install --upgrade pip
514+
poetry add django@^${{ matrix.django-version }}
515+
poetry add django-filter@^${{ matrix.filter-version }}
516+
poetry add djangorestframework@^${{ matrix.drf-version }}
403517
poetry install -E all --with oracle
404-
poetry run pip install -U "Django~=${{ matrix.django-version }}"
405518
# - name: Setup tmate session
406519
# uses: mxschmitt/action-tmate@v3
407520
# with:

pyproject.toml

Lines changed: 7 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -132,9 +132,7 @@ warn_redundant_casts = true
132132
warn_unused_configs = true
133133
warn_unreachable = true
134134
warn_no_return = true
135-
exclude = [
136-
"tests",
137-
]
135+
exclude = ["tests"]
138136
# plugins = ["mypy_django_plugin.main"]
139137

140138

@@ -152,9 +150,7 @@ sphinx = true
152150
DJANGO_SETTINGS_MODULE = "tests.settings"
153151
python_files = "tests.py"
154152
norecursedirs = "*.egg .eggs dist build docs .tox .git __pycache__"
155-
env = [
156-
"TERMINAL_WIDTH=80",
157-
]
153+
env = ["TERMINAL_WIDTH=80"]
158154

159155
addopts = [
160156
"--strict-markers",
@@ -164,9 +160,7 @@ addopts = [
164160
]
165161

166162
[tool.coverage.run]
167-
omit = [
168-
"tests/**/*py"
169-
]
163+
omit = ["tests/**/*py"]
170164
branch = true
171165
source = ["django_enum"]
172166
concurrency = ["multiprocessing"]
@@ -175,18 +169,12 @@ relative_files = true
175169
command_line = "-m pytest --cov=django_enum"
176170

177171
[tool.coverage.paths]
178-
source = [
179-
"django_enum"
180-
]
172+
source = ["django_enum"]
181173

182174

183175
[tool.pyright]
184-
exclude = [
185-
"tests/**/*"
186-
]
187-
include = [
188-
"django_enum"
189-
]
176+
exclude = ["tests/**/*"]
177+
include = ["django_enum"]
190178

191179
[tool.ruff]
192180
line-length = 88
@@ -197,6 +185,4 @@ exclude = [
197185
]
198186

199187
[tool.ruff.lint]
200-
exclude = [
201-
"tests/**/*"
202-
]
188+
exclude = ["tests/**/*"]

0 commit comments

Comments
 (0)