name: Python Compatibility Test

on:
  push:
    branches: [main, develop]
    paths: ['pyproject.toml']
  pull_request:
    branches: [main, develop]
    paths: ['pyproject.toml']

jobs:
  test-compatibility:
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        python-version: ['3.10.18', '3.11.13', '3.12.11', '3.13.5']

    name: Python ${{ matrix.python-version }}
    steps:
      - name: Checkout code
        uses: actions/checkout@v4

      - name: Install system dependencies
        run: |
          sudo apt-get update
          sudo apt-get install -y \
            portaudio19-dev \
            libcairo2-dev \
            libgirepository1.0-dev \
            pkg-config

      - name: Install uv
        uses: astral-sh/setup-uv@v4
        with:
          version: 'latest'

      - name: Set up Python ${{ matrix.python-version }}
        run: |
          uv python install ${{ matrix.python-version }}
          uv python pin ${{ matrix.python-version }}

      - name: Test uv sync with all extras (Python < 3.13)
        if: "!startsWith(matrix.python-version, '3.13.')"
        run: |
          uv sync --group dev --all-extras --no-extra krisp

      - name: Test uv sync without PyTorch extras (Python 3.13+)
        if: startsWith(matrix.python-version, '3.13.')
        run: |
          uv sync --group dev --all-extras \
            --no-extra krisp \
            --no-extra local-smart-turn \
            --no-extra moondream \
            --no-extra mlx-whisper

      - name: Verify installation
        run: |
          uv run python --version
          uv run python -c "import pipecat; print('✅ Pipecat imports successfully')"
