Repository navigation
Bound nightly simulation jobs and report reproducible timeouts #47
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
| name: Server ZD SDK CI | |
| # server/** is not a trigger: zd-mode dexcli dev runs no Go Server code beyond server/gen/dexpb (protos/**). | |
| on: | |
| push: | |
| branches: [main] | |
| paths: | |
| - "sdk-go/**" | |
| - "sdk-rust/**" | |
| - "sdk-python/**" | |
| - "sdk-typescript/**" | |
| - "sdk-java/**" | |
| - "server-zd/**" | |
| - "s3mock/**" | |
| - "cli/**" | |
| - "web/**" | |
| - "protos/**" | |
| - "go.work" | |
| - "go.work.sum" | |
| - ".github/workflows/server-zd-sdk-ci.yml" | |
| pull_request: | |
| paths: | |
| - "sdk-go/**" | |
| - "sdk-rust/**" | |
| - "sdk-python/**" | |
| - "sdk-typescript/**" | |
| - "sdk-java/**" | |
| - "server-zd/**" | |
| - "s3mock/**" | |
| - "cli/**" | |
| - "web/**" | |
| - "protos/**" | |
| - "go.work" | |
| - "go.work.sum" | |
| - ".github/workflows/server-zd-sdk-ci.yml" | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| concurrency: | |
| group: server-zd-sdk-${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| # The CARGO_* and RUST* values match the Server ZD CI ParadeDB job, so its main cache restores here. | |
| env: | |
| CARGO_TERM_COLOR: always | |
| CARGO_INCREMENTAL: "0" | |
| RUST_BACKTRACE: "1" | |
| RUSTUP_TOOLCHAIN: "1.97.1" | |
| CARGO_BUILD_JOBS: "4" | |
| DEX_INTEG_ENGINE: zd | |
| DEX_INTEG_WORKER_MODE: pull | |
| DEX_SERVER_ZD_BINARY: ${{ github.workspace }}/server-zd/target/debug/dex-server-zd | |
| jobs: | |
| integration: | |
| name: ${{ matrix.sdk }} SDK integration (server-zd pull) | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 75 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - sdk: Go | |
| directory: sdk-go | |
| script: ./run-e2e-tests.sh | |
| service-log: /tmp/test-go-sdk-phase5-e2e-services.log | |
| - sdk: Rust | |
| directory: sdk-rust | |
| script: ./run-integration-tests.sh | |
| service-log: /tmp/test-rust-sdk-integration-services.log | |
| - sdk: Python | |
| directory: sdk-python | |
| script: ./run-integration-tests.sh | |
| service-log: /tmp/test-python-sdk-integration-services.log | |
| - sdk: TypeScript | |
| directory: sdk-typescript | |
| script: ./run-integration-tests.sh | |
| service-log: /tmp/test-typescript-sdk-integration-services.log | |
| - sdk: Java | |
| directory: sdk-java | |
| script: ./run-integration-tests.sh | |
| service-log: /tmp/test-java-sdk-integration-services.log | |
| defaults: | |
| run: | |
| working-directory: ${{ matrix.directory }} | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - name: Install Rust | |
| run: rustup toolchain install 1.97.1 --profile minimal | |
| - name: Install libclang for RocksDB | |
| run: sudo apt-get update && sudo apt-get install -y libclang-dev | |
| - uses: Swatinem/rust-cache@v2 | |
| with: | |
| workspaces: server-zd | |
| shared-key: server-zd-paradedb | |
| # Restore-only: the ParadeDB job owns this key, and five legs must not race to save it. | |
| save-if: false | |
| - name: Build dex-server-zd | |
| working-directory: server-zd | |
| run: cargo build --locked -p dexzd-server --bin dex-server-zd | |
| - uses: actions/setup-go@v7 | |
| with: | |
| go-version-file: cli/go.mod | |
| cache-dependency-path: | | |
| sdk-go/go.sum | |
| cli/go.sum | |
| server/go.sum | |
| web/go.sum | |
| go.work.sum | |
| - uses: actions/setup-node@v6 | |
| with: | |
| node-version: "22" | |
| cache: npm | |
| cache-dependency-path: | | |
| web/package-lock.json | |
| sdk-typescript/package-lock.json | |
| - name: Install Python and uv | |
| if: matrix.sdk == 'Python' | |
| uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 | |
| with: | |
| version: "0.12.2" | |
| python-version: "3.11" | |
| working-directory: sdk-python | |
| enable-cache: true | |
| - name: Install Java | |
| if: matrix.sdk == 'Java' | |
| uses: actions/setup-java@v5 | |
| with: | |
| distribution: zulu | |
| java-version: "25" | |
| - name: Set up Gradle | |
| if: matrix.sdk == 'Java' | |
| uses: gradle/actions/setup-gradle@v6 | |
| - name: Install TypeScript dependencies | |
| if: matrix.sdk == 'TypeScript' | |
| run: npm ci | |
| - name: Install Python dependencies | |
| if: matrix.sdk == 'Python' | |
| run: uv sync --locked --reinstall-package dex-python-sdk | |
| - name: Run SDK integration suite | |
| run: ${{ matrix.script }} | |
| - name: Upload service logs | |
| if: always() | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: server-zd-${{ matrix.directory }}-services | |
| path: ${{ matrix.service-log }} | |
| if-no-files-found: ignore |