diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml new file mode 100644 index 0000000..7682023 --- /dev/null +++ b/.gitea/workflows/ci.yml @@ -0,0 +1,45 @@ +# CI-Ampel für Rippy — läuft bei jedem Push auf dem Gitea-Runner (arcane-VM). +# Zweck: „Erfundenes" mechanisch fangen, bevor irgendwas „fertig" heißen darf. +# ROT ist ein Ergebnis, kein Ärgernis: Stand 22.07. ist ROT korrekt, weil es +# noch keine echten Tests gibt (test_health.py hat kein einziges assert). +name: CI + +on: [push, pull_request] + +jobs: + api-und-worker: + runs-on: ubuntu-latest + container: python:3.12-slim + steps: + - uses: actions/checkout@v4 + + - name: Ruff (Linter — findet toten Code, kaputte Imports, Schlampereien) + run: | + pip install -q ruff + ruff check docker/api docker/worker udev + + - name: Abhängigkeiten installierbar? (halluzinierte Pakete fliegen hier auf) + run: | + pip install -q -r docker/api/requirements.txt + pip install -q -r docker/worker/requirements.txt + + - name: Importierbar? (kaputte Modul-Struktur fliegt hier auf) + run: | + python -m compileall -q docker/api docker/worker udev + + - name: Pytest (KEINE Tests gefunden = ROT — Tests sind Pflicht, kein Deko) + run: | + pip install -q pytest + pytest docker -q + + ui: + runs-on: ubuntu-latest + container: node:22 + steps: + - uses: actions/checkout@v4 + + - name: UI baut? (TypeScript-Fehler + kaputte Imports fliegen hier auf) + working-directory: docker/ui + run: | + npm ci --no-audit --no-fund + npm run build