-
Notifications
You must be signed in to change notification settings - Fork 0
92 lines (78 loc) · 2.28 KB
/
ci.yml
File metadata and controls
92 lines (78 loc) · 2.28 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
name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
test-plugin:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.12'
cache: 'pip'
cache-dependency-path: requirements-test.txt
- name: Install test dependencies
run: pip install -r requirements-test.txt
- name: Run test suite
run: pytest tests/ -v --tb=short
build-mcp:
runs-on: ubuntu-latest
defaults:
run:
working-directory: mcp-server
strategy:
matrix:
node-version: [20, 22]
steps:
- uses: actions/checkout@v4
- name: Set up Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
cache-dependency-path: mcp-server/package-lock.json
- name: Install dependencies
run: npm ci
- name: Build
run: npm run build
- name: Smoke test (server starts without crashing)
run: |
node dist/index.js < /dev/null &
PID=$!
sleep 3
if kill -0 "$PID" 2>/dev/null; then
echo "Server still running after 3s. Smoke test passed."
kill "$PID" 2>/dev/null || true
wait "$PID" 2>/dev/null || true
else
echo "Server exited (expected for stdio server with no stdin). Checking exit code."
wait "$PID" 2>/dev/null
EXIT_CODE=$?
if [ "$EXIT_CODE" -le 1 ]; then
echo "Clean exit (code $EXIT_CODE). Smoke test passed."
else
echo "Server crashed with exit code $EXIT_CODE."
exit 1
fi
fi
build-npm-package:
runs-on: ubuntu-latest
defaults:
run:
working-directory: packages/mobile-dev-tools
steps:
- uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: 22
cache: 'npm'
cache-dependency-path: packages/mobile-dev-tools/package-lock.json
- name: Install dependencies
run: npm ci
- name: Build
run: npm run build