8
8
9
9
jobs :
10
10
tests :
11
- name : Python ${{ matrix.python-version }}
11
+ name : Python ${{ matrix.python-version }}, Django ${{ matrix.django-version }}
12
12
runs-on : ubuntu-20.04
13
13
14
14
strategy :
15
+ fail-fast : false
15
16
matrix :
17
+ django-version :
18
+ - ' 3.1'
19
+ - ' 3.2'
16
20
python-version :
17
21
- ' 3.6'
18
22
- ' 3.7'
19
23
- ' 3.8'
20
24
- ' 3.9'
21
25
26
+ include :
27
+ # Old Django LTS only on older Pythons
28
+ - django-version : ' 2.2'
29
+ python-version : ' 3.6'
30
+
31
+ - django-version : ' 2.2'
32
+ python-version : ' 3.7'
33
+
34
+ # Pre-release Django only on new Pythons
35
+ - django-version : ' main'
36
+ python-version : ' 3.8'
37
+
38
+ - django-version : ' main'
39
+ python-version : ' 3.9'
40
+
22
41
steps :
23
42
- uses : actions/checkout@v2
24
43
@@ -33,25 +52,33 @@ jobs:
33
52
restore-keys : |
34
53
${{ runner.os }}-pip-
35
54
36
- - name : Upgrade packaging tools
37
- run : python -m pip install --upgrade pip setuptools virtualenv wheel
38
-
39
55
- name : Install dependencies
40
- run : python -m pip install --upgrade codecov tox
41
-
42
- - name : Run tox targets for ${{ matrix.python-version }}
43
56
run : |
44
- ENV_PREFIX=$(tr -C -d "0-9" <<< "${{ matrix.python-version }}")
45
- TOXENV=$(tox --listenvs | grep "^py$ENV_PREFIX" | tr '\n' ',') tox
57
+ python -m pip install --upgrade pip setuptools virtualenv wheel
58
+ python -m pip install --upgrade codecov tox tox-gh-actions
46
59
47
- - name : Run extra tox targets
48
- if : ${{ matrix.python-version == '3.9' }}
60
+ - name : Run tox
49
61
run : |
50
- python setup.py bdist_wheel
51
- rm -r djangorestframework.egg-info # see #6139
52
- tox -e base,dist,docs
53
- tox -e dist --installpkg ./dist/djangorestframework-*.whl
62
+ tox
63
+ TOX_EXIT=$?
64
+
65
+ if [[ $DJANGO == '3.2' && ${{ matrix.python-version }} == '3.9' ]]; then
66
+ # Run extra tox targets
67
+ # This would not be needed after https://github.com/ymyzk/tox-gh-actions/pull/60
68
+ tox -e base,dist,docs
69
+ TOX_EXTRA_EXIT=$?
70
+
71
+ if [[ $TOX_EXIT == 0 ]]; then
72
+ TOX_EXIT=$TOX_EXTRA_EXIT
73
+ fi
74
+ fi
75
+
76
+ exit $TOX_EXIT
77
+ env :
78
+ DJANGO : ${{ matrix.django-version }}
54
79
55
80
- name : Upload coverage
56
81
run : |
57
- codecov -e TOXENV,DJANGO
82
+ codecov -e DJANGO
83
+ env :
84
+ DJANGO : ${{ matrix.django-version }}
0 commit comments