4141 python-version : 3.9
4242 extra-requirements : ' -r requirements/testing/extra.txt'
4343 XVFB_RUN : xvfb-run -a
44+ - os : ubuntu-20.04
45+ python-version : ' 3.10-dev'
46+ # Re-add this when extra dependencies have wheels.
47+ # extra-requirements: '-r requirements/testing/extra.txt'
48+ XVFB_RUN : xvfb-run -a
4449 - os : macos-latest
4550 python-version : 3.8
4651 XVFB_RUN : " "
6570 cm-super \
6671 dvipng \
6772 ffmpeg \
73+ fonts-noto-cjk \
6874 gdb \
6975 gir1.2-gtk-3.0 \
7076 graphviz \
@@ -95,9 +101,14 @@ jobs:
95101 texlive-luatex \
96102 texlive-xetex \
97103 ttf-wqy-zenhei
104+ if [[ "${{ matrix.os }}" = ubuntu-20.04 ]]; then
105+ sudo apt install -yy libopengl0
106+ fi
98107 ;;
99108 macOS)
100109 brew install ccache
110+ brew tap homebrew/cask-fonts
111+ brew install font-noto-sans-cjk-sc
101112 ;;
102113 esac
103114
@@ -106,25 +117,25 @@ jobs:
106117 if : startsWith(runner.os, 'Linux')
107118 with :
108119 path : ~/.cache/pip
109- key : ${{ runner .os }}-py${{ matrix.python-version }}-pip-${{ hashFiles('requirements/*/*.txt') }}
120+ key : ${{ matrix .os }}-py${{ matrix.python-version }}-pip-${{ hashFiles('requirements/*/*.txt') }}
110121 restore-keys : |
111- ${{ runner .os }}-py${{ matrix.python-version }}-pip-
122+ ${{ matrix .os }}-py${{ matrix.python-version }}-pip-
112123 - name : Cache pip
113124 uses : actions/cache@v2
114125 if : startsWith(runner.os, 'macOS')
115126 with :
116127 path : ~/Library/Caches/pip
117- key : ${{ runner .os }}-py${{ matrix.python-version }}-pip-${{ hashFiles('requirements/*/*.txt') }}
128+ key : ${{ matrix .os }}-py${{ matrix.python-version }}-pip-${{ hashFiles('requirements/*/*.txt') }}
118129 restore-keys : |
119- ${{ runner .os }}-py${{ matrix.python-version }}-pip-
130+ ${{ matrix .os }}-py${{ matrix.python-version }}-pip-
120131 - name : Cache ccache
121132 uses : actions/cache@v2
122133 with :
123134 path : |
124135 ~/.ccache
125- key : ${{ runner .os }}-py${{ matrix.python-version }}-ccache-${{ hashFiles('src/*') }}
136+ key : ${{ matrix .os }}-py${{ matrix.python-version }}-ccache-${{ hashFiles('src/*') }}
126137 restore-keys : |
127- ${{ runner .os }}-py${{ matrix.python-version }}-ccache-
138+ ${{ matrix .os }}-py${{ matrix.python-version }}-ccache-
128139 - name : Cache Matplotlib
129140 uses : actions/cache@v2
130141 with :
@@ -160,28 +171,40 @@ jobs:
160171 # (sometimes, the install appears to be successful but shared
161172 # libraries cannot be loaded at runtime, so an actual import is a
162173 # better check).
174+ # PyGObject, pycairo, and cariocffi do not install on OSX 10.12.
175+ python -m pip install --upgrade pycairo 'cairocffi>=0.8' PyGObject &&
176+ python -c 'import gi; gi.require_version("Gtk", "3.0"); from gi.repository import Gtk' &&
177+ echo 'PyGObject is available' ||
178+ echo 'PyGObject is not available'
179+
180+ # There are no functioning wheels available for OSX 10.12 (as of
181+ # Sept 2020) for either pyqt5 (there are only wheels for 10.13+) or
182+ # pyside2 (the latest version (5.13.2) with 10.12 wheels has a
183+ # fatal to us bug, it was fixed in 5.14.0 which has 10.13 wheels)
184+ python -mpip install --upgrade pyqt5${{ matrix.pyqt5-ver }} &&
185+ python -c 'import PyQt5.QtCore' &&
186+ echo 'PyQt5 is available' ||
187+ echo 'PyQt5 is not available'
163188 if [[ "${{ runner.os }}" != 'macOS' ]]; then
164- # PyGObject, pycairo, and cariocffi do not install on OSX 10.12.
165- python -m pip install --upgrade pycairo 'cairocffi>=0.8' PyGObject &&
166- python -c 'import gi; gi.require_version("Gtk", "3.0"); from gi.repository import Gtk' &&
167- echo 'PyGObject is available' ||
168- echo 'PyGObject is not available'
169-
170- # There are no functioning wheels available for OSX 10.12 (as of
171- # Sept 2020) for either pyqt5 (there are only wheels for 10.13+) or
172- # pyside2 (the latest version (5.13.2) with 10.12 wheels has a
173- # fatal to us bug, it was fixed in 5.14.0 which has 10.13 wheels)
174- python -m pip install --upgrade pyqt5${{ matrix.pyqt5-ver }} &&
175- python -c 'import PyQt5.QtCore' &&
176- echo 'PyQt5 is available' ||
177- echo 'PyQt5 is not available'
178- python -m pip install --upgrade pyside2 &&
179- python -c 'import PySide2.QtCore' &&
180- echo 'PySide2 is available' ||
181- echo 'PySide2 is not available'
189+ python -mpip install --upgrade pyside2 &&
190+ python -c 'import PySide2.QtCore' &&
191+ echo 'PySide2 is available' ||
192+ echo 'PySide2 is not available'
193+ fi
194+ # Qt6 crashes on Github's ubuntu 18.04 runner.
195+ if [[ "${{ matrix.os }}" = ubuntu-20.04 ]]; then
196+ python -mpip install --upgrade pyqt6 &&
197+ python -c 'import PyQt6.QtCore' &&
198+ echo 'PyQt6 is available' ||
199+ echo 'PyQt6 is not available'
200+ python -mpip install --upgrade pyside6 &&
201+ python -c 'import PySide6.QtCore' &&
202+ echo 'PySide6 is available' ||
203+ echo 'PySide6 is not available'
182204 fi
183- python -m pip install --upgrade \
184- -f https://extras.wxpython.org/wxPython4/extras/linux/gtk3/ubuntu-$(lsb_release -r -s) \
205+
206+ python -mpip install --upgrade \
207+ -f "https://extras.wxpython.org/wxPython4/extras/linux/gtk3/${{ matrix.os }}" \
185208 wxPython &&
186209 python -c 'import wx' &&
187210 echo 'wxPython is available' ||
0 commit comments