Skip to content

Merge pull request #5449 from QCoDeS/dependabot/pip/pytest-mock-appro… #12482

Merge pull request #5449 from QCoDeS/dependabot/pip/pytest-mock-appro…

Merge pull request #5449 from QCoDeS/dependabot/pip/pytest-mock-appro… #12482

Workflow file for this run

name: Run mypy and pytest
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
on:
push:
branches:
- 'main'
- 'release/*'
tags:
- 'v*'
pull_request:
merge_group:
branches: ['main']
jobs:
pytestmypy:
runs-on: ${{ matrix.os }}
strategy:
# don't stop other jobs if one fails
# this is often due to network issues
# and or flaky tests
# and the time lost in such cases
# is bigger than the gain from canceling the job
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest]
python-version: ["3.9", "3.10", "3.11"]
min-version: [false]
include:
- os: ubuntu-latest
python-version: "3.9"
min-version: true
exclude:
- os: ubuntu-latest
python-version: "3.9"
- os: windows-latest
python-version: "3.11"
env:
OS: ${{ matrix.os }}
PYTHON: ${{ matrix.python-version }}
steps:
- uses: actions/checkout@v4.1.1
with:
submodules: true
# we need full history with tags for the version number
fetch-depth: '0'
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4.3.1
with:
python-version: ${{ matrix.python-version }}
cache: 'pip'
cache-dependency-path: |
pyproject.toml
requirements.txt
- name: upgrade pip setuptools wheel
run: python -m pip install --upgrade pip setuptools wheel
shell: bash
- name: install qcodes with minimum requirements
# Use fork of requirements-builder until official version
# has support for pyproject.toml (pep621)
run: |
pip install git+https://github.com/jenshnielsen/requirements-builder.git
pip install versioningit
requirements-builder -l min -e test setup.py -o min-requirements.txt
pip install -r min-requirements.txt
pip install .[test]
if: ${{ matrix.min-version }}
- name: install qcodes
run: |
pip install .[test] -c requirements.txt
if: ${{ !matrix.min-version }}
- uses: jakebailey/pyright-action@v1.7.0
with:
version: 1.1.329
if: ${{ !matrix.min-version }}
- name: Run Mypy
run: mypy -p qcodes
if: ${{ !matrix.min-version }}
- name: Run parallel tests
run: |
pytest -m "not serial" --cov=qcodes --cov-report xml --hypothesis-profile ci --durations=20 src/qcodes
# a subset of the tests fails when run in parallel on Windows so run those in serial here
- name: Run serial tests
run: |
pytest -m "serial" -n 0 --dist no --cov=qcodes --cov-report xml --cov-append --hypothesis-profile ci src/qcodes
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v3.1.4
with:
file: ./coverage.xml
env_vars: OS,PYTHON