Skip to content

Commit

Permalink
[wip] test
Browse files Browse the repository at this point in the history
  • Loading branch information
ales-erjavec committed Feb 15, 2024
1 parent 49588e1 commit ec06650
Show file tree
Hide file tree
Showing 2 changed files with 103 additions and 101 deletions.
193 changes: 97 additions & 96 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ on:
push:
branches:
- master
- test-owcsvimport-cleanup
pull_request:
branches:
- master
Expand All @@ -29,93 +30,93 @@ jobs:
- 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-22.04]
python-version: [3.9, '3.10', '3.11']
tox_env: [orange-released]
name: [Released]
include:
- os: ubuntu-22.04
python-version: '3.11'
tox_env: orange-latest
name: Latest
- os: ubuntu-20.04
python-version: 3.9
tox_env: orange-oldest
name: Oldest dependencies
- os: ubuntu-22.04
python-version: '3.10'
tox_env: pyqt6
name: PyQt6
- os: ubuntu-22.04
python-version: '3.11'
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 libegl1-mesa libxcb-shape0 libxcb-cursor0
- name: Install glibc-tools dependency on Ubuntu-22.04
if: matrix.os == 'ubuntu-22.04'
run: sudo apt-get install -y glibc-tools # required for catchsegv

- 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.11' && 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.11' && matrix.tox_env == 'orange-released'
uses: codecov/codecov-action@v4
with:
fail_ci_if_error: true
token: ${{ secrets.CODECOV_TOKEN }}
# 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-22.04]
# python-version: [3.9, '3.10', '3.11']
# tox_env: [orange-released]
# name: [Released]
# include:
# - os: ubuntu-22.04
# python-version: '3.11'
# tox_env: orange-latest
# name: Latest
# - os: ubuntu-20.04
# python-version: 3.9
# tox_env: orange-oldest
# name: Oldest dependencies
# - os: ubuntu-22.04
# python-version: '3.10'
# tox_env: pyqt6
# name: PyQt6
# - os: ubuntu-22.04
# python-version: '3.11'
# 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 libegl1-mesa libxcb-shape0 libxcb-cursor0
#
# - name: Install glibc-tools dependency on Ubuntu-22.04
# if: matrix.os == 'ubuntu-22.04'
# run: sudo apt-get install -y glibc-tools # required for catchsegv
#
# - 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.11' && 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.11' && 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 }}
Expand All @@ -124,23 +125,23 @@ jobs:
strategy:
fail-fast: false
matrix:
os: [macos-latest, windows-latest]
os: [macos-latest]
python-version: [3.9, '3.10', '3.11']
tox_env: [orange-released]
name: [Released]
include:
- os: windows-latest
python-version: '3.11'
tox_env: orange-latest
name: Latest
# - os: windows-latest
# python-version: '3.11'
# tox_env: orange-latest
# name: Latest
- os: macos-latest
python-version: '3.11'
tox_env: orange-latest
name: Latest
- os: windows-latest
python-version: '3.10'
tox_env: pyqt6
name: PyQt6
# - os: windows-latest
# python-version: '3.10'
# tox_env: pyqt6
# name: PyQt6
- os: macos-latest
python-version: 3.9
tox_env: pyqt6
Expand Down
11 changes: 6 additions & 5 deletions tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -33,11 +33,12 @@ deps =
coverage
psycopg2-binary
pymssql<3.0
https://github.com/ales-erjavec/orange-widget-base/archive/refs/heads/widget-test-create-kwargs.zip#egg=orange-widget-base
latest: https://github.com/biolab/orange-canvas-core/archive/refs/heads/master.zip#egg=orange-canvas-core
latest: https://github.com/biolab/orange-widget-base/archive/refs/heads/master.zip#egg=orange-widget-base
latest: https://github.com/ales-erjavec/orange-widget-base/archive/refs/heads/widget-test-create-kwargs.zip#egg=orange-widget-base
# GUI requirements
oldest: orange-canvas-core==0.2.0
oldest: orange-widget-base==4.23.0
oldest: https://github.com/ales-erjavec/orange-widget-base/archive/refs/heads/widget-test-create-kwargs.zip#egg=orange-widget-base
oldest: AnyQt==0.2.0
oldest: matplotlib==3.2.0
oldest: pygments==2.8.0
Expand Down Expand Up @@ -74,7 +75,7 @@ commands_pre =
# freeze environment
pip freeze
commands =
coverage run -m unittest -v Orange.tests Orange.widgets.tests
coverage run -m unittest -v Orange.widgets.tests
coverage combine
coverage report
# codecov-actions wants xml report
Expand All @@ -91,7 +92,7 @@ setenv =
deps =
https://github.com/pyqtgraph/pyqtgraph/archive/refs/heads/master.zip#egg=pyqtgraph
https://github.com/biolab/orange-canvas-core/archive/refs/heads/master.zip#egg=orange-canvas-core
https://github.com/biolab/orange-widget-base/archive/refs/heads/master.zip#egg=orange-widget-base
https://github.com/ales-erjavec/orange-widget-base/archive/refs/heads/widget-test-create-kwargs.zip#egg=orange-widget-base
PyQt6==6.5.*
PyQt6-Qt6==6.5.*
PyQt6-WebEngine==6.5.*
Expand All @@ -102,7 +103,7 @@ commands_pre =
# freeze environment
pip freeze
commands =
python -m unittest -v Orange.tests Orange.widgets.tests
python -m unittest -v Orange.widgets.tests

[testenv:pyqt6]
changedir =
Expand Down

0 comments on commit ec06650

Please sign in to comment.