1515 - " *.sln"
1616 - " *.props"
1717 - " Makefile"
18+ - " global.json"
1819 - " src/**"
1920 - " tests/**"
2021 - " samples/**"
22+ - " docs/**"
2123
2224permissions :
2325 contents : read
@@ -33,61 +35,60 @@ jobs:
3335 runs-on : ${{ matrix.os }}
3436
3537 steps :
36- - name : Clone the repo
37- uses : actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
38+ - name : 📥 Clone the repo
39+ uses : actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
3840 with :
3941 fetch-depth : 0 # Shallow clones should be disabled for a better relevancy of analysis
4042
41- - name : Set up .NET
42- uses : actions/setup-dotnet@67a3573c9a986a3f9c594539f4ab511d57bb3ce9 # v4.3 .1
43+ - name : 🔧 Set up .NET
44+ uses : actions/setup-dotnet@2016bd2012dba4e32de620c46fe006a3ac9f0602 # v5.0 .1
4345 with :
4446 dotnet-version : |
47+ 10.0.x
4548 9.0.x
46- 8.0.x
4749
4850 # NetFX testing on non-Windows requires mono
49- - name : Setup Mono
51+ - name : 🔧 Setup Mono
5052 if : runner.os == 'Linux'
5153 run : sudo apt-get install -y mono-devel
5254
53- - name : Set up Node.js
54- uses : actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4.3.0
55+ - name : 🔧 Setup Mono on macOS
56+ if : runner.os == 'macOS'
57+ run : brew install mono
58+
59+ - name : 🔧 Set up Node.js
60+ uses : actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0
5561 with :
5662 node-version : ' 20'
5763
58- - name : Install dependencies for tests
64+ - name : 📦 Install dependencies for tests
5965 run : npm install @modelcontextprotocol/server-everything
6066
61- - name : Install dependencies for tests
67+ - name : 📦 Install dependencies for tests
6268 run : npm install @modelcontextprotocol/server-memory
6369
64- - name : Build
65- run : dotnet build --configuration ${{ matrix.configuration }}
66-
67- - name : Pack
68- run : dotnet pack --configuration ${{ matrix.configuration }}
69-
70- - name : Test
71- run : >-
72- dotnet test
73- --filter '(Execution!=Manual)'
74- --no-build
75- --configuration ${{ matrix.configuration }}
76- --logger "console;verbosity=normal"
77- --logger "trx"
78- --logger "GitHubActions;summary.includePassedTests=true;summary.includeSkippedTests=true"
79- --blame
80- --blame-hang-timeout 7m
81- --blame-crash
82- --results-directory testresults
83- --collect "XPlat Code Coverage" -- RunConfiguration.CollectSourceInformation=true
84-
85- - name : Upload test results artifact
70+ - name : 📦 Install dependencies for tests
71+ run : npm install @modelcontextprotocol/conformance
72+
73+ - name : 🏗️ Build
74+ run : make build CONFIGURATION=${{ matrix.configuration }}
75+
76+ - name : 🧪 Test
77+ run : make test CONFIGURATION=${{ matrix.configuration }}
78+
79+ - name : 📦 Pack
80+ if : matrix.configuration == 'Release'
81+ run : make pack CONFIGURATION=${{ matrix.configuration }}
82+
83+ - name : 📚 Generate docs
84+ run : make generate-docs CONFIGURATION=${{ matrix.configuration }}
85+
86+ - name : 📤 Upload test results artifact
8687 if : always()
87- uses : actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
88+ uses : actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0
8889 with :
8990 name : testresults-${{ matrix.os }}-${{ matrix.configuration }}
90- path : testresults/**
91+ path : artifacts/ testresults/**
9192
9293 publish-coverage :
9394 if : github.actor != 'dependabot[bot]'
0 commit comments