fix(ci): Release-Anhaenge nie ueber die oeffentliche Gitea-Adresse hochladen
Tessera CI/CD / Lint & Type Check (push) Successful in 49s
Tessera CI/CD / Tests (push) Successful in 1m8s
Tessera CI/CD / Desktop-Pakete bauen (push) Successful in 4m57s
Tessera CI/CD / Build & Publish Images (push) Successful in 3m9s

publish-release.sh ignoriert GITHUB_API_URL/GITHUB_SERVER_URL (git.vicolab.de
hinter dem Proxy bricht grosse Uploads ab -- Release 1.2.0 blieb dadurch
zunaechst ohne Anhaenge). Im CI wird das Host-Gateway des Job-Containers aus
/proc/net/route ermittelt und Gitea direkt auf Port 3002 angesprochen, lokal
localhost:3002; GITEA_API bleibt als Override. Gateway-Weg aus Job-Netz
gegen die Gitea-API verifiziert; Anhaenge fuer v1.2.0 vom Host nachgetragen.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-09-17 13:48:17 +02:00
parent f7f406a5b6
commit 507556f158
2 changed files with 43 additions and 16 deletions
+18 -12
View File
@@ -175,11 +175,15 @@ laeuft deshalb bewusst ueber `actions/cache/save` und
`actions/cache/restore` mit `fail-on-cache-miss: true`, nicht ueber
Artefakt-Uploads.
Das Release-Skript spricht die Gitea-API ueber `GITHUB_API_URL` bzw.
`GITHUB_SERVER_URL/api/v1` an -- im Job-Container ist das
`https://git.vicolab.de`; `localhost:3002` ist von dort NICHT erreichbar (nur der
Docker-Daemon des Hosts erreicht die Registry so). Lokal laesst sich das Skript
mit `--dry-run --tag vX.Y.Z` pruefen, ohne Netzaufruf und ohne Token.
Das Release-Skript spricht die Gitea-API NIE ueber die oeffentliche Adresse
(`GITHUB_API_URL`/`GITHUB_SERVER_URL` = `https://git.vicolab.de` hinter dem
Proxy, der grosse Uploads abbricht -- so blieb Release 1.2.0 am 2026-09-17
zunaechst ohne Anhaenge). Im Job-Container ist `localhost:3002` nicht der
Host; das Skript ermittelt deshalb das Host-Gateway aus `/proc/net/route`
(z. B. `172.17.0.1`) und ruft `http://<gateway>:3002/api/v1` auf -- derselbe
Weg wie der Registry-Push. Lokal nimmt es `http://localhost:3002/api/v1`;
`GITEA_API` bleibt als expliziter Override. Mit `--dry-run --tag vX.Y.Z`
laesst sich die gewaehlte Adresse ohne Netzaufruf und ohne Token pruefen.
### Zwei Kanaele: Etiketten je Anlass
@@ -336,10 +340,12 @@ und einen Branch-Schutz fuer `live` anlegen (T-KU1-04).
### Release-Upload 413
Schlaegt der Datei-Upload in `publish-release.sh` mit HTTP 413 (Datei zu
gross) fehl, blockt vermutlich der vorgeschaltete Proxy vor `git.vicolab.de`
den grossen Installer-Upload -- dasselbe bekannte Verhalten wie beim
Image-Push (Abschnitt 3). Abhilfe: `GITEA_API` auf die Host-Adresse
`http://172.18.0.1:3002/api/v1` setzen, damit der Release-Upload denselben
Weg wie der Registry-Push nimmt und den Proxy umgeht -- nur noetig, wenn der
Proxy die Groesse tatsaechlich abweist.
Bricht der Datei-Upload in `publish-release.sh` mit HTTP 413 oder
`curl: (92) HTTP/2 ... PROTOCOL_ERROR` ab, laeuft er ueber den Proxy vor
`git.vicolab.de` -- genau das ist am 2026-09-17 bei Release 1.2.0 passiert
(AppImage, 82 MB). Seitdem geht das Skript von selbst ueber das Host-Gateway
(siehe Abschnitt 4); der Fehler kann nur noch auftreten, wenn `GITEA_API`
ausdruecklich auf die oeffentliche Adresse gesetzt wird. Fehlende Anhaenge
lassen sich jederzeit vom Host nachtragen:
`GITEA_TOKEN=... DESKTOP_DIST=<Ordner mit manifest.json> sh .gitea/scripts/publish-release.sh --tag vX.Y.Z`
(die Pakete liegen im API-Abbild unter `/app/desktop-dist`).