1313 # Daily at 05:47
1414 - cron : ' 47 5 * * *'
1515
16+ env :
17+ PIP_NO_PYTHON_VERSION_WARNING : 1
18+
1619jobs :
1720 test :
1821 name : ${{ matrix.os.name }} ${{ matrix.python.name }} ${{ matrix.reactor.name }}
3134 3.6 : docker://python:3.6-buster
3235 3.7 : docker://python:3.7-buster
3336 3.8 : docker://python:3.8-buster
34- pypy2 : docker://pypy:2-jessie
35- pypy3 : docker://pypy:3-stretch
37+ 3.9 : docker://python:3.9-buster
38+ pypy2.7 : docker://pypy:2.7-buster
39+ pypy3.6 : docker://pypy:3.6-buster
40+ pypy3.7 : docker://pypy:3.7-buster
3641 - name : 🪟
3742 runs-on : windows-latest
3843 python_platform : win32
@@ -44,61 +49,90 @@ jobs:
4449 tox : py27
4550 action : 2.7
4651 docker : 2.7
52+ implementation : cpython
53+ major : 2
4754 - name : CPython 3.5
4855 tox : py35
4956 action : 3.5
5057 docker : 3.5
58+ implementation : cpython
59+ major : 3
5160 - name : CPython 3.6
5261 tox : py36
5362 action : 3.6
5463 docker : 3.6
64+ implementation : cpython
65+ major : 3
5566 - name : CPython 3.7
5667 tox : py37
5768 action : 3.7
5869 docker : 3.7
70+ implementation : cpython
71+ major : 3
5972 - name : CPython 3.8
6073 tox : py38
6174 action : 3.8
6275 docker : 3.8
63- - name : PyPy 2
64- tox : pypy2
65- action : pypy2
66- docker : pypy2
67- - name : PyPy 3
68- tox : pypy3
69- action : pypy3
70- docker : pypy3
76+ implementation : cpython
77+ major : 3
78+ - name : CPython 3.9
79+ tox : py39
80+ action : 3.9
81+ docker : 3.9
82+ implementation : cpython
83+ major : 3
84+ - name : PyPy 2.7
85+ tox : pypy27
86+ action : pypy-2.7
87+ docker : pypy2.7
88+ implementation : pypy
89+ major : 2
90+ - name : PyPy 3.6
91+ tox : pypy36
92+ action : pypy-3.6
93+ docker : pypy3.6
94+ implementation : pypy
95+ major : 3
96+ - name : PyPy 3.7
97+ tox : pypy37
98+ action : pypy-3.7
99+ docker : pypy3.7
100+ implementation : pypy
101+ major : 3
71102 reactor :
72103 - name : default
73104 tox : default
74105 dependencies : default
75- - name : Qt5
76- tox : qt5
106+ - name : PyQt5
107+ tox : pyqt5
108+ dependencies : qt5
109+ - name : PySide2
110+ tox : pyside2
77111 dependencies : qt5
78112 - name : asyncio
79113 tox : asyncio
80114 dependencies : asyncio
81115 exclude :
82116 - python :
83- tox : py27
117+ major : 2
84118 reactor :
85- tox : qt5
119+ tox : pyqt5
86120 - python :
87- tox : py27
121+ major : 2
88122 reactor :
89- tox : asyncio
123+ tox : pyside2
90124 - python :
91- tox : pypy2
125+ major : 2
92126 reactor :
93127 tox : asyncio
94128 - python :
95- tox : pypy2
129+ implementation : pypy
96130 reactor :
97- tox : qt5
131+ tox : pyqt5
98132 - python :
99- tox : pypy3
133+ implementation : pypy
100134 reactor :
101- tox : qt5
135+ tox : pyside2
102136 steps :
103137 - uses : actions/checkout@v2
104138 - name : Enable Problem Matchers
@@ -108,7 +142,15 @@ jobs:
108142 if : ${{ job.container == '' }}
109143 uses : actions/setup-python@v2
110144 with :
111- python-version : ${{ matrix.python.action }}
145+ # This allows the matrix to specify just the major.minor version while still
146+ # expanding it to get the latest patch version including alpha releases.
147+ # This avoids the need to update for each new alpha, beta, release candidate,
148+ # and then finally an actual release version. actions/setup-python doesn't
149+ # support this for PyPy presently so we get no help there.
150+ #
151+ # CPython -> 3.9.0-alpha - 3.9.X
152+ # PyPy -> pypy-3.7
153+ python-version : ${{ fromJSON(format('["{0}", "{1}"]', format('{0}.0-alpha - {0}.X', matrix.python.action), matrix.python.action))[startsWith(matrix.python.action, 'pypy')] }}
112154 architecture : x64
113155 - name : Report Python information
114156 shell : bash
@@ -121,11 +163,11 @@ jobs:
121163 echo
122164 echo " <=======>"
123165 echo
124- pip list --no-python-version-warning
166+ pip list
125167 echo
126168 echo " <=======>"
127169 echo
128- pip freeze --all --no-python-version-warning
170+ pip freeze --all
129171 - name : Install Linux Qt5 dependencies
130172 if : matrix.os.python_platform == 'linux' && matrix.reactor.dependencies == 'qt5'
131173 run : |
0 commit comments