From 738d113b49488a32e4a12599c9c20d7058ebbe76 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 23 Jun 2026 15:32:18 +0800 Subject: [PATCH] ci: type-check Node and Python SDKs on PRs The SDKs are excluded from the core workspace and were only compiled at release time (napi/maturin), so a core change that broke an SDK (e.g. PR #76 adding a field to AutoDelegationConfig that the Python SDK constructed with a struct literal) slipped through CI and only failed the v4.2.0 release wheel build. Add an 'SDK build check' job running 'cargo check' on both SDK manifests so such breakage fails on the PR instead. --- .github/workflows/ci.yml | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 363bf19..86eeffa 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -37,3 +37,30 @@ jobs: # - name: Tests # run: cargo test --workspace --lib + + sdk-check: + name: SDK build check + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Setup workspace context + run: bash .github/setup-workspace.sh + + - name: Install Rust + uses: dtolnay/rust-toolchain@stable + + - uses: Swatinem/rust-cache@v2 + + - name: Install protobuf compiler + run: sudo apt-get update && sudo apt-get install -y protobuf-compiler + + # The Node and Python SDKs are excluded from the core workspace and are + # otherwise only compiled at release time (napi / maturin). Type-check them + # here so a core change that breaks an SDK (e.g. a new struct field that an + # SDK constructs with a literal) fails on the PR instead of the release. + - name: Check Node SDK + run: cargo check --manifest-path sdk/node/Cargo.toml + + - name: Check Python SDK + run: cargo check --manifest-path sdk/python/Cargo.toml