diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index bf279df1fde..eb35034860a 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -4,6 +4,7 @@ on: push: branches: - master + - test-owcsvimport-cleanup pull_request: branches: - master @@ -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 }} @@ -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 diff --git a/tox.ini b/tox.ini index bb3b2dabc0a..effd002b36b 100644 --- a/tox.ini +++ b/tox.ini @@ -18,10 +18,10 @@ changedir = {envsitepackagesdir} setenv = # Raise deprecations as errors in our tests - ORANGE_DEPRECATIONS_ERROR=y + # ORANGE_DEPRECATIONS_ERROR=y # Need this otherwise unittest installs a warning filter that overrides # our desire to have OrangeDeprecationWarnings raised - PYTHONWARNINGS=module + # PYTHONWARNINGS=module # set coverage output and project config COVERAGE_FILE = {toxinidir}/.coverage COVERAGE_RCFILE = {toxinidir}/.coveragerc @@ -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 @@ -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 @@ -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.* @@ -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 = @@ -111,6 +112,7 @@ setenv = QT_API=PyQt6 ANYQT_HOOK_DENY=pyqt5 deps = + 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.*