104 lines
No EOL
3.1 KiB
YAML
104 lines
No EOL
3.1 KiB
YAML
name: Conformance Tests
|
|
|
|
on:
|
|
pull_request: {}
|
|
push:
|
|
branches: [main]
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
server:
|
|
name: Server Conformance
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Set up JDK 17
|
|
uses: actions/setup-java@v4
|
|
with:
|
|
java-version: '17'
|
|
distribution: 'temurin'
|
|
cache: 'maven'
|
|
|
|
- name: Build and start server
|
|
run: |
|
|
mvn clean install -DskipTests
|
|
mvn exec:java -pl conformance-tests/server-servlet -Dexec.mainClass="io.modelcontextprotocol.conformance.server.ConformanceServlet" &
|
|
timeout 30 bash -c 'until curl -s http://localhost:8080/mcp > /dev/null 2>&1; do sleep 0.5; done'
|
|
|
|
- name: Run conformance tests
|
|
uses: modelcontextprotocol/conformance@v0.1.11
|
|
with:
|
|
mode: server
|
|
url: http://localhost:8080/mcp
|
|
suite: active
|
|
expected-failures: ./conformance-tests/conformance-baseline.yml
|
|
|
|
client:
|
|
name: Client Conformance
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
matrix:
|
|
scenario: [initialize, tools_call, elicitation-sep1034-client-defaults, sse-retry]
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Set up JDK 17
|
|
uses: actions/setup-java@v4
|
|
with:
|
|
java-version: '17'
|
|
distribution: 'temurin'
|
|
cache: 'maven'
|
|
|
|
- name: Build client
|
|
run: mvn clean install -DskipTests
|
|
|
|
- name: Run conformance test
|
|
uses: modelcontextprotocol/conformance@v0.1.11
|
|
with:
|
|
mode: client
|
|
command: 'java -jar conformance-tests/client-jdk-http-client/target/client-jdk-http-client-*-SNAPSHOT.jar'
|
|
scenario: ${{ matrix.scenario }}
|
|
expected-failures: ./conformance-tests/conformance-baseline.yml
|
|
|
|
auth:
|
|
name: Auth Conformance
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
matrix:
|
|
scenario:
|
|
- auth/metadata-default
|
|
- auth/metadata-var1
|
|
- auth/metadata-var2
|
|
- auth/metadata-var3
|
|
- auth/basic-cimd
|
|
- auth/scope-from-www-authenticate
|
|
- auth/scope-from-scopes-supported
|
|
- auth/scope-omitted-when-undefined
|
|
- auth/scope-step-up
|
|
- auth/scope-retry-limit
|
|
- auth/token-endpoint-auth-basic
|
|
- auth/token-endpoint-auth-post
|
|
- auth/token-endpoint-auth-none
|
|
- auth/pre-registration
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Set up JDK 17
|
|
uses: actions/setup-java@v4
|
|
with:
|
|
java-version: '17'
|
|
distribution: 'temurin'
|
|
cache: 'maven'
|
|
|
|
- name: Build client
|
|
run: mvn clean install -DskipTests
|
|
|
|
- name: Run conformance test
|
|
uses: modelcontextprotocol/conformance@v0.1.16
|
|
with:
|
|
node-version: '22' # see https://github.com/modelcontextprotocol/conformance/pull/162
|
|
mode: client
|
|
command: 'java -jar conformance-tests/client-spring-http-client/target/client-spring-http-client-*-SNAPSHOT.jar'
|
|
scenario: ${{ matrix.scenario }}
|
|
expected-failures: ./conformance-tests/conformance-baseline.yml |