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
