Repository navigation
Release Python SDK 0.48.0 for VGI protocol v3 #388
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
| # Runs the canonical Query-farm/vgi integration sqllogictest suite against the | |
| # Python example worker on every push / PR. The native runner comes from the | |
| # Query-farm/vgi Actions build of the same commit as the test suite and statically | |
| # links the matching extension. Public package releases remain separate. | |
| # ci/run-integration.sh also supports the published standalone runner locally. | |
| # | |
| # (The separate ci.yml covers lint / type-check / unit + conformance tests / docs. | |
| # Those drive the pure-Python in-process Client; this workflow is the only place | |
| # the worker is exercised through the real DuckDB extension over the wire.) | |
| name: Integration suite | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| branches: [main] | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| actions: read | |
| concurrency: | |
| group: integration-${{ github.ref }} | |
| cancel-in-progress: true | |
| env: | |
| # The test suite and native Actions artifact must come from this exact ref. | |
| # The downloader verifies its provenance against the checked-out commit. | |
| VGI_REF: a83ff7e8cd46aa840a10e78fe9b31603931824c2 | |
| VGI_NATIVE_RUNNER_BRANCH: release/vgi-v3-ci-20261028 | |
| # CI is not a user: its ATTACHes should not land in Query.Farm's adoption data. | |
| # The vgi extension fires a telemetry event per successful ATTACH, and this | |
| # suite performs several hundred of them per lane, so opting out keeps the | |
| # numbers honest. It also removes telemetry as a variable in lane timings — | |
| # the per-ATTACH event was added in Query-farm/vgi 71e2d51 (2026-07-12), and | |
| # the stdio lane total stepped from ~690s to ~870s across that window. | |
| QUERY_FARM_TELEMETRY_OPT_OUT: "1" | |
| jobs: | |
| integration: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 45 | |
| strategy: | |
| # If any transport leg fails, cancel the rest — one broken transport means | |
| # the build is broken; no value in burning ~45 min finishing the others. | |
| fail-fast: true | |
| matrix: | |
| include: | |
| # launch: the primary lane, over the reusable AF_UNIX launcher transport. | |
| # shm: launch + the POSIX shared-memory side channel. Rides the | |
| # launcher, not raw subprocess, to avoid paying the | |
| # fork-per-connection cost for the whole suite. | |
| # http: the whole suite over the stateless HTTP transport. | |
| - { lane: launch } | |
| - { lane: shm, shm_bytes: '67108864' } | |
| - { lane: http } | |
| name: integration (${{ matrix.lane }}) | |
| steps: | |
| - name: Checkout vgi-python | |
| uses: actions/checkout@v7 | |
| - name: Checkout pinned vgi test suite | |
| uses: actions/checkout@v7 | |
| with: | |
| repository: Query-farm/vgi | |
| ref: ${{ env.VGI_REF }} | |
| path: vgi-upstream | |
| token: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v10.2.0 | |
| - name: Set up Python 3.14 | |
| run: uv python install 3.14 | |
| - name: Install dependencies (vgi + fixtures + all extras) | |
| run: uv sync --all-extras --python 3.14 | |
| - name: Download the matching native integration runner | |
| run: | | |
| python3 "$VGI_SRC/scripts/ci_fetch_native_runner.py" \ | |
| --source "$VGI_SRC" --output "$RUNNER_TEMP/vgi-native" | |
| env: | |
| GH_TOKEN: ${{ github.token }} | |
| VGI_SRC: ${{ github.workspace }}/vgi-upstream | |
| - name: Run integration suite (${{ matrix.lane }}) | |
| run: ci/run-integration.sh | |
| env: | |
| VGI_SRC: ${{ github.workspace }}/vgi-upstream | |
| TRANSPORT: ${{ matrix.lane }} | |
| # Empty on every lane except shm; run-integration.sh drops an empty value. | |
| VGI_RPC_SHM_SIZE_BYTES: ${{ matrix.shm_bytes || '' }} |