File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ name : Conformance
2+
3+ on :
4+ push :
5+ branches : [main]
6+ pull_request :
7+ branches : [main]
8+ workflow_dispatch :
9+
10+ concurrency :
11+ group : conformance-${{ github.ref }}
12+ cancel-in-progress : true
13+
14+ env :
15+ # Pinned for reproducible runs; bump deliberately when the suite updates.
16+ CONFORMANCE_VERSION : " 0.1.16"
17+
18+ jobs :
19+ server :
20+ runs-on : ubuntu-latest
21+ permissions :
22+ contents : read
23+ steps :
24+ - uses : actions/checkout@v7
25+
26+ - name : Install Rust toolchain
27+ uses : dtolnay/rust-toolchain@stable
28+
29+ - uses : Swatinem/rust-cache@v2
30+
31+ - name : Build conformance server
32+ run : cargo build -p mcp-conformance --bin conformance-server
33+
34+ - name : Start conformance server
35+ run : |
36+ PORT=8001 ./target/debug/conformance-server &
37+ echo $! > server.pid
38+ for _ in $(seq 1 30); do
39+ if curl -s -o /dev/null http://127.0.0.1:8001/mcp; then
40+ exit 0
41+ fi
42+ sleep 1
43+ done
44+ echo "conformance server did not become ready" >&2
45+ exit 1
46+
47+ - name : Run server conformance suite
48+ run : |
49+ npx -y "@modelcontextprotocol/conformance@${CONFORMANCE_VERSION}" server \
50+ --url http://127.0.0.1:8001/mcp \
51+ --spec-version 2025-11-25 \
52+ -o conformance-results
53+
54+ - name : Stop conformance server
55+ if : always()
56+ run : kill "$(cat server.pid)" 2>/dev/null || true
57+
58+ - name : Upload results
59+ if : always()
60+ uses : actions/upload-artifact@v7
61+ with :
62+ name : conformance-server-results
63+ path : conformance-results
You can’t perform that action at this time.
0 commit comments