Skip to content

Add scenario YAML loader and docgen record command for Playwright workflows #34

Add scenario YAML loader and docgen record command for Playwright workflows

Add scenario YAML loader and docgen record command for Playwright workflows #34

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: true
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/setup-python@v6
with:
python-version: "3.12"
- run: pip install ruff
- run: ruff check src/ tests/
unit:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.10", "3.11", "3.12"]
steps:
- uses: actions/checkout@v6
- uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
- name: Install system dependencies
run: |
set -euo pipefail
attempt=1
max_attempts=4
backoff=4
while [ "$attempt" -le "$max_attempts" ]; do
echo "apt attempt $attempt/$max_attempts"
if timeout 600s sudo apt-get -o Acquire::Retries=3 update \
&& timeout 600s sudo apt-get -o Acquire::Retries=3 install -y --no-install-recommends ffmpeg tesseract-ocr; then
exit 0
fi
if [ "$attempt" -eq "$max_attempts" ]; then
echo "apt failed after $max_attempts attempts"
exit 1
fi
echo "apt failed, retrying in ${backoff}s..."
sleep "$backoff"
backoff=$((backoff * 2))
attempt=$((attempt + 1))
done
- run: pip install ".[dev]"
- run: pytest tests/ --ignore=tests/e2e -v --tb=short
smoke:
name: smoke (config + lint + tts dry-run)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/setup-python@v6
with:
python-version: "3.12"
- run: pip install .
- name: Validate config loads
run: docgen --config docs/demos/docgen.yaml validate --help
- name: Narration lint
run: docgen --config docs/demos/docgen.yaml lint
- name: TTS dry-run
run: docgen --config docs/demos/docgen.yaml tts --dry-run
e2e:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/setup-python@v6
with:
python-version: "3.12"
- run: pip install ".[dev]"
- run: playwright install --with-deps chromium
- run: pytest tests/e2e/ -v --tb=short