Skip to content

Support Python 3.8 #1378

Support Python 3.8

Support Python 3.8 #1378

name: Automated tests & code coverage
on: [push, pull_request]
jobs:
code-qa-validation:
runs-on: ${{ matrix.os }}
strategy:
matrix:
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13"]
os: [ubuntu-latest] #, macos-latest, windows-latest]
fail-fast: False
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
steps:
- uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install project
run: |
python -m pip install --upgrade pip
pip install -e ".[develop]"
- uses: pre-commit/[email protected]
- name: Run tests
if: success() || failure() # Run this step even if the linting step fails
run: |
# -rA displays the captured output for all tests after they're run
# See the docs: https://doc.pytest.org/en/latest/reference/reference.html#command-line-flags
pytest -rA tests/ --ignore tests/timing.py --ignore tests/profiling.py
- name: Generate coverage report
# Run these tests on unit tests only so that we avoid inflating our code
# coverage through the regression tests
if: matrix.os == 'ubuntu-latest'
run: |
pip install pytest
pip install pytest-cov
pytest --cov=./ --cov-report=xml tests/ --ignore tests/reg_tests --ignore tests/timing.py --ignore tests/profiling.py
- name: Upload coverage to Codecov
if: ${{ env.CODECOV_TOKEN }} # Don't attempt to upload if the codecov token is not configured
uses: codecov/codecov-action@v3
with:
token: ${{ env.CODECOV_TOKEN }}
files: ./coverage.xml
fail_ci_if_error: true