diff --git a/README_AI_RELEASE.md b/README_AI_RELEASE.md new file mode 100644 index 0000000..21f7a8d --- /dev/null +++ b/README_AI_RELEASE.md @@ -0,0 +1,90 @@ +# AI Release Guide (Gitea) + +Diese Datei ist die verbindliche Anleitung fuer KI-Agenten, um Releases fuer dieses Projekt zu erstellen. + +## Zielsystem + +- Git Host: `https://git.24-music.de` +- Repo: `Administrator/Twitch-VOD-Manager` +- Default Branch: `main` +- Release-Assets muessen auf Gitea liegen, nicht auf GitHub/Codeberg. + +## Sicherheitsregeln + +- Token niemals in Dateien committen. +- Token niemals in Logs, README oder Code schreiben. +- Nur als Environment Variable nutzen: + - PowerShell: ``$env:GITEA_TOKEN=""`` +- Wenn Token kompromittiert wirkt: sofort rotieren. + +## Voraussetzungen vor Release + +1. `origin` muss auf Gitea zeigen: + - `https://git.24-music.de/Administrator/Twitch-VOD-Manager.git` +2. Working Tree darf keine ungewollten Aenderungen enthalten. +3. DNS fuer `git.24-music.de` muss auf `159.195.45.29` aufloesen. +4. Die App verwendet Gitea-Updater-URLs: + - In `src/main.ts` via `GITEA_*` Konstanten/API. + - In `package.json`: + - `"build.publish.url": "https://git.24-music.de/Administrator/Twitch-VOD-Manager/releases/download/v${version}/"` + +## Standardablauf fuer neues Release + +Beispiel fuer `4.2.2`. + +1. Version setzen: + - `npm version 4.2.2 --no-git-tag-version` +2. Build + Schnelltest: + - `npm run build` + - `npm run test:e2e:update-logic` +3. Windows Installer bauen: + - `npx electron-builder --win` +4. Pruefen, dass Dateien existieren: + - `release/Twitch-VOD-Manager-Setup-4.2.2.exe` + - `release/Twitch-VOD-Manager-Setup-4.2.2.exe.blockmap` + - `release/latest.yml` +5. Commit + Tag: + - `git add package.json package-lock.json` + - `git commit -m "release: 4.2.2"` + - `git tag v4.2.2` +6. Push: + - `git push origin main` + - `git push origin v4.2.2` +7. Release auf Gitea anlegen und Assets hochladen (API): + - Endpoint: `POST /api/v1/repos/Administrator/Twitch-VOD-Manager/releases` + - Endpoint: `POST /api/v1/repos/Administrator/Twitch-VOD-Manager/releases/{id}/assets?name=` +8. Verifikation: + - `GET /api/v1/repos/Administrator/Twitch-VOD-Manager/releases/latest` muss `v4.2.2` liefern. + - Download-Links muessen `200` geben: + - `/releases/download/v4.2.2/latest.yml` + - `/releases/download/v4.2.2/Twitch-VOD-Manager-Setup-4.2.2.exe` + +## Verbindliche Asset-Regel + +Pro aktuellem Release muessen mindestens diese 3 Dateien vorhanden sein: + +- `Twitch-VOD-Manager-Setup-.exe` +- `Twitch-VOD-Manager-Setup-.exe.blockmap` +- `latest.yml` + +Ohne diese Dateien funktioniert der Auto-Updater nicht zuverlaessig. + +## Script-Hinweis + +Es gibt ein Script: `scripts/release_gitea.mjs` (npm: `release:gitea`). + +- Vor Nutzung sicherstellen, dass: + - `GITEA_TOKEN` gesetzt ist. + - `origin` korrekt ist. + - der Tag existiert oder der Workflow diesen sauber erstellt. + +Wenn das Script fehlschlaegt, immer auf den manuellen Standardablauf oben zurueckfallen. + +## DNS/Netzwerk Fallback (nur wenn lokal noetig) + +Wenn lokales DNS noch alt cached und Requests fehlschlagen, HTTP-Tests mit erzwungener Aufloesung: + +- `curl --resolve git.24-music.de:443:159.195.45.29 https://git.24-music.de/api/v1/version` + +Nur fuer Tests nutzen, nicht als dauerhaften Workaround. +