Skip to content

Merge pull request #282 from ales-erjavec/fixes/readthedocs-system-pa… #365

Merge pull request #282 from ales-erjavec/fixes/readthedocs-system-pa…

Merge pull request #282 from ales-erjavec/fixes/readthedocs-system-pa… #365

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.7
test-env: "PyQt5~=5.9.2 qasync<0.19.0"
- os: ubuntu-20.04
python-version: 3.8
test-env: "PyQt5~=5.12.0"
- os: ubuntu-20.04
python-version: 3.7
test-env: "PyQt5~=5.15.0"
- os: ubuntu-20.04
python-version: 3.8
test-env: "PyQt5~=5.15.0"
- os: ubuntu-20.04
python-version: 3.9
test-env: "PyQt5~=5.14.0"
- os: ubuntu-20.04
python-version: "3.10"
test-env: "PyQt5~=5.15.0"
- os: ubuntu-20.04
python-version: "3.11"
test-env: "PyQt5~=5.15.0"
- os: ubuntu-20.04
python-version: "3.11"
test-env: "PyQt6~=6.2.3 PyQt6-Qt6~=6.2.3"
- os: ubuntu-22.04
python-version: "3.11"
test-env: "PyQt6~=6.5.0 PyQt6-Qt6~=6.5.0"
extra-system-packages: "glibc-tools"
# macOS
- os: macos-11
python-version: 3.8
test-env: "PyQt5~=5.12.0"
- os: macos-11
python-version: 3.9
test-env: "PyQt5~=5.14.0"
- os: macos-11
python-version: "3.10"
test-env: "PyQt5~=5.15.0"
- os: macos-12
python-version: "3.11"
test-env: "PyQt5~=5.15.0"
- os: macos-12
python-version: "3.11"
test-env: "PyQt6~=6.2.3 PyQt6-Qt6~=6.2.3"
- os: macos-12
python-version: "3.11"
test-env: "PyQt6~=6.5.0 PyQt6-Qt6~=6.5.0"
# Windows
- os: windows-2019
python-version: 3.7
test-env: "PyQt5~=5.9.2"
- os: windows-2019
python-version: 3.8
test-env: "PyQt5~=5.12.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.11"
test-env: "PyQt5~=5.15.0"
- os: windows-2019
python-version: "3.11"
test-env: "PyQt6~=6.2.3 PyQt6-Qt6~=6.2.3"
- os: windows-2019
python-version: "3.11"
test-env: "PyQt6~=6.5.0 PyQt6-Qt6~=6.5.0"
steps:
- uses: actions/checkout@v3
- name: Setup Python
uses: actions/setup-python@v4
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 libegl1-mesa libxcb-shape0 libxcb-cursor0 $PACKAGES
- name: Setup Pip Cache
uses: actions/cache@v3
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: pytest pytest-cov 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=orangecanvas
- 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=orangecanvas --cov-report=xml
- name: Upload Coverage
uses: codecov/codecov-action@v3
with:
fail_ci_if_error: true