Skip to content

Record coverage for fast tests and analyze with deepsource and codecov #49

Record coverage for fast tests and analyze with deepsource and codecov

Record coverage for fast tests and analyze with deepsource and codecov #49

Workflow file for this run

name: pytest
on:
push:
branches:
# Run tests for change on the main branch ...
- main
tags-ignore:
# ... but not for tags (avoids duplicate work).
- '**'
pull_request:
# Run tests on pull requests
jobs:
tests:
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
python-version: ["3.9", "3.12"]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.sha }}
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install oldest versions of supported dependencies
if: ${{ matrix.python-version == '3.9'}}
# Ensure changes to these dependencies are reflected
# in pyproject.toml and docs/install.rst
run: pip install numpy==1.22 scipy==1.11 attrs==21.3.0
- name: Install development version
run: pip install -e .[dev]
- name: Run fast tests with pytest
# If some are slow against expectations, the test will abort due to timeout.
run: >-
pytest -vv
-m "not slow"
--timeout=60
--cov=iodata
--cov-report=xml
--cov-report=term-missing
- name: Upload coverage report to Deepsource
# See https://docs.deepsource.com/docs/analyzers-test-coverage#python
env:
DEEPSOURCE_DSN: ${{ secrets.DEEPSOURCE_DSN }}
if: ${{ env.DEEPSOURCE_DSN != '' }}
run: |
curl https://deepsource.io/cli | sh
./bin/deepsource report --analyzer test-coverage --key python --value-file ./coverage.xml
- name: Run slow tests with pytest
run: pytest -vv -m slow