@@ -15,13 +15,20 @@ jobs:
15
15
POSTGRES_PORT : 5432
16
16
strategy :
17
17
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' ]
19
19
postgres-version : ['9.6', '12', 'latest']
20
20
psycopg-version : ['psycopg2', 'psycopg3']
21
21
django-version :
22
22
- ' 3.2' # LTS April 2024
23
23
- ' 4.2' # LTS April 2026
24
24
- ' 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'
25
32
exclude :
26
33
- django-version : ' 4.2'
27
34
postgres-version : ' 9.6'
41
48
django-version : ' 5.0'
42
49
- django-version : ' 3.2'
43
50
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'
44
80
45
81
# Service containers to run with `runner-job`
46
82
services :
@@ -77,15 +113,16 @@ jobs:
77
113
run : |
78
114
poetry config virtualenvs.in-project true
79
115
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 }}
82
120
- name : No Optional Dependency Unit Tests
83
121
run : |
84
122
poetry run pytest --cov-append
85
123
- name : Install enum-properties
86
124
run : |
87
125
poetry install -E properties
88
- poetry run pip install -U "Django~=${{ matrix.django-version }}"
89
126
- name : Unit Tests w/ enum-properties
90
127
run : |
91
128
poetry run pytest --cov-append
@@ -95,26 +132,18 @@ jobs:
95
132
- name : Install djangorestframework
96
133
run : |
97
134
poetry install -E djangorestframework
98
- poetry run pip install -U "Django~=${{ matrix.django-version }}"
99
135
- name : Run Unit Tests w/ djangorestframework
100
136
run : |
101
137
poetry run pytest --cov-append
102
138
- name : Install django-filters
103
139
run : |
104
140
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
111
141
- name : Run Unit Tests w/ django-filter
112
142
run : |
113
143
poetry run pytest --cov-append
114
144
- name : Install all deps
115
145
run : |
116
146
poetry install -E all
117
- poetry run pip install -U "Django~=${{ matrix.django-version }}"
118
147
- name : Run Full Unit Tests
119
148
run : |
120
149
poetry run pytest --cov-append
@@ -135,12 +164,30 @@ jobs:
135
164
django-version :
136
165
- ' 3.2' # LTS April 2024
137
166
- ' 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'
139
174
exclude :
140
175
- python-version : ' 3.8'
141
- django-version : ' 5.0 '
176
+ django-version : ' 5.1 '
142
177
- python-version : ' 3.12'
143
178
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'
144
191
145
192
steps :
146
193
- uses : actions/checkout@v4
@@ -158,8 +205,10 @@ jobs:
158
205
run : |
159
206
poetry config virtualenvs.in-project true
160
207
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
163
212
- name : Run Full Unit Tests
164
213
run : |
165
214
poetry run pytest
@@ -176,25 +225,44 @@ jobs:
176
225
django-version :
177
226
- ' 3.2' # LTS April 2024
178
227
- ' 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'
180
235
exclude :
181
236
- python-version : ' 3.12'
182
237
django-version : ' 3.2'
183
238
- python-version : ' 3.8'
184
- django-version : ' 5.0 '
239
+ django-version : ' 5.1 '
185
240
186
241
- django-version : ' 3.2'
187
242
mysql-version : ' latest'
188
243
- django-version : ' 4.2'
189
244
mysql-version : ' 5.7'
190
- - django-version : ' 5.0 '
245
+ - django-version : ' 5.1 '
191
246
mysql-version : ' 5.7'
192
247
193
248
- mysql-version : ' 5.7'
194
249
mysqlclient-version : ' '
195
250
- mysql-version : ' latest'
196
251
mysqlclient-version : ' 1.4.3'
197
252
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
+
198
266
services :
199
267
mysql :
200
268
# Docker Hub image
@@ -229,8 +297,10 @@ jobs:
229
297
run : |
230
298
poetry config virtualenvs.in-project true
231
299
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 }}
232
303
poetry install -E all --with mysql
233
- poetry run pip install -U "Django~=${{ matrix.django-version }}"
234
304
- name : Install mysqlclient if needed
235
305
if : ${{ matrix.mysqlclient-version != '' }}
236
306
run : poetry run pip install -U mysqlclient=="${{ matrix.mysqlclient-version }}"
@@ -253,18 +323,24 @@ jobs:
253
323
django-version :
254
324
- ' 3.2' # LTS April 2024
255
325
- ' 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'
257
333
exclude :
258
334
- python-version : ' 3.12'
259
335
django-version : ' 3.2'
260
336
- python-version : ' 3.8'
261
- django-version : ' 5.0 '
337
+ django-version : ' 5.1 '
262
338
263
339
- django-version : ' 3.2'
264
340
mariadb-version : ' latest'
265
341
- django-version : ' 4.2'
266
342
mariadb-version : ' 10.2'
267
- - django-version : ' 5.0 '
343
+ - django-version : ' 5.1 '
268
344
mariadb-version : ' 10.2'
269
345
270
346
- mariadb-version : ' 10.2'
@@ -277,6 +353,19 @@ jobs:
277
353
- mariadb-version : ' 10.2'
278
354
mariadb-healthcheck : " healthcheck.sh --connect --innodb_initialized"
279
355
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
+
280
369
services :
281
370
mysql :
282
371
# Docker Hub image
@@ -311,8 +400,10 @@ jobs:
311
400
run : |
312
401
poetry config virtualenvs.in-project true
313
402
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 }}
314
406
poetry install -E all --with mysql
315
- poetry run pip install -U "Django~=${{ matrix.django-version }}"
316
407
- name : Install mysqlclient if needed
317
408
if : ${{ matrix.mysqlclient-version != '' }}
318
409
run : poetry run pip install -U mysqlclient=="${{ matrix.mysqlclient-version }}"
@@ -330,15 +421,21 @@ jobs:
330
421
django-version :
331
422
- ' 3.2' # LTS April 2024
332
423
- ' 4.2' # LTS April 2026
333
- - ' 5.0 ' # April 2025
424
+ - ' 5.1 ' # April 2025
334
425
oracle-version :
335
426
- ' 18'
336
427
- ' latest'
428
+ drf-version :
429
+ - ' 3.14'
430
+ - ' 3.15'
431
+ filter-version :
432
+ - ' 23.5'
433
+ - ' 24.0'
337
434
exclude :
338
435
- python-version : ' 3.8'
339
- django-version : ' 5.0 '
436
+ django-version : ' 5.1 '
340
437
- python-version : ' 3.10'
341
- django-version : ' 5.0 '
438
+ django-version : ' 5.1 '
342
439
- python-version : ' 3.10'
343
440
django-version : ' 3.2'
344
441
- python-version : ' 3.12'
@@ -351,8 +448,22 @@ jobs:
351
448
oracle-version : ' latest'
352
449
- django-version : ' 4.2'
353
450
oracle-version : ' 18'
354
- - django-version : ' 5.0 '
451
+ - django-version : ' 5.1 '
355
452
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
+
356
467
services :
357
468
oracle :
358
469
@@ -400,8 +511,10 @@ jobs:
400
511
run : |
401
512
poetry config virtualenvs.in-project true
402
513
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 }}
403
517
poetry install -E all --with oracle
404
- poetry run pip install -U "Django~=${{ matrix.django-version }}"
405
518
# - name: Setup tmate session
406
519
# uses: mxschmitt/action-tmate@v3
407
520
# with:
0 commit comments