-
Notifications
You must be signed in to change notification settings - Fork 8
134 lines (115 loc) · 3.03 KB
/
test.yml
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
---
name: Test
on:
push:
branches:
- main
pull_request:
types:
- opened
- ready_for_review
- reopened
- synchronize
concurrency:
cancel-in-progress: true
group: >-
${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
jobs:
tests:
if: github.event.pull_request.draft == false
name: Tests
runs-on: ubuntu-latest
strategy:
matrix:
python-version:
- "3.9"
- "3.10"
- "3.11"
- "3.12"
steps:
- name: Checkout source
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Cache nox
uses: actions/cache@v4
with:
key: test-${{ hashFiles('pyproject.toml') }}
path: .nox
- name: Set up Python
uses: actions/setup-python@v5
with:
cache-dependency-path: pyproject.toml
cache: pip
python-version: ${{ matrix.python-version }}
- name: Install nox and coverage.py
run: python -m pip install coverage[toml] nox
- name: Run doctests
run: nox -s doctests-${{ matrix.python-version }} --verbose
env:
FORCE_COLOR: 1
- name: Run tests and generate coverage report
run: nox -s coverage-${{ matrix.python-version }} --verbose
env:
FORCE_COLOR: 1
- name: Coveralls requires XML report
run: coverage xml
- name: Run Coveralls in parallel
uses: coverallsapp/github-action@v2
with:
flag-name: run-${{ matrix.python-version }}
parallel: true
aggregate-tests:
needs: tests
if: always()
runs-on: ubuntu-latest
steps:
- name: Coveralls finished
uses: coverallsapp/github-action@v2
with:
carryforward: run-3.9,run-3.10,run-3.11,run-3.12
parallel-finished: true
build:
if: github.event.pull_request.draft == false
name: Build
runs-on: ubuntu-latest
steps:
- name: Checkout source
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Python
uses: actions/setup-python@v5
with:
cache-dependency-path: pyproject.toml
cache: pip
python-version: 3.x
- name: Install nox
run: python -m pip install nox
- name: Build SDist and wheel
run: nox -s build --verbose
env:
FORCE_COLOR: 1
docs:
if: github.event.pull_request.draft == false
name: Docs
runs-on: ubuntu-latest
steps:
- name: Checkout source
uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/setup-python@v5
with:
cache-dependency-path: pyproject.toml
cache: pip
python-version: 3.x
- name: Install dependencies
run: |-
sudo apt-get update
sudo apt-get install -y pandoc
python -m pip install nox
- name: Build docs
run: nox -s docs --verbose
env:
FORCE_COLOR: 1