# 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. | ## Benötigte Repo-Secrets | Name | Zweck | Woher | |---|---|---| | `REGISTRY_TOKEN` | Anmeldung an `git.menzel.center` zum Hochladen der Images | Gitea → Benutzereinstellungen → Applications → **Generate New Token** mit dem Recht `write:package` | 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`. ## Erzeugte Tags | Auslöser | Tags | |---|---| | Push auf `main` | `:main`, `:sha-` | | 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`](../../docs/runner.md).