Skip to content

test: [Automatic] Constraints upgrades: psygnal, pygments, qtconsole, sentry-sdk, superqt, tifffile #4893

test: [Automatic] Constraints upgrades: psygnal, pygments, qtconsole, sentry-sdk, superqt, tifffile

test: [Automatic] Constraints upgrades: psygnal, pygments, qtconsole, sentry-sdk, superqt, tifffile #4893

Workflow file for this run

name: Tests
on:
push:
branches:
- develop
- feature_prepare/**
- main
pull_request:
branches:
- '**'
workflow_dispatch:
concurrency:
group: test-${{ github.ref }}
cancel-in-progress: true
jobs:
download_data:
name: Download test data
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v4
- shell: bash
run: bash build_utils/download_data.sh
- name: Upload test data
uses: actions/upload-artifact@v4
with:
name: test_data
path: test_data
retention-days: 5
base-test:
name: Base py${{ matrix.python_version }}
if: github.event_name == 'pull_request'
uses: ./.github/workflows/base_test_workflow.yml
needs: download_data
strategy:
fail-fast: false
matrix:
python_version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
os: ["ubuntu-20.04"]
qt_backend: ["PyQt5"]
tox_args: [ "" ]
include:
- python_version: "3.9"
os: "macos-11"
qt_backend: "PyQt5"
- python_version: "3.9"
os: "windows-2019"
qt_backend: "PyQt5"
- python_version: "3.9"
os: "ubuntu-20.04"
qt_backend: "PySide2"
- python_version: "3.9"
os: "ubuntu-22.04"
qt_backend: "PySide6"
- python_version: "3.10"
os: "ubuntu-22.04"
qt_backend: "PyQt6"
- python_version: "3.10"
os: "ubuntu-22.04"
qt_backend: "PyQt5"
pydantic: "_pydantic_1"
with:
test_data: True
python_version: ${{ matrix.python_version }}
os: ${{ matrix.os }}
qt_backend: ${{ matrix.qt_backend }}
tox_args: ${{ matrix.tox_args }}
base-test-main:
name: Base py${{ matrix.python_version }}
if: github.event_name == 'push'
uses: ./.github/workflows/base_test_workflow.yml
needs: download_data
strategy:
fail-fast: false
matrix:
python_version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
os: ["ubuntu-20.04", "macos-11", "windows-2019"]
qt_backend: ["PySide2", "PyQt5"]
include:
- python_version: "3.11"
qt_backend: "PyQt5"
os: "ubuntu-22.04"
- python_version: "3.9"
os: "ubuntu-22.04"
qt_backend: "PySide6"
- python_version: "3.9"
os: "ubuntu-22.04"
qt_backend: "PyQt6"
exclude:
- python_version: "3.11"
qt_backend: "PySide2"
- python_version: "3.12"
qt_backend: "PySide2"
with:
test_data: True
python_version: ${{ matrix.python_version }}
os: ${{ matrix.os }}
qt_backend: ${{ matrix.qt_backend }}
test_coverage:
needs: download_data
uses: ./.github/workflows/base_test_workflow.yml
with:
test_data: True
python_version: "3.10"
tox_args: "-e py310-PyQt5-coverage"
coverage: true
test_minimal:
name: Test PartSeg minimal
needs: download_data
uses: ./.github/workflows/base_test_workflow.yml
with:
test_data: True
python_version: "3.8"
tox_args: "-e py38-PyQt5-minimal"
coverage: true
coverage_prepare:
name: Prepare coverage
runs-on: ubuntu-latest
needs: [test_coverage, test_minimal]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.x"
cache-dependency-path: pyproject.toml
cache: 'pip'
- name: Install Dependencies
run: |
pip install --upgrade pip
pip install codecov
- name: Download coverage data
uses: actions/download-artifact@v4
with:
pattern: cov-reports-*
path: coverage
merge-multiple: true
- name: combine coverage data
run: |
python -Im coverage combine coverage
python -Im coverage xml -o coverage.xml
# Report and write to summary.
python -Im coverage report --format=markdown --skip-empty --skip-covered >> $GITHUB_STEP_SUMMARY
- name: Upload coverage artifact
uses: actions/upload-artifact@v4
with:
name: coverage_xml
path: coverage.xml
retention-days: 5
- name: Upload coverage data
uses: codecov/codecov-action@v4
with:
fail_ci_if_error: true
token: ${{ secrets.CODECOV_TOKEN }}
test_conda:
name: Test PartSeg conda
runs-on: ubuntu-20.04
needs: download_data
steps:
- uses: actions/checkout@v4
- name: Setup Miniconda
uses: conda-incubator/setup-miniconda@v3
with:
miniforge-version: latest
miniforge-variant: mambaforge
use-mamba: true
channels: conda-forge
channel-priority: strict
python-version: "3.11"
- uses: tlambert03/setup-qt-libs@v1
- name: Download test data
uses: actions/download-artifact@v4
with:
name: test_data
path: test_data
- name: Use mamba solver
shell: "bash -el {0}"
run: |
conda install -n base conda-libmamba-solver
conda config --set solver libmamba
- name: Install dependencies
shell: "bash -el {0}"
run: |
mamba install -y "tox-conda>=0.10.0"
- name: List environment packages
shell: "bash -el {0}"
run: conda list
- name: create environment
shell: "bash -el {0}"
run: bash build_utils/create_environment_yml.sh
- name: Upload environment file
uses: actions/upload-artifact@v4
with:
name: environment
path: environment.yml
retention-days: 5
- name: patch tox.ini
shell: "bash -el {0}"
run: sed -e "s/{sys_platform}/{platform}/g" tox.ini -i
- name: Test with tox
uses: aganders3/headless-gui@v2
with:
run: conda run -n test --no-capture-output tox -e py311-PySide2-conda
timeout-minutes: 60
check-package:
name: Build & inspect our package.
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: hynek/build-and-inspect-python-package@v2