name: Tests on: push: branches: [main] pull_request: workflow_call: permissions: contents: read jobs: test: strategy: fail-fast: false matrix: include: - os: ubuntu-22.04 python: '3.10' - os: ubuntu-latest python: '3.12' - os: macos-latest python: '3.12' - os: windows-latest python: '3.12' runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: python-version: ${{ matrix.python }} - name: Install FFmpeg (Linux, including the retained 4.4 compatibility path) if: runner.os == 'Linux' run: sudo apt-get update && sudo apt-get install -y ffmpeg - name: Install FFmpeg (macOS) if: runner.os == 'macOS' run: brew list ffmpeg >/dev/null 2>&1 || brew install ffmpeg - name: Install FFmpeg (Windows) if: runner.os == 'Windows' run: choco install ffmpeg --no-progress -y - name: Install test tools run: python -m pip install --upgrade pytest "yt-dlp[default]" - name: Verify executables run: | ffmpeg -version ffprobe -version yt-dlp --version - name: Run isolated tests (no model downloads or live APIs) run: python -m pytest -q