# 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