@@ -111,10 +111,39 @@ jobs:
111111 python3 compat/e2b/fixtures/official-clients/run_fixtures.py verify
112112 --rust-server-bin src/target/debug/a3s-box-e2b-fixture-server
113113
114+ # ── Native Python and TypeScript SDK package gate ─────────────
115+ sdk-packages :
116+ name : SDK Packages
117+ runs-on : ubuntu-latest
118+ steps :
119+ - uses : actions/checkout@v5
120+ - uses : actions/setup-python@v6
121+ with :
122+ python-version : ' 3.12'
123+ - uses : actions/setup-node@v7
124+ with :
125+ node-version : ' 20'
126+ cache : npm
127+ cache-dependency-path : sdk/typescript/package-lock.json
128+ - name : Build and test Python package
129+ run : |
130+ python -m pip install build
131+ python -m build sdk/python
132+ python -m venv /tmp/a3s-box-python-sdk
133+ /tmp/a3s-box-python-sdk/bin/pip install sdk/python/dist/*.whl
134+ /tmp/a3s-box-python-sdk/bin/python -m unittest discover -s sdk/python/tests
135+ - name : Build and test TypeScript package
136+ working-directory : sdk/typescript
137+ run : |
138+ npm ci
139+ npm run build
140+ npm test
141+ npm pack --dry-run
142+
114143 # ── Build check (compile only, no artifacts) ────────────────────
115144 build-check :
116145 name : Build Check (${{ matrix.target }})
117- needs : [fmt, clippy, test, e2b-contract, e2b-official-clients]
146+ needs : [fmt, clippy, test, e2b-contract, e2b-official-clients, sdk-packages ]
118147 strategy :
119148 matrix :
120149 include :
@@ -160,7 +189,7 @@ jobs:
160189 # ── Windows native WHPX build check ────────────────────────────
161190 build-windows :
162191 name : Build Windows WHPX
163- needs : [fmt, clippy, test, e2b-contract, e2b-official-clients]
192+ needs : [fmt, clippy, test, e2b-contract, e2b-official-clients, sdk-packages ]
164193 runs-on : windows-latest
165194 steps :
166195 - uses : actions/checkout@v5
@@ -202,7 +231,7 @@ jobs:
202231 # Until both are done this job is SKIPPED (inert) and never blocks a PR.
203232 integration-kvm :
204233 name : Integration (real microVM, KVM)
205- needs : [fmt, clippy, test, e2b-contract, e2b-official-clients]
234+ needs : [fmt, clippy, test, e2b-contract, e2b-official-clients, sdk-packages ]
206235 if : vars.KVM_CI == 'true'
207236 runs-on : [self-hosted, linux, kvm]
208237 timeout-minutes : 75
0 commit comments