Skip to content

CI: Add Python 3.11 and 3.12 to test matrices #46

CI: Add Python 3.11 and 3.12 to test matrices

CI: Add Python 3.11 and 3.12 to test matrices #46

Workflow file for this run

name : Run tests
on: [push, pull_request]
jobs:
test:
runs-on: ${{ matrix.os }}
timeout-minutes: 5
env:
PYTHONFAULTHANDLER: 1
PIP_NO_PIP_VERSION_CHECK: 1
PIP_CACHE_DIR: .pip-cache
PIP_PREFER_BINARY: 1
strategy:
fail-fast: False
matrix:
include:
# Linux
- os: ubuntu-18.04
python-version: 3.7
test-env: "PyQt5~=5.12.0"
qt-api: "PyQt5"
- os: ubuntu-20.04
python-version: 3.8
test-env: "PyQt5~=5.14.0"
qt-api: "PyQt5"
- os: ubuntu-20.04
python-version: 3.9
test-env: "PyQt5~=5.15.0"
qt-api: "PyQt5"
- os: ubuntu-20.04
python-version: "3.10"
test-env: "PyQt5~=5.15.0"
qt-api: "PyQt5"
- os: ubuntu-20.04
python-version: "3.10"
test-env: "PyQt6~=6.2.3 PyQt6-Qt6~=6.2.3"
qt-api: "PyQt6"
- os: ubuntu-20.04
python-version: "3.10"
test-env: "PySide2~=5.15.0"
qt-api: "PySide2"
- os: ubuntu-20.04
python-version: "3.11"
test-env: "PyQt6~=6.5.0 PyQt6-Qt6~=6.5.0"
qt-api: "PyQt6"
- os: ubuntu-20.04
python-version: "3.12"
test-env: "PyQt6~=6.5.0 PyQt6-Qt6~=6.5.0"
qt-api: "PyQt6"
# macOS
- os: macos-10.15
python-version: 3.7
test-env: "PyQt5~=5.12.0"
- os: macos-10.15
python-version: 3.8
test-env: "PyQt5~=5.14.0"
- os: macos-10.15
python-version: 3.9
test-env: "PyQt5~=5.15.0"
- os: macos-11
python-version: "3.10"
test-env: "PyQt5~=5.15.0"
- os: macos-11
python-version: "3.10"
test-env: "PyQt6~=6.2.3 PyQt6-Qt6~=6.2.3"
- os: macos-11
python-version: "3.10"
test-env: "PySide2~=5.15.0"
- os: macos-11
python-version: "3.11"
test-env: "PyQt6~=6.5.0 PyQt6-Qt6~=6.5.0"
- os: macos-11
python-version: "3.12"
test-env: "PyQt6~=6.5.0 PyQt6-Qt6~=6.5.0"
# Windows
- os: windows-2019
python-version: 3.7
test-env: "PyQt5~=5.12.0"
- os: windows-2019
python-version: 3.8
test-env: "PyQt5~=5.14.0"
- os: windows-2019
python-version: 3.9
test-env: "PyQt5~=5.15.0"
- os: windows-2019
python-version: "3.10"
test-env: "PyQt5~=5.15.0"
- os: windows-2019
python-version: "3.10"
test-env: "PyQt6~=6.2.3 PyQt6-Qt6~=6.2.3"
- os: windows-2019
python-version: "3.10"
test-env: "PySide2~=5.15.0"
- os: windows-2019
python-version: "3.11"
test-env: "PyQt6~=6.5.0 PyQt6-Qt6~=6.5.0"
- os: windows-2019
python-version: "3.12"
test-env: "PyQt6~=6.5.0 PyQt6-Qt6~=6.5.0"
steps:
- uses: actions/checkout@v2
- name: Setup Python
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Install System Deps
if: ${{ startsWith(runner.os, 'Linux') }}
# https://www.riverbankcomputing.com/pipermail/pyqt/2020-June/042949.html
run: sudo apt-get install -y libxkbcommon-x11-0 libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-randr0 libxcb-render-util0 libxcb-xinerama0 libxcb-xfixes0 libegl1-mesa libxcb-shape0
- name: Setup Pip Cache
uses: actions/cache@v2
with:
path: .pip-cache
key: ${{ runner.os }}-py-${{ matrix.python-version }}-pip-${{ hashFiles('setup.*', '.github/workflows/test-workflow.yml') }}
restore-keys: |
${{ runner.os }}-py-${{ matrix.python-version }}-pip
- name: Install Test Deps
env:
TEST_ENV: ${{ matrix.test-env }}
TEST_DEPS: pytest pytest-cov codecov wheel
run: python -m pip install $TEST_DEPS $TEST_ENV
shell: bash
- name: Install
run: python -m pip install -e .
- name: List Test Env
run: pip list --format=freeze
- name: Run Tests
if: ${{ !startsWith(runner.os, 'Linux') }}
run: pytest -v --cov=AnyQt
- name: Run Tests with Xvfb
if: ${{ startsWith(runner.os, 'Linux') }}
env:
XVFBARGS: "-screen 0 1280x1024x24"
run: catchsegv xvfb-run -a -s "$XVFBARGS" pytest -v --cov=AnyQt
- name: Test import hooks
if: ${{ startsWith(runner.os, 'Linux') && matrix.qt-api == 'PyQt5' }}
run: |
ANYQT_HOOK_BACKPORT=PyQt4 python -c "import AnyQt.QtCore, PyQt4"
- name: Upload Coverage
run: codecov