- Demo-Seed mit realistischem deutschem Haushalt (make seed-demo): drei Konten, zehn Firmen samt Logos, zwölf Posten, bestätigte Historie, Buchungen, Budgets und Sparziele; alle Termine relativ zum heutigen Monat - Tastaturkürzel n / r / / / ? samt Übersicht; greifen nur außerhalb von Eingabefeldern - Fehlergrenze für Renderfehler und eigene 404-Seite - Farbtoken beider Modi gegen WCAG geprüft und nachgezogen: Hilfstext lag hell bei 2,56:1, Weiß auf dem Primärknopf bei 3,30:1 – jetzt überall >= 4,5:1 - Abo-Übersicht heißt „Laufende Kosten“, weil sie auch Miete und Sparplan enthält - build.yml fällt auf GITEA_TOKEN zurück, wenn REGISTRY_TOKEN fehlt, und erklärt im Fehlerfall, wie das Secret anzulegen ist - README mit Screenshot-Abschnitt, Kürzeln und Barrierefreiheit Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014e7t8UpmoVNMtWivY5LiSH
2.0 KiB
Gitea Actions
Zwei Workflows:
| Datei | Auslöser | Was passiert |
|---|---|---|
ci.yml |
jeder Push, jeder Pull Request | Backend: ruff check, ruff format --check, pytest gegen einen PostgreSQL-Dienst. Frontend: npm ci, tsc --noEmit, eslint, vitest, Bundle-Bau. |
build.yml |
Push auf main, Tags v* |
Baut beide Images für linux/amd64 und lädt sie in die Gitea-Registry. Kein Deploy – das Ausrollen erfolgt von Hand. |
Anmeldung an der Registry
build.yml versucht die Anmeldung in dieser Reihenfolge:
- das Repo-Secret
REGISTRY_TOKEN, falls vorhanden, - sonst
GITEA_TOKEN– den Token, den Gitea jedem Lauf automatisch mitgibt.
Damit läuft der Workflow im Normalfall ohne jede manuelle Einrichtung. Reicht
das Recht des automatischen Tokens auf der Instanz nicht aus, bricht der Schritt
mit denied oder unauthorized ab; dann das Secret von Hand anlegen:
| Name | Zweck | Woher |
|---|---|---|
REGISTRY_TOKEN |
Anmeldung an git.menzel.center zum Hochladen der Images |
Gitea → Benutzereinstellungen → Applications → Generate New Token, bei package auf Read and Write |
Anlegen unter Repository → Settings → Actions → Secrets → Add Secret.
Als Benutzername verwendet der Workflow ${{ github.actor }}, also den Auslöser
des Laufs. Dieser Benutzer braucht Schreibrecht auf die Pakete des Namensraums
menzeljonas.
Fehlt beides, meldet der Schritt
::error::Password requiredund es entsteht kein Image –docker compose pullläuft dann in einnot found.
Erzeugte Tags
| Auslöser | Tags |
|---|---|
Push auf main |
:main, :sha-<kurz> |
Tag v1.2.3 |
:1.2.3, :1.2, :latest |
Zusätzlich legt jeder Lauf ein :buildcache-Manifest ab. Es dient
ausschließlich dem Schichten-Cache und ist nicht zum Ausrollen gedacht.
Voraussetzungen an den Runner
Der Runner muss Docker erreichen können (gemounteter Socket) und das Label
ubuntu-latest anbieten. Die vollständige Einrichtung steht in
../../docs/runner.md.