From b578a6c7ec94cbdaf3cbc6b438d96af38703f90e Mon Sep 17 00:00:00 2001 From: Louis Date: Fri, 25 Sep 2026 18:06:27 +0200 Subject: [PATCH] =?UTF-8?q?Release-Skript:=20fragt=20Version=20ab,=20baut?= =?UTF-8?q?=20Windows=20+=20Arch/CachyOS=20und=20l=C3=A4dt=20nach=20Gitea?= =?UTF-8?q?=20hoch?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 --- .gitignore | 1 + README.md | 2 ++ scripts/release-all.sh | 33 +++++++++++++++++++++++++++++++++ 3 files changed, 36 insertions(+) create mode 100755 scripts/release-all.sh diff --git a/.gitignore b/.gitignore index dcefc15..c9b3ba0 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ node_modules/ dist/ package.json +.gitea-token diff --git a/README.md b/README.md index 32947e3..7eb6bf4 100644 --- a/README.md +++ b/README.md @@ -44,6 +44,8 @@ npm und die Builds danach nicht mehr mit `sudo` ausführen – nur `pacman -U` z 2. Auf jeder Plattform bauen (`npm run dist:win` bzw. `npm run dist:linux`) 3. `GITEA_TOKEN= npm run release -- --notes "Was ist neu"` – legt das Release `v` an und lädt die Pakete hoch +Oder alles in einem Schritt unter Linux (Windows-Build per `wine`): `./scripts/release-all.sh` – fragt nach Version und Notizen, committet/pusht die Version, baut Windows + Arch/CachyOS und lädt hoch. Token aus `GITEA_TOKEN` oder `.gitea-token` (nicht eingecheckt). + Installierte Clients prüfen beim Start (und über Einstellungen → Updates) und installieren das passende Paket. Für ein privates Repo in den Einstellungen ein Lese-Token hinterlegen. Icons neu erzeugen nach Logo-Änderung: `npx electron scripts/make-icons.js` diff --git a/scripts/release-all.sh b/scripts/release-all.sh new file mode 100755 index 0000000..d02221d --- /dev/null +++ b/scripts/release-all.sh @@ -0,0 +1,33 @@ +#!/usr/bin/env bash +# Fragt nach der Version, baut Windows (Setup + Portable, per wine) und Arch/CachyOS (pacman + AppImage) +# und lädt alles als Release v nach Gitea hoch. +# Token: Umgebungsvariable GITEA_TOKEN oder Datei .gitea-token im Projektordner (nicht eingecheckt). +set -euo pipefail +cd "$(dirname "$0")/.." +unset ELECTRON_RUN_AS_NODE + +if [[ -z "${GITEA_TOKEN:-}" && -f .gitea-token ]]; then GITEA_TOKEN="$(tr -d '[:space:]' < .gitea-token)"; fi +if [[ -z "${GITEA_TOKEN:-}" ]]; then read -rsp "Gitea-Token: " GITEA_TOKEN; echo; fi +export GITEA_TOKEN + +current="$(node -p "require('./package.json').version")" +read -rp "Release-Version [${current}]: " version +version="${version:-$current}" +version="${version#v}" +[[ "$version" =~ ^[0-9]+\.[0-9]+\.[0-9]+(-[0-9A-Za-z.]+)?$ ]] || { echo "Ungültige Version: $version"; exit 1; } +read -rp "Release-Notizen: " notes +prerelease=() +[[ "$version" == *-* ]] && prerelease=(--prerelease) + +if [[ "$version" != "$current" ]]; then + npm version "$version" --no-git-tag-version >/dev/null + git add package.json package-lock.json + git commit -m "Version ${version}" +fi +git push origin HEAD + +rm -rf dist +npm run dist:linux +npm run dist:win + +npm run release -- --notes "$notes" "${prerelease[@]}"