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[@]}"