-
Notifications
You must be signed in to change notification settings - Fork 0
69 lines (60 loc) · 1.93 KB
/
Copy pathci.yml
File metadata and controls
69 lines (60 loc) · 1.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
name: CI
on:
push:
branches: [main]
pull_request:
jobs:
build:
name: Build & smoke (Node ${{ matrix.node }})
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
node: ['20', '22', '24']
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node }}
cache: npm
- run: npm ci
- run: npm run build
- name: CLI smoke (--help)
run: node dist/cli.js --help > /dev/null
- name: CLI smoke (platforms)
run: |
node dist/cli.js platforms | node -e "
const o = JSON.parse(require('fs').readFileSync(0, 'utf8'));
if (!o.ok || !Array.isArray(o.data.platforms) || o.data.total < 30) {
console.error('cli smoke failed', o);
process.exit(1);
}
console.log('cli smoke OK:', o.data.total, 'platforms');
"
- name: MCP smoke (tools/list)
run: node scripts/mcp-smoke.mjs
package:
name: npm pack sanity
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '24'
cache: npm
- run: npm ci
- run: npm run build
- name: Verify packaged contents
run: |
npm pack --dry-run --json > pack.json
node -e "
const p = JSON.parse(require('fs').readFileSync('pack.json', 'utf8'))[0];
const required = ['dist/cli.js', 'dist/mcp.js', 'package.json', 'README.md', 'LICENSE'];
const files = p.files.map(f => f.path);
const missing = required.filter(r => !files.includes(r));
if (missing.length) {
console.error('missing from package:', missing);
process.exit(1);
}
console.log('package OK:', p.filename, p.size, 'bytes,', p.files.length, 'files');
"