name: Verify Frame Flow on: [push, pull_request, workflow_dispatch] jobs: verify: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: python-version: '3.14' - run: python -m pip install -e '.[test]' - run: python -m ruff check pigway_frame_flow tests scripts - run: python -m ruff format --check pigway_frame_flow tests scripts - run: python -m mypy pigway_frame_flow - run: python -m pytest -q - run: python -m pip_audit -r requirements.lock --no-deps --disable-pip - run: | cp .env.example .env python - <<'PY' from pathlib import Path import secrets p=Path('.env') p.write_text(p.read_text().replace('FRAME_FLOW_TOKEN=\n', 'FRAME_FLOW_TOKEN='+secrets.token_urlsafe(32)+'\n')) PY docker compose config --quiet docker compose build --pull mkdir -p data/images data/generated data/cache config sudo chown -R 10333:10333 data config docker compose up -d for attempt in $(seq 1 30); do curl -fsS http://127.0.0.1:18787/ready >/dev/null && break || sleep 2; done python scripts/smoke-test.py docker compose restart pigway-frame-flow for attempt in $(seq 1 30); do curl -fsS http://127.0.0.1:18787/ready >/dev/null && break || sleep 2; done python scripts/smoke-test.py docker inspect pigway-frame-flow --format '{{.HostConfig.RestartPolicy.Name}} {{.State.Health.Status}}' docker image inspect pigway-frame-flow:latest --format '{{.Size}} {{.Architecture}}' docker compose down