-
Notifications
You must be signed in to change notification settings - Fork 56
137 lines (112 loc) · 2.93 KB
/
ci.yml
File metadata and controls
137 lines (112 loc) · 2.93 KB
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
135
136
137
name: CI
on:
push:
branches:
- main
pull_request:
permissions:
contents: read
env:
PIP_DISABLE_PIP_VERSION_CHECK: 1
COVERAGE_IGOR_VERBOSE: 1
FORCE_COLOR: 1 # Get colored pytest output
jobs:
sanity:
name: Sanity - ${{ matrix.test.name }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
test:
- name: Type
step_name: Check types
command: pyright
- name: Lint
step_name: Run lint
command: ruff check --diff
- name: Format
step_name: Run format check
command: ruff format --diff
steps:
- name: Checkout
uses: actions/checkout@v6.0.2
- name: Install Python
uses: actions/setup-python@v6.2.0
with:
python-version-file: pyproject.toml
- name: Install uv
uses: astral-sh/setup-uv@v8.1.0
with:
enable-cache: true
prune-cache: false
- name: Install Node.js
uses: actions/setup-node@v6.4.0
with:
node-version: '24'
- name: Install dependencies
run: |
cd mcp-app
npm install
npm run build:prod
cd ..
uv sync --locked --group lint
- name: "Show environment"
run: |
python -VV
python -m site
uv --version
env | sort
ls -ld $(python -c "import site; print(site.getsitepackages()[0])")
whoami
- name: ${{ matrix.test.step_name }}
run: uv run --locked ${{ matrix.test.command }}
tests:
name: Unit - ${{ matrix.python-version }}
runs-on: ubuntu-latest
strategy:
fail-fast: true
matrix:
python-version:
- "3.10"
- "3.11"
- "3.12"
- "3.13"
- "3.14"
- "3.14t"
steps:
- name: Checkout
uses: actions/checkout@v6.0.2
- name: Install Python
uses: actions/setup-python@v6.2.0
with:
python-version: ${{ matrix.python-version }}
- name: Install uv
uses: astral-sh/setup-uv@v8.1.0
with:
enable-cache: true
prune-cache: false
- name: Install dependencies
run: |
cd mcp-app
npm install
npm run build:prod
cd ..
uv sync --locked --group test
- name: Show environment
run: |
set -x
python -VV
python -m site
uv --version
ls -ld $(python -c "import site; print(site.getsitepackages()[0])")
whoami
- name: Run tests
run: uv run --locked pytest --cov-report=xml
- name: Upload coverage report
uses: codecov/codecov-action@v6.0.0
with:
env_vars: OS,PYTHON
disable_search: true
files: coverage/coverage.xml
fail_ci_if_error: true
flags: unittests