Skip to content

QVAC-23489 feat[api]: add ABot-World interactive world sessions to the SDK #498

QVAC-23489 feat[api]: add ABot-World interactive world sessions to the SDK

QVAC-23489 feat[api]: add ABot-World interactive world sessions to the SDK #498

name: PR Checks (SDK Python)
on:
pull_request:
paths:
- 'packages/sdk-python/**'
- 'packages/sdk/contract/**'
branches:
- main
- release-*
- feature-*
- tmp-*
workflow_dispatch:
permissions:
contents: read
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }}
cancel-in-progress: true
defaults:
run:
working-directory: packages/sdk-python
jobs:
check:
name: Generate + test
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # 6.0.2
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # 6.2.0
with:
python-version: '3.10'
- name: Install
run: |
python3 -m venv .venv
.venv/bin/pip install --quiet -e ".[gen,dev]"
# Regenerates from packages/sdk/contract/{schema,manifest}.json and
# fails if the committed src/tetherto/qvac_sdk/_generated tree doesn't match —
# mirrors the SDK pod's own `contract:check` step.
- name: Contract check (generated client up to date)
run: .venv/bin/python3 scripts/generate.py --check
- name: Format check
run: .venv/bin/python3 -m black --check src/tetherto/qvac_sdk scripts/ tests/
- name: Lint (ruff)
run: .venv/bin/python3 -m ruff check src/tetherto/qvac_sdk scripts/ tests/
- name: Typecheck (mypy)
run: |
.venv/bin/python3 -m mypy -p tetherto.qvac_sdk
.venv/bin/python3 -m mypy scripts
.venv/bin/python3 -m mypy tests
# Fast leg: mocked unit tests + transport unit tests that do not need a
# worker. Real-worker tests skip themselves here (no worker built) and run
# in the test-e2e-smoke-gated on-pr-sdk-python-e2e.yml instead.
- name: Test (unit)
run: .venv/bin/python3 -m pytest tests/ -v