Skip to content

Commit 1ea8e9a

Browse files
authored
Merge pull request #621 from leblancfg/ci-test-cli
Run the CLI tests in CI
2 parents 6d4a664 + efc8f32 commit 1ea8e9a

File tree

4 files changed

+45
-2
lines changed

4 files changed

+45
-2
lines changed

.github/workflows/cli_tests.yml

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
name: CLI Tests
2+
3+
on:
4+
push:
5+
paths:
6+
- "cli/**"
7+
pull_request:
8+
paths:
9+
- "cli/**"
10+
11+
jobs:
12+
test:
13+
runs-on: ubuntu-latest
14+
defaults:
15+
run:
16+
working-directory: ./cli
17+
steps:
18+
- uses: actions/checkout@v4
19+
20+
- name: Set up Node.js
21+
uses: actions/setup-node@v4
22+
with:
23+
node-version-file: package.json
24+
cache: npm
25+
26+
- name: Install dependencies
27+
run: |
28+
cd ..
29+
npm ci --ignore-scripts
30+
31+
- name: Build CLI
32+
run: npm run build
33+
34+
- name: Explicitly pre-install test dependencies
35+
run: npx -y @modelcontextprotocol/server-everything --help || true
36+
37+
- name: Run tests
38+
run: npm test
39+
env:
40+
NPM_CONFIG_YES: true
41+
CI: true

cli/scripts/cli-tests.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ const colors = {
1212

1313
import fs from "fs";
1414
import path from "path";
15-
import { execSync, spawn } from "child_process";
15+
import { spawn } from "child_process";
1616
import os from "os";
1717
import { fileURLToPath } from "url";
1818

cli/src/cli.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -233,7 +233,7 @@ async function main(): Promise<void> {
233233
const args = parseArgs();
234234

235235
if (args.cli) {
236-
runCli(args);
236+
await runCli(args);
237237
} else {
238238
await runWebClient(args);
239239
}

cli/src/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -287,6 +287,8 @@ async function main(): Promise<void> {
287287
try {
288288
const args = parseArgs();
289289
await callMethod(args);
290+
// Explicitly exit to ensure process terminates in CI
291+
process.exit(0);
290292
} catch (error) {
291293
handleError(error);
292294
}

0 commit comments

Comments
 (0)