-
Notifications
You must be signed in to change notification settings - Fork 46
45 lines (45 loc) · 1.64 KB
/
pytest.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
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" --cov=iodata --cov-report=xml --timeout=60
- name: Upload coverage report to Deepsource
# See https://docs.deepsource.com/docs/analyzers-test-coverage#python
run: |
curl https://deepsource.io/cli | sh
./bin/deepsource report --analyzer test-coverage --key python --value-file ./coverage.xml
env:
DEEPSOURCE_DSN: ${{ secrets.DEEPSOURCE_DSN }}
- name: Run slow tests with pytest
run: pytest -vv -m slow