-
Notifications
You must be signed in to change notification settings - Fork 27
120 lines (100 loc) · 2.61 KB
/
ci.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
name: "CI"
on:
push:
pull_request:
defaults:
run:
shell: bash
permissions:
contents: read
concurrency:
group: "${{ github.workflow }}-${{ github.ref }}"
cancel-in-progress: true
jobs:
format:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: chartboost/ruff-action@v1
with:
args: 'format --check'
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: chartboost/ruff-action@v1
tests:
name: "Python ${{ matrix.python }} on ${{ matrix.os }}"
runs-on: "${{ matrix.os }}-${{ matrix.os-version || 'latest' }}"
env:
MATRIX_ID: "${{ matrix.python }}.${{ matrix.os }}"
strategy:
fail-fast: false
matrix:
os:
- ubuntu
- macos
- windows
python:
# When changing this list, be sure to check the [gh] list in
# tox.ini so that tox will run properly.
- "3.7"
- "3.8"
- "3.9"
- "3.10"
- "3.11"
- "3.12"
include:
- python: "3.7"
os: "macos"
os-version: "13"
- python: "3.8"
os: "macos"
os-version: "13"
- python: "3.9"
os: "macos"
os-version: "13"
steps:
- name: "Check out the repo"
uses: "actions/checkout@v4"
- name: "Set up Python"
uses: "actions/setup-python@v5"
with:
python-version: "${{ matrix.python }}"
- name: "Install dependencies"
run: |
python -m pip install -r requirements.pip
- name: "Run tox for ${{ matrix.python }}"
run: |
python -m tox
python -m coverage debug data
- name: "Upload coverage data"
uses: actions/upload-artifact@v4
with:
name: covdata-${{ env.MATRIX_ID }}
path: .coverage.*
combine:
name: "Combine and report coverage"
needs: tests
runs-on: ubuntu-latest
steps:
- name: "Check out the repo"
uses: "actions/checkout@v4"
with:
fetch-depth: "0"
- name: "Set up Python"
uses: "actions/setup-python@v5"
with:
python-version: "3.8"
- name: "Install dependencies"
run: |
python -m pip install -r requirements.pip
- name: "Download coverage data"
uses: actions/download-artifact@v4
with:
pattern: covdata-*
merge-multiple: true
- name: "Combine and report"
run: |
python -m coverage combine
python -m coverage report -m