Repository navigation
Move to Haybarn 2.0 rc9 clients #156
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Copyright 2026 Query Farm LLC - https://query.farm | |
| # | |
| # Unit tests and a javadoc build for the SDK itself. The Integration suite | |
| # workflow covers the protocol end-to-end against a real DuckDB, but it only | |
| # ever compiles the example worker -- vgi/src/test carried 278 JUnit tests that | |
| # nothing in CI ran. This workflow is that gate. | |
| # | |
| # Resolve the same Maven Central RPC dependencies as published SDK consumers. | |
| name: CI | |
| on: | |
| push: | |
| pull_request: | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| concurrency: | |
| group: ci-${{ github.ref }} | |
| cancel-in-progress: true | |
| env: | |
| # Disable local sibling substitution: validate the released Maven dependency. | |
| VGI_RPC_JAVA_DIR: /nonexistent | |
| jobs: | |
| test: | |
| name: Unit tests (JDK 25) | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout vgi-java | |
| uses: actions/checkout@v4 | |
| - name: Set up JDK 25 | |
| uses: actions/setup-java@v4 | |
| with: | |
| distribution: temurin | |
| java-version: '25' | |
| - name: Cache Gradle | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| ~/.gradle/caches | |
| ~/.gradle/wrapper | |
| key: gradle-${{ runner.os }}-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} | |
| restore-keys: gradle-${{ runner.os }}- | |
| - name: Unit tests | |
| run: ./gradlew --no-daemon :vgi:test | |
| # The published artifact carries javadoc, so a doc comment that does not | |
| # build is a broken release, not a warning. | |
| - name: Javadoc | |
| run: ./gradlew --no-daemon :vgi:javadoc | |
| - name: Upload test report on failure | |
| if: failure() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: test-results | |
| path: vgi/build/reports/tests/test | |
| # vgi-rpc's hosted-protocols group against the example worker on stdio, unix | |
| # and HTTP: conformance.Secondary.v1 hosted beside vgi.v3 through | |
| # Worker.hostedProtocols, the error model, the traceback policy, and over HTTP | |
| # the vgi_rpc.Identity.v2 conformance policy (--identity). | |
| # | |
| # The reference is cloned from main, deliberately unpinned -- the same pattern | |
| # vgi-rpc-java's conformance lanes use: it is the yardstick, and a pinned | |
| # yardstick lets a lane stay green against a stale contract. | |
| hosted-protocols: | |
| name: Hosted protocols (stdio, unix, http) | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout vgi-java | |
| uses: actions/checkout@v4 | |
| - name: Set up JDK 25 | |
| uses: actions/setup-java@v4 | |
| with: | |
| distribution: temurin | |
| java-version: '25' | |
| - name: Set up Python 3.13 | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.13' | |
| - name: Cache Gradle | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| ~/.gradle/caches | |
| ~/.gradle/wrapper | |
| key: gradle-${{ runner.os }}-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} | |
| restore-keys: gradle-${{ runner.os }}- | |
| - name: Clone vgi-rpc-python reference (main, deliberately unpinned) | |
| run: git clone --depth 1 https://github.com/Query-farm/vgi-rpc-python.git "$RUNNER_TEMP/vgi-rpc-python" | |
| - name: Install the reference's conformance runner | |
| run: | | |
| python -m pip install --upgrade pip | |
| python -m pip install "$RUNNER_TEMP/vgi-rpc-python[http,conformance]" pytest pytest-timeout | |
| - name: Build example worker | |
| run: ./gradlew --no-daemon :vgi-example-worker:installDist | |
| - name: Run hosted-protocols group | |
| run: ci/run-hosted-protocols.sh | |
| env: | |
| VGI_WORKER_BIN: ${{ github.workspace }}/vgi-example-worker/build/install/vgi-example-worker/bin/vgi-example-worker |