From 5cc65231eb69773f9b19e7dfd2b6cb0eb44388d2 Mon Sep 17 00:00:00 2001 From: Konstantin Pavlov <1517853+kpavlov@users.noreply.github.com> Date: Tue, 21 Oct 2025 20:18:20 +0300 Subject: [PATCH 1/2] Add GitHub workflow to validate samples --- .github/workflows/samples.yml | 76 +++++++++++++++++++++++++++++++++++ 1 file changed, 76 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 00000000..a7a19654 --- /dev/null +++ b/.github/workflows/samples.yml @@ -0,0 +1,76 @@ +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 with Gradle + working-directory: matrix.sample + run: |- + ./../../gradlew --no-daemon --rerun-tasks \ + clean \ + ktlintCheck \ + build \ + koverLog koverHtmlReport \ + publishToMavenLocal + + - name: "Build Sample: ${{ matrix.sample }}" + working-directory: ./samples/${{ matrix.sample }} + run: ./../../gradlew --no-daemon --rerun-tasks clean build + + - name: Upload Reports + if: ${{ !cancelled() }} + uses: actions/upload-artifact@v4 + with: + name: reports + path: | + **/build/reports/ + + - name: Disable Auto-Merge on Fail + if: failure() && github.event_name == 'pull_request' + run: gh pr merge --disable-auto "$PR_URL" + env: + PR_URL: ${{github.event.pull_request.html_url}} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + From cf3aeacbbb6cd95cfeac70c36b5e3d86f97a9830 Mon Sep 17 00:00:00 2001 From: Konstantin Pavlov <1517853+kpavlov@users.noreply.github.com> Date: Tue, 21 Oct 2025 20:22:48 +0300 Subject: [PATCH 2/2] Add GitHub workflow to validate samples --- .github/workflows/samples.yml | 24 +++--------------------- 1 file changed, 3 insertions(+), 21 deletions(-) diff --git a/.github/workflows/samples.yml b/.github/workflows/samples.yml index a7a19654..b3ec95d1 100644 --- a/.github/workflows/samples.yml +++ b/.github/workflows/samples.yml @@ -14,7 +14,7 @@ on: 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' }} + cancel-in-progress: ${{ github.ref != 'refs/heads/main' }} jobs: build: @@ -45,32 +45,14 @@ jobs: add-job-summary: 'always' cache-read-only: true - - name: Build with Gradle - working-directory: matrix.sample - run: |- - ./../../gradlew --no-daemon --rerun-tasks \ - clean \ - ktlintCheck \ - build \ - koverLog koverHtmlReport \ - publishToMavenLocal - - name: "Build Sample: ${{ matrix.sample }}" working-directory: ./samples/${{ matrix.sample }} - run: ./../../gradlew --no-daemon --rerun-tasks clean build + run: ./../../gradlew --no-daemon clean build - name: Upload Reports if: ${{ !cancelled() }} uses: actions/upload-artifact@v4 with: - name: reports + name: reports-${{ matrix.sample }} path: | **/build/reports/ - - - name: Disable Auto-Merge on Fail - if: failure() && github.event_name == 'pull_request' - run: gh pr merge --disable-auto "$PR_URL" - env: - PR_URL: ${{github.event.pull_request.html_url}} - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} -