From 468877d5cb90b0ec6952dab9b118f3f30ce78954 Mon Sep 17 00:00:00 2001 From: Konstantin Pavlov <1517853+kpavlov@users.noreply.github.com> Date: Wed, 22 Oct 2025 14:20:52 +0300 Subject: [PATCH] #302 [part 1] Add GitHub workflow to validate samples (#327) #302 Add GitHub workflow to validate samples ## Motivation and Context ## How Has This Been Tested? ## Breaking Changes ## Types of changes - [x] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist - [x] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [x] My code follows the repository's style guidelines - [ ] New and existing tests pass locally - [ ] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context --- .github/workflows/samples.yml | 58 +++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 .github/workflows/samples.yml diff --git a/.github/workflows/samples.yml b/.github/workflows/samples.yml new file mode 100644 index 0000000..b3ec95d --- /dev/null +++ b/.github/workflows/samples.yml @@ -0,0 +1,58 @@ +name: Build Samples + +on: + workflow_dispatch: + pull_request: + branches: [ main ] + paths: + - 'samples/**' + push: + branches: [ main ] + paths: + - 'samples/**' + +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + # Cancel only when the run is NOT on `main` branch + cancel-in-progress: ${{ github.ref != 'refs/heads/main' }} + +jobs: + build: + runs-on: ubuntu-latest + strategy: + matrix: + sample: + - kotlin-mcp-client + - kotlin-mcp-server + - weather-stdio-server + + name: Build Sample + timeout-minutes: 10 + env: + JAVA_OPTS: "-Xmx8g -Dfile.encoding=UTF-8 -Djava.awt.headless=true -Dkotlin.daemon.jvm.options=-Xmx6g" + steps: + - uses: actions/checkout@v5 + + - name: Set up JDK 21 + uses: actions/setup-java@v5 + with: + java-version: 21 + distribution: 'temurin' + + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v5 + with: + add-job-summary: 'always' + cache-read-only: true + + - name: "Build Sample: ${{ matrix.sample }}" + working-directory: ./samples/${{ matrix.sample }} + run: ./../../gradlew --no-daemon clean build + + - name: Upload Reports + if: ${{ !cancelled() }} + uses: actions/upload-artifact@v4 + with: + name: reports-${{ matrix.sample }} + path: | + **/build/reports/