Lakeshore 335: Add thermocouple support #2
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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", "3.12"] | |
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" | |
- os: windows-latest | |
python-version: "3.12" | |
env: | |
OS: ${{ matrix.os }} | |
PYTHON: ${{ matrix.python-version }} | |
steps: | |
- uses: actions/[email protected] | |
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@v5 | |
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/[email protected] | |
with: | |
version: 1.1.339 | |
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 tests | |
# 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 tests | |
- name: Upload coverage to Codecov | |
uses: codecov/[email protected] | |
with: | |
file: ./coverage.xml | |
env_vars: OS,PYTHON | |
if: ${{ github.event_name != 'merge_group' }} | |
# we don't trigger coverage from merge groups since that would | |
# make twice the number of coverage reports be uploded from a given commit |