stages: - verify - build backend_verify: stage: verify image: python:3.12-slim script: - pip install --no-cache-dir -r backend/requirements.txt pytest ruff bandit pip-audit - PYTHONPATH=backend python -m compileall -q backend/app - ruff check backend/app backend/tests - PYTHONPATH=backend pytest -q backend/tests - bandit -q -r backend/app -lll - pip-audit -r backend/requirements.txt frontend_build: stage: build image: node:20-alpine script: - cd frontend - npm ci - npm run build