Skip to content

Release build: do not build docs (they are not distrubuted) #378

Release build: do not build docs (they are not distrubuted)

Release build: do not build docs (they are not distrubuted) #378

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-20.04
python-version: 3.9
test-env: "PyQt5~=5.12.1 PyQtWebEngine~=5.12.1"
- os: ubuntu-20.04
python-version: 3.9
test-env: "PyQt5~=5.14.0 PyQtWebEngine~=5.14.0"
- os: ubuntu-20.04
python-version: "3.10"
test-env: "PyQt5~=5.15.0 PyQtWebEngine~=5.15.0"
- os: ubuntu-20.04
python-version: "3.11"
test-env: "PyQt5~=5.15.0 PyQtWebEngine~=5.15.0"
- os: ubuntu-20.04
python-version: "3.11"
test-env: "PyQt6~=6.2.3 PyQt6-Qt6~=6.2.3 PyQt6-WebEngine~=6.2.1 PyQt6-WebEngine-Qt6~=6.2.1"
extra-system-packages: "libegl1-mesa"
- os: ubuntu-22.04
python-version: "3.11"
test-env: "PyQt6~=6.5.0 PyQt6-Qt6~=6.5.0 PyQt6-WebEngine~=6.5.0 PyQt6-WebEngine-Qt6~=6.5.0"
extra-system-packages: "libegl1-mesa libxcb-cursor0 glibc-tools"
- os: ubuntu-22.04
python-version: "3.12"
test-env: "PyQt6~=6.5.0 PyQt6-Qt6~=6.5.0 PyQt6-WebEngine~=6.5.0 PyQt6-WebEngine-Qt6~=6.5.0"
extra-system-packages: "libegl1-mesa libxcb-cursor0 glibc-tools"
# macOS
- os: macos-12
python-version: 3.9
test-env: "PyQt5~=5.14.0 PyQtWebEngine~=5.14.0"
- os: macos-13
python-version: "3.10"
test-env: "PyQt5~=5.15.0 PyQtWebEngine~=5.15.0"
- os: macos-13
python-version: "3.11"
test-env: "PyQt6~=6.2.3 PyQt6-Qt6~=6.2.3 PyQt6-WebEngine~=6.2.1 PyQt6-WebEngine-Qt6~=6.2.1"
- os: macos-latest
python-version: "3.11"
test-env: "PyQt6~=6.5.0 PyQt6-Qt6~=6.5.0 PyQt6-WebEngine~=6.5.0 PyQt6-WebEngine-Qt6~=6.5.0"
- os: macos-latest
python-version: "3.12"
test-env: "PyQt6~=6.5.0 PyQt6-Qt6~=6.5.0 PyQt6-WebEngine~=6.5.0 PyQt6-WebEngine-Qt6~=6.5.0"
# Windows
- os: windows-2019
python-version: 3.9
test-env: "PyQt5~=5.15.0 PyQtWebEngine~=5.15.0"
- os: windows-2019
python-version: "3.10"
test-env: "PyQt5~=5.15.0 PyQtWebEngine~=5.15.0"
- os: windows-2019
python-version: "3.11"
test-env: "PyQt5~=5.15.0 PyQtWebEngine~=5.15.0"
- os: windows-2019
python-version: "3.11"
test-env: "PyQt6~=6.2.3 PyQt6-Qt6~=6.2.3 PyQt6-WebEngine~=6.2.1 PyQt6-WebEngine-Qt6~=6.2.1"
- os: windows-2019
python-version: "3.11"
test-env: "PyQt6~=6.5.0 PyQt6-Qt6~=6.5.0 PyQt6-WebEngine~=6.5.0 PyQt6-WebEngine-Qt6~=6.5.0"
- os: windows-2019
python-version: "3.12"
test-env: "PyQt6~=6.5.0 PyQt6-Qt6~=6.5.0 PyQt6-WebEngine~=6.5.0 PyQt6-WebEngine-Qt6~=6.5.0"
steps:
- uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install System Deps
if: ${{ startsWith(runner.os, 'Linux') }}
env:
PACKAGES: ${{ matrix.extra-system-packages }}
# https://www.riverbankcomputing.com/pipermail/pyqt/2020-June/042949.html
run: |
sudo apt-get update
sudo apt-get install -y libxkbcommon-x11-0 libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-randr0 libxcb-render-util0 libxcb-xinerama0 libxcb-xfixes0 libxcb-shape0 $PACKAGES
- name: Setup Pip Cache
uses: actions/cache@v4
with:
path: .pip-cache
key: ${{ runner.os }}-py-${{ matrix.python-version }}-pip-${{ hashFiles('setup.*', '.github/workflows/run-tests-workflow.yml') }}
restore-keys: |
${{ runner.os }}-py-${{ matrix.python-version }}-pip
- name: Install Test Deps
env:
TEST_ENV: ${{ matrix.test-env }}
TEST_DEPS: wheel coverage
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: |
coverage run -m unittest -v
coverage xml
- name: Run Tests with Xvfb
if: ${{ startsWith(runner.os, 'Linux') }}
env:
XVFBARGS: "-screen 0 1280x1024x24"
run: |
catchsegv xvfb-run -a -s "$XVFBARGS" coverage run -m unittest -v
coverage xml
- name: Upload Coverage
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}