a5eb0e7d27
Quality Gate / 🛡️ Lint + Type Check + Tests (push) Failing after 11m21s
- webhook_queue.py: WhatsApp X-Hub-Signature-256 + Telegram Webhook-Intake - queue_handler.py: SQLite-basierte Queue mit Idempotenz (UNIQUE message_id) - queue_worker.py: Asynchroner Worker für GPU-Verarbeitung - app.py: Webhooks umgebaut → sofort 200 OK, Worker verarbeitet später - Redis 8.0 läuft als Infrastruktur (Queue ist SQLite für Persistenz)
49 lines
1.3 KiB
YAML
49 lines
1.3 KiB
YAML
# BSN-Chatsystem — CI Quality Gate
|
|
# Läuft bei JEDEM Push. Kein --no-verify-Umgehen möglich.
|
|
# Konfiguriert für Python 3.13 + Ruff 0.15 + mypy 2.1
|
|
|
|
name: Quality Gate
|
|
|
|
on:
|
|
push:
|
|
branches: [main, develop, "feature/**", "fix/**"]
|
|
pull_request:
|
|
branches: [main]
|
|
|
|
jobs:
|
|
quality:
|
|
name: "🛡️ Lint + Type Check + Tests"
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 15
|
|
|
|
steps:
|
|
- name: 📥 Checkout
|
|
uses: actions/checkout@v4
|
|
|
|
- name: 🐍 Python 3.13
|
|
uses: actions/setup-python@v5
|
|
with:
|
|
python-version: "3.13"
|
|
|
|
- name: 📦 Dependencies
|
|
run: |
|
|
pip install ruff mypy pytest pytest-cov
|
|
# Projekt-spezifische Deps (falls requirements.txt existiert)
|
|
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
|
|
|
|
# ── Linting + Sicherheit ──
|
|
- name: 🔍 Ruff — Linting + Sicherheit
|
|
run: ruff check . --output-format=github
|
|
|
|
# ── Formatierung ──
|
|
- name: 🎨 Ruff — Formatierung
|
|
run: ruff format --check .
|
|
|
|
# ── Typ-Prüfung ──
|
|
- name: 🔎 mypy — Statische Typ-Prüfung
|
|
run: mypy . --strict
|
|
|
|
# ── Tests + Coverage ──
|
|
- name: 🧪 pytest — Tests + Coverage
|
|
run: pytest --cov --cov-fail-under=80 --tb=short
|