Release-Skript mit automatischer Versionierung und Docker-Builds
- scripts/release.py: Version (patch/minor/major) automatisch hochzaehlen, CHANGELOG abschliessen, committen, taggen; --build baut alle Pakete in Docker - docker-build/: Build-Container fuer Windows (Wine + PyInstaller + Inno Setup), Linux und Android; Server-Image als docker-save-Archiv - Versionsanzeige im Desktop-Client und in der Android-App - Feste Android-Release-Signatur aus secrets/ (nicht im Git) - Windows-Icon im Repo, damit der Wine-Build ohne Qt-Fenster auskommt Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
5cbe6376f0
commit
af51ef5701
@@ -88,7 +88,7 @@ python build.py
|
||||
|
||||
| System | Ergebnis |
|
||||
|---|---|
|
||||
| Windows | `dist/NetClip/NetClip.exe`, danach `packaging/windows-installer.iss` mit Inno Setup kompilieren → `dist/NetClip-Setup-1.0.0.exe` |
|
||||
| Windows | `dist/NetClip/NetClip.exe`, danach `packaging/windows-installer.iss` mit Inno Setup kompilieren → `dist/NetClip-Setup-<version>.exe` |
|
||||
| macOS | `dist/NetClip.app` und `dist/NetClip-macos.zip` (Menüleisten-App ohne Dock-Symbol) |
|
||||
| Linux | `dist/NetClip-linux-x86_64.tar.gz` mit `install-linux.sh` |
|
||||
|
||||
@@ -107,7 +107,7 @@ Vorgaben für alle Benutzer: eine `config.default.json` neben die Programmdatei
|
||||
Start jedes Benutzers übernommen (Gerätename und Geräte-ID bleiben pro Gerät eindeutig).
|
||||
|
||||
- **Windows (GPO/Intune/PDQ):**
|
||||
`NetClip-Setup-1.0.0.exe /VERYSILENT /SUPPRESSMSGBOXES /SERVER=https://clip.example.de /TOKEN=xyz [/SERVERKEY=k] [/INSECURE=1]`
|
||||
`NetClip-<version>-windows-setup.exe /VERYSILENT /SUPPRESSMSGBOXES /SERVER=https://clip.example.de /TOKEN=xyz [/SERVERKEY=k] [/INSECURE=1]`
|
||||
– schreibt `config.default.json` und richtet den Autostart für alle Benutzer ein.
|
||||
- **Linux:** `sudo ./install-linux.sh --server https://clip.example.de --token xyz [--insecure]`
|
||||
- **macOS:** `NetClip.app` nach `/Applications` kopieren, `config.default.json` nach
|
||||
@@ -152,6 +152,37 @@ cd client-android
|
||||
Das Release-APK ist zum Testen mit dem Debug-Schlüssel signiert; für die Verteilung in `app/build.gradle`
|
||||
einen eigenen Keystore eintragen.
|
||||
|
||||
## Release erstellen
|
||||
|
||||
Die Version steht zentral in der Datei `VERSION`. Neue Änderungen kommen laufend in
|
||||
`CHANGELOG.md` unter `## [Unreleased]`. Ein Release:
|
||||
|
||||
```bash
|
||||
python3 scripts/release.py # 1.0.0 -> 1.0.1 (patch), committen + taggen
|
||||
python3 scripts/release.py minor --build # 1.0.1 -> 1.1.0 und alle Pakete bauen
|
||||
python3 scripts/release.py --build-only # aktuellen Stand nur bauen
|
||||
git push --follow-tags
|
||||
```
|
||||
|
||||
Das Skript schreibt die neue Version in Server, Desktop-Client, Windows-Installer und Android-App
|
||||
(`versionName`, `versionCode` +1) und macht aus `[Unreleased]` den neuen Versionsabschnitt.
|
||||
Mit `--build` wird ausschließlich in Docker gebaut (`docker-build/`), Ergebnis in `releases/v<version>/`:
|
||||
|
||||
| Datei | Inhalt |
|
||||
|---|---|
|
||||
| `NetClip-<v>-windows-setup.exe` | Windows-Installer (Inno Setup, unter Wine gebaut) |
|
||||
| `NetClip-<v>-windows-portable.zip` | Windows ohne Installation |
|
||||
| `NetClip-<v>-linux-x86_64.tar.gz` | Linux (Debian 12 / glibc ≥ 2.36 und neuer) |
|
||||
| `NetClip-<v>.apk` | Android |
|
||||
| `netclip-server-<v>.tar.gz` | Server-Image für `docker load -i …` (offline verteilbar) |
|
||||
| `RELEASE-NOTES.md`, `SHA256SUMS` | Änderungen und Prüfsummen |
|
||||
|
||||
macOS kann nicht in Docker gebaut werden – dafür auf einem Mac in `client-desktop/` `python build.py`.
|
||||
Mit `--targets windows,android` lassen sich einzelne Pakete bauen.
|
||||
|
||||
**Android-Signatur:** Beim ersten Android-Build wird `secrets/netclip-release.jks` erzeugt (nicht im
|
||||
Git). Diesen Ordner sichern – ohne den Schlüssel lassen sich installierte Apps nicht mehr aktualisieren.
|
||||
|
||||
## Tests
|
||||
|
||||
```bash
|
||||
|
||||
Reference in New Issue
Block a user