name: SDK smoke # End-to-end smoke for both SDKs on all three OSes. The runners have no officecli # on PATH, so create() exercises the FULL auto-install path — install.sh on # unix, install.ps1 (irm | iex via PowerShell) on Windows — then a real pipe # round-trip. This is the only place the Windows installer path is exercised, and # it runs against the SDK source directly (no bundled dependency installed), so # the install.sh/install.ps1 fallback is what gets tested. on: push: branches: [main] paths: - 'sdk/**' - '.github/workflows/sdk-smoke.yml' pull_request: paths: - 'sdk/**' - '.github/workflows/sdk-smoke.yml' workflow_dispatch: permissions: contents: read jobs: smoke: strategy: fail-fast: false matrix: os: [ubuntu-latest, macos-latest, windows-latest] runs-on: ${{ matrix.os }} defaults: run: shell: bash steps: - uses: actions/checkout@v5 - uses: actions/setup-node@v6 with: node-version: '20' - uses: actions/setup-python@v5 with: python-version: '3.12' - name: Node SDK auto-install + round-trip run: node sdk/node/smoke.js - name: Python SDK auto-install + round-trip run: python sdk/python/smoke.py