claude-video/.github/workflows/tests.yml
bradautomates fdbffd1c2e feat: support only the latest yt-dlp and update it on HTTP 403
A 403 now carries an update-and-retry-once hint, the skill contract tells
the agent how to update yt-dlp through its owning package manager, and CI
installs the latest yt-dlp instead of a pinned baseline.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-25 09:34:38 +10:00

50 lines
1.3 KiB
YAML

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