38 lines
1.7 KiB
YAML
38 lines
1.7 KiB
YAML
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
|