1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160
|
name: Test
on:
push:
branches:
- master
pull_request:
branches:
- master
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: 'true'
fetch-depth: '2'
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Install Tox
run: |
python -m pip install --upgrade pip
python -m pip install --upgrade tox
- name: Run Pylint
run: tox -e pylint-ci
test_on_linux:
runs-on: ${{ matrix.os }}
timeout-minutes: 30
name: ${{ matrix.name }} (${{ matrix.os }}, py${{ matrix.python-version }})
strategy:
fail-fast: False
matrix:
os: [ubuntu-latest]
python-version: ['3.11', '3.12', '3.13', '3.14']
tox_env: [orange-released]
name: [Released]
include:
- os: ubuntu-latest
python-version: '3.14'
tox_env: orange-latest
name: Latest
- os: ubuntu-22.04
python-version: '3.11'
tox_env: orange-oldest
name: Oldest dependencies
- os: ubuntu-latest
python-version: '3.13'
tox_env: pyqt6
name: PyQt6
- os: ubuntu-latest
python-version: '3.14'
tox_env: beta
name: "Scientific Python nightly wheels"
services:
postgres:
image: orangedm/postgres:11
env:
POSTGRES_USER: postgres_user
POSTGRES_PASSWORD: postgres_password
POSTGRES_DB: postgres_db
ports:
- 5432:5432
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
SQLServer:
image: mcr.microsoft.com/mssql/server:2017-latest
env:
ACCEPT_EULA: Y
SA_PASSWORD: sqlServerPassw0rd
ports:
- 1433:1433
steps:
- uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install linux system dependencies
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 libxcb-cursor0 glibc-tools libegl1
- name: Install Tox
run: |
python -m pip install --upgrade pip
python -m pip install --upgrade tox
- name: Skip testing workflows at coverage
if: |
matrix.python-version == '3.12' && matrix.tox_env == 'orange-released'
run: |
echo 'SKIP_EXAMPLE_WORKFLOWS=1' >> $GITHUB_ENV
- name: Run Tox
run: catchsegv xvfb-run -a -s "$XVFBARGS" tox -e ${{ matrix.tox_env }}
env:
XVFBARGS: "-screen 0 1280x1024x24"
ORANGE_TEST_DB_URI: postgres://postgres_user:postgres_password@localhost:5432/postgres_db|mssql://SA:sqlServerPassw0rd@localhost:1433
- name: Upload code coverage
if: matrix.python-version == '3.12' && matrix.tox_env == 'orange-released'
uses: codecov/codecov-action@v4
with:
fail_ci_if_error: true
token: ${{ secrets.CODECOV_TOKEN }}
test_on_macos_and_windows:
runs-on: ${{ matrix.os }}
timeout-minutes: 30
name: ${{ matrix.name }} (${{ matrix.os }}, py${{ matrix.python-version }})
strategy:
fail-fast: false
matrix:
os: [macos-latest, windows-latest]
python-version: ['3.11', '3.12', '3.13', '3.14']
tox_env: [orange-released]
name: [Released]
include:
- os: windows-latest
python-version: '3.14'
tox_env: orange-latest
name: Latest
- os: macos-latest
python-version: '3.14'
tox_env: orange-latest
name: Latest
- os: windows-latest
python-version: '3.13'
tox_env: pyqt6
name: PyQt6
- os: macos-latest
python-version: '3.13'
tox_env: pyqt6
name: PyQt6
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
python -m pip install --upgrade tox
- name: Test with Tox
run: |
tox -e ${{ matrix.tox_env }}
|